Я пытаюсь рассчитать SuperTrend фондовый индикатор в pandas. Он не включен в индикаторы Ta-Lib , поэтому я пытаюсь построить его вручную. Ta-Lib включает в себя очень быстрый метод расчета ATR, который является неотъемлемой частью SuperTrend. Индикатор будет работать на данных о ценах на акции ohl c. Пример ниже.
Date , Open, High, Low, Close
01/01/20, 10, 15, 5, 7
01/02/20, 7, 12, 6, 10
У меня проблема с получением предыдущих значений из столбца, который я динамически создаю. Я не уверен, что это возможно в pandas. (По крайней мере, не по-быстрому) Вот метод расчета индикатора. Вы, вероятно, увидите мою проблему. «Не в python»
BASIC UPPERBAND = (HIGH + LOW) / 2 + Multiplier* ATR
BASIC LOWERBAND = (HIGH + LOW) / 2 – Multiplier* ATR
FINAL UPPERBAND = IF ((Current BASIC UPPERBAND< Previous FINAL UPPERBAND) and (Previous
close < Previous FINAL LOWERBAND)) THEN (Current BASIC LOWERBAND) ELSE Previous FINAL LOWERBAND)
FINAL LOWERBAND = IF( (current BASIC LOWERBAND > Previous FINAL LOWERBAND) and (Previous
Close < Previous FINAL LOWERBAND) ) THEN (Current BASIC LOWERBAND ) ELSE Previous FINAL LOWERBAND )
SUPERTREND = IF (Current Close <= Current FINAL UPPERBAND) THEN current FINAL UPPERBAND ELSE Current FINAL LOWERBAND
Некоторые люди уже попробовали этот метод Github 1 , Метод Github 2 . Но оба метода очень долго просчитываются. Я пытаюсь рассчитать его на 10 лет 5 минут (35 МБ CSV-файл) данных, и любой из этих методов занимает более 2,5 минут. (Вероятно, отчасти потому, что они используют pandas для расчета ATR, а не Ta-Lib) Я ищу гораздо более быстрый метод. Бесплатные данные о фондовом рынке можно загрузить из Yahoo Finance для тестирования. Скачать CSV-файл для тестирования . Не уверен, где go отсюда, ничего, что я пробовал работает. Спасибо и удачи!