Полученное значение еще раз сглаживается и добавляется к EMA.
Пример:
Исходный текст:
Код: Выделить всё
function Initialize()
{ 
 IndicatorName = "DEMA";                     
 AddInput("Input", Inputs.Price);     
 AddSeries("DEMA", DrawAs.Line, Color.Green);   
 PriceStudy = true;                           
 AddParameter("Period", 20, 1);          
 AddGlobalVariable("K", Types.Double, 0.0);
 AddGlobalVariable("EMAi", Types.Double, 0.0);
 AddGlobalVariable("EMAe", Types.Double, 0.0);
}
function Evaluate()
{ 
// AlfaDirect. 2015. OX
// EMA - экспоненциальная скользящая средняя. 
if (CurrentIndex > 0)
{
   EMAi = (1.0 - K)*EMAi + K*Input[0];
   EMAe = (1.0 - K)*EMAe + K*EMAi;
  DEMA = 2.0*EMAi - EMAe;
}
else
{
   EMAi = Input[0];
   EMAe = Input[0];
    DEMA = Input[0];
    K = 2.0/(Period + 1.0);
}
}
