Временные ряды Pandas / YahooFinance дают противоречивые результаты - PullRequest
0 голосов
/ 11 июля 2020

Я работаю над бэкэнд-функцией, чтобы сравнивать медленные и быстрые скользящие средние для различных списков акций в определенный день. Не нужно ничего строить. Первая функция возвращает первый действительный день фондовой биржи, поэтому я могу иметь 21 скорректированную цену закрытия до даты сравнения. 'start' - это глобальная переменная, которая из-за этого использовалась в качестве end_date для этих функций, а bmf - это фондовая биржа моей страны. Эта функция работает нормально, и функция для быстрой скользящей средней идентична, но с другим индексом списка.

    def slowMAstart():
        test_start = start + datetime.timedelta(-40)
        valid = bmf.valid_days(start_date=test_start, end_date=start)
        slowmastart = valid[-21]
        return slowmastart

Вторая функция должна получить фрейм данных за 21-дневный период и вернуть список длиной 1 со значением для медленной скользящей средней. Строка 3 получает фрейм данных, и если это данные за 21 действительный биржевой день, функция работает нормально. Но иногда в фреймворке есть данные за 20 или 22 дня, а иногда - за воскресенье. Может ли кто-нибудь помочь мне понять причину этого несоответствия? Спасибо за мысли о том, как это исправить!

    def slowMA(ticker):
        slowmastart = slowMAstart()
        prices = pdr.get_data_yahoo(ticker, start=slowmastart, end=start)
        prices = prices[prices.columns[4]].tolist()
        slowMAvg = pd.Series(prices).rolling(21).mean().tolist()
        slowMAvg = slowMAvg[20:]
        return slowMAvg
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...