Zero-Lag MACD
Известно, что индикатор MACD в классическом варианте имеет довольно большое запаздывание генерируемых им сигналов. Вот две попытки преодолеть этот недостаток.
ZeroLag MACD
p1 = Param("Short period", 12, 3, 50, 1);
p2 = Param("Long period", 26, 5, 100, 1);
p3 = Param("Signal period", 9, 3, 25, 1);
EMAshort = EMA(C, p1);
EMA2 = EMA( EMAshort, p1);
Diff = EMAshort - EMA2;
ZLEMAshort = EMAshort + Diff;
EMAlong = EMA(C, p2);
EMA2 = EMA(EMAlong, p2);
Diff = EMAlong - EMA2;
ZLEMAlong = EMAlong + Diff;
ZLMACD = ZLEMAshort - ZLEMAlong;
EMA1 = EMA(ZLMACD, p3);
EMA2 = EMA(EMA1, p3);
Diff = EMA1 - EMA2;
ZLSignal = EMA1 + Diff;
Plot(ZLMACD, "zero lag MACD", colorGreen);
Plot(ZLSignal, "zero lag Signal", colorRed);
Plot(Diff,"MACD",colorBlue,styleHistogram|styleLeftAxisScale|styleThick);
LaglessMACD
_SECTION_BEGIN("Lagless MACD");
a= TSF(C,3)+TSF(C,5)+TSF(C,8)+TSF(C,13)+TSF(C,17)+TSF (C,26);
b= TSF(C,8)+TSF(C,13)+TSF(C,26)+TSF(C,35)+TSF(C,50)+TSF(C,56);
mova= TSF(a,3);
movb=TSF(b,26);
Param("MA style",styleLine,maskAll);
Plot(mova,"Fast MA",ParamColor("Fast MA Color",colorRed),styleLine);
Plot(movb,"Slow MA",ParamColor("Slow MA Color",colorBlue),styleLine);
diff= a + mova;
diff1= b + movb;
m= diff - diff1;
m1= TSF(m,5)*.5;
m2=IIf(Ref(m1,-1)< m1,Ref(m1,-1),IIf(Ref(m1,-1) > m1,m,0));
HistColour = colorBlue;
HistColour = IIf( m2 > Ref(m2,-1), IIf(m2 >0,27,41),IIf(m2 >0,43,32) );
Plot( m2,StrFormat(_SECTION_NAME()),HistColour, ParamStyle("MACD Style",styleLine|styleHistogram|styleLeftAxisScale|styleThick,maskAll|styleHistogram));
_SECTION_END();
Верхняя панель - график цены. Под ней - стандартный индикатор MACD. Две нижние панели содержат видоизменённые MACD, формулы которых приведены выше. Параметры индикаторов настроены одинаково.
Действительно, видно, что новые индикаторы генерируют сигналы раньше, чем классический MACD. Таким образом, путем внесения разумных изменений в общеизвестные индикаторы, которыми пользуется абсолютное большинство, можно добиться преимущества, получая сигналы несколько ранее основной массы других игроков.
См. также Zero-Lag Moving Average

