Необъяснимая разница между индикаторами, запрограммированными для MetaTrader5 и Python

avatar
Krow Caw
9 августа 2021 в 06:42
47
0
0

Здравствуйте и заранее искренне благодарим вас за ваше время и внимание! Это меня действительно зацепило.

Короче говоря, я хочу запрограммировать торгового бота, который пока работает хорошо. Соединения между 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.

enter image description here enter image description here

Еще раз большое спасибо за внимание.

Источник
Krow Caw
9 августа 2021 в 06:43
0

Я забыл упомянуть, что да, периоды, которые я использую как в MT5, так и в Python, одинаковы, они равны «6».

Ответы (0)