Каталог файлов форума

Список вложений в сообщениях, оставленных на этой конференции.

Все файлы форума: 1270

Добавлено: BugsDigger » 27 ноя 2021, 15:49

Тема: EEMA: EMA с компенсацией запаздывания

Текст сообщения:

В статейке J. Ehlers "Hilbert Indicators Tell You When To Trade" есть идейка, как компенсировать запаздывание EMA.
( https://silo.tips/download/hilbert-indi ... n-to-trade )

Смысл в следующем.
Если есть EMA с некоторым периодом, то она отстает от входного ряда. Если взять EMA с удвоенным периодом, то запаздывание станет в два раза больше. Теперь, если из быстрой вычесть медленную, то получим величину этого запаздывания; прибавим же эту величину к быстрой - и получим EMA примерно без запаздывания.

Вот что выходит:

Код: Выделить всё

function Initialize()
{
 IndicatorName = "EEMA";   
 PriceStudy = true;   
 AddInput("Input", Inputs.Price);   
 AddParameter("Period", 10);
   
 AddSeries("EEMA", DrawAs.Line, Color.Black);
}

function Evaluate()
{
 double f=EMA(Input, (int)Period)[0];
 double s=EMA(Input, 2*(int)Period);
 EEMA[0]=2*f-s;
}

На рисунке пример обычной EMA (оранжевый) и скомпенсированной EEMA с одним и тем же периодом (50).
EEMA.png

Видно, что скомпенсированный фильтр быстрее следует за входным рядом. (В каких-то случаях это полезно, в каких-то, наоборот, вредно.)
Наверное, в таком же духе можно экспериментировать и с другими бегущими средними.

Не бог весть что, но м.б. кому-то пригодится.