Полученное значение еще раз сглаживается и добавляется к 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);
}
}