Здравствуйте и заранее искренне благодарим вас за ваше время и внимание! Это меня действительно зацепило.
Короче говоря, я хочу запрограммировать торгового бота, который пока работает хорошо. Соединения между Python и MetaTrader в порядке, и данные принимаются надлежащим образом, ОДНАКО теперь, когда я пытаюсь рассчитать важный индикатор для своей стратегии, RSI, различия между выходными данными Python и выходными данными MetaTrader слишком велики.
Ниже я прикрепляю свой код
def rsi(df, n):
"function to calculate RSI"
delta = df["close"].diff().dropna()
u = delta * 0
d = u.copy()
u[delta > 0] = delta[delta > 0]
d[delta < 0] = -delta[delta < 0]
u[u.index[n-1]] = np.mean( u[:n]) # first value is average of gains
u = u.drop(u.index[:(n-1)])
d[d.index[n-1]] = np.mean( d[:n]) # first value is average of losses
d = d.drop(d.index[:(n-1)])
rs = u.ewm(com=n,min_periods=n).mean()/d.ewm(com=n,min_periods=n).mean()
return 100 - 100 / (1+rs)
Ниже вы также можете найти изображения, показывающие разницу между выходами. Не обращайте внимания на третий столбец вывода python.
Еще раз большое спасибо за внимание.
Я забыл упомянуть, что да, периоды, которые я использую как в MT5, так и в Python, одинаковы, они равны «6».