Разница между результатами расчета индикаторов BackTrader EMA и Pandas.DataFrame.EWMPython

Программы на Python
Ответить
Anonymous
 Разница между результатами расчета индикаторов BackTrader EMA и Pandas.DataFrame.EWM

Сообщение Anonymous »

Я обнаружил проблему при использовании индикатора EMA backtrader для расчета значений. Чем больше введенное значение периода (например, 120 дней), тем больше разница между значением EMA, отображаемым рыночным программным обеспечением, и значением, рассчитанным BackTrader.
При вычислениях с помощью pandas.dataframe.ewm этой проблемы нет. (загрузка одних и тех же близких данных)
Эта ошибка уменьшается по мере продвижения по шкале, поэтому я предполагаю, что формула такая: правильный, но что не так с расчетом инициализации EMA? Кто-нибудь знает об этом?
Выходное значение EMA, которое я рассчитал с помощью BackTrader.ind.ema, выглядит следующим образом:
Изображение
Изображение

и вывод ema4, который я рассчитал с помощью Pandas.dataframe.ewm, равен следующим образом:
Изображение

Ниже класс, который я пишу backtrader
class BaseStrategy(bt.Strategy):
"""base strategy"""

_name = "base"
params = (("printlog", False),)

class EMaCrossStrategy(BaseStrategy):

params = (
("emaperiod", {"ema1": 13, "ema2": 30, "ema3": 60, "ema4": 120})
)
def __init__(self):
self.ema1 = bt.ind.EMA(self.dataclose, period=self.p.emaperiod["ema1"])
self.ema2 = bt.ind.EMA(self.dataclose,period=self.p.emaperiod["ema2"])
self.ema3 = bt.ind.EMA(self.dataclose,period=self.p.emaperiod["ema3"])
self.ema4 = bt.ind.EMA(self.dataclose,period=self.p.emaperiod["ema4"])

Ниже приведен код, который я пишу, используя pandas.dataframe.ewm:
import pandas as pd

def calculate_ema(day_count: int, close: pd.DataFrame):
"""
calculate ema
:param day_count:
:param close:
:return:
"""
result = close.ewm(span=day_count, adjust=False).mean()
result = result.iloc[day_count:]
return result.dropna(axis=0, how='any').round(2)


Подробнее здесь: https://stackoverflow.com/questions/792 ... rs-ema-and
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»