EMA обращается за помощью

Автор:Свинка, Создано: 2021-01-08 00:08:49, Обновлено: 2021-01-08 13:41:42

pine_ema ((src, длина) => Альфа = 2 / (длина + 1) сумма = 0,0 сумма:= na(sum[1])? sma(src, длина) : альфа * src + (1 - альфа) * nz(sum[1]) Площадка ((pine_ema ((close,15))

Телевизионная формула EMA sum:= na ((sum[1])? sma ((src, length)): alpha * src + (1 - alpha) * nz ((sum[1]) Это не очень понятно, может кто-нибудь поможет перевести это в pyhton, спасибо.

Примечание:

  1. df[close].ewm ((span=110,adjust = False).mean()
  2. talib.EMA ((np.array ((close), timeperiod=110) Результаты тестов не совпадают с результатами тестов на ТВ (вероятность меньше 50 - то же самое) и больше 100 - то же самое.

Больше

МайкеоЭто хорошо написанная функция ema в JavaScript. Важно отметить, что в исходных матрицах параметры индекса и длины рассчитываются в разных условиях.

Майкеофункция ema ((src, длина) { var arr = []; var sum = 0; var alpha = 2 / (длина + 1) - Я не знаю. для ((vari i в src) { если ((i<длина-1)) { arr[i] = нуль; сумма += src[i]; Я не знаю. - Я не знаю. если ((i==длина-1)) { arr[i] = (сумма+src[i])/длина; Я не знаю. - Я не знаю. { прочее arr[i] = альфа * src[i] + (1 - альфа) * arr[i-1] Я не знаю. Я не знаю. возвращает arr; Я не знаю.

ТраваАлгоритм ewm может быть написан самостоятельно, а именно ewm = alpha*close+(1-alpha) *ewm

Свинка── в настоящее время получается приблизительное значение путем изменения exp=0.1。 спасибо。

ТраваАлгоритмы не очень похожи, есть тонкие различия, которые можно не учитывать, например, как следует получить первое значение с помощью инерционного метода, выбирая один из них.

СвинкаКак будто результаты не такие, как у EWMA. def EMA ((ps, period=5, exp=0.1)): ewma=pd.Series ((0.0,index=ps.index) ewma[period-1]=ps[:period].mean ((() for i in range ((period, len ((ps)): ewma[i] =exp*ps[i]+(1-exp) *ewma[i-1] return ewma