Вопрос РАЗРАБОТЧИКАМ

 
Вопрос РАЗРАБОТЧИКАМ
Здравствуйте !
В учебниках по теханализу приводится следующая формула вычисления экспоненциального скользящего среднего (EMA):

EMA(t) = EMA(t - 1) + K x [Price(t) - EMA(t - 1)],
где t - текущий момент времени,
t - 1 - предыдущий момент времени,
K = 2 / (n + 1),
n - период средней.

Очевидно, что эта формула рекуррентная. Непонятно, как вычислять начальное значение EMA - значение в начальной точке рассматриваемого временного периода.

Подскажите пожалуйста.

С уважением, Андрей.
 
начальная точка в EMA
Начальная(нулевая) точка в EMA равна выбранному значению нулевого бара.
Например, если считаем по Close, то:
m_indbuf[0]=m_rates[0].close;
а остальные значения считаем, учитывая предыдущие значения индикатора.
 
MetaTrader показывает другие результаты
Здравствуйте !

К сожалению, MeataTrader 3.20 показывает немного другое: так, например, график USDCHF,H4, вычисляется EMA(14) по Close.

Перелистываем график на начало и видим, что первое значение EMA(14, Close) на первом баре за 2001 04.05 00:00 (14-м по порядку с начала) не совпадает с ценой закрытия предыдущего (13-го) бара.
 
всё правильно
EMA считается с нулевого (говоря по-программистски) или с самого первого (говоря естественным языком) бара. в отличие от простого, сглаженного или линейно-взвешенного MA, которые начинают считаться с бара, соответствующего периоду. первые <period> баров обнуляются для "одинаковости" вывода всех MA.
Причина обращения: