Поскольку все возможные комбинации интервалов для EMA хранить в памяти невозможно, то терминал MoonBot считает цены по следующему принципу:
Набор секундных средних от текущей цены (1 сек) до 300 сек. назад. Считаются как классич. EMA (Pслед = (Pпред * N + Pтекущ) ./ (N + 1) по средним ценам за каждую секунду
Минутные средние от 2 минут назад до 90 минут назад. Считаются как просто средняя цена за минуту
Часовые средние от 1 часа назад до примерно 41 часов назад (ограничение биржи на свечи по которым считаются часовые средние) (считается как средняя цена за час по 5 м свечам)Исходя из этого, параметры X,Y в формуле EMA могут быть: 1s..300s или 2m..90m или 1h..41h (конкретные диапазоны параметров X и Y смотрите выше рядом со своим параметром MIN MAX EMA).
Если Y ставить 1s то будет сравнение с текущей ценой, при указании секунд s можно не ставить.
Пересчет часовых max/min производится раз в 5 минут, по мере появления новой 5м свечи. Чтобы записи Max(1h)/Min(1h) и Max(60m)/Min(60m) не дублировали друг друга, часовые идут сразу от 1 часа назад. К примеру для Max(1h,1) максимальное значение берется по 5м свечам от 60 по 120 минуту назад.
Пересчет минутных max/min идет через каждый тик (1 тик=2 сек), то есть с задержкой от 2 до 4 сек. При этом последние 60 секунд не включены в расчет уровней минутных max/min.
Таким образом, резкий рост на последней минуте(для минутных интервалов) и за последние 60 минут (для часовых интервалов) не учитывается в определении уровней max/min, а следовательно в моменте значение max может быть больше нуля, а min меньше нуля. Так сделано, чтобы можно было формулой задать перехай/перелоу, то есть записать условие, что текущая цена стала больше максимума либо меньше минимума за последние N минут/часов.
Какая используется методика расчета и ограничения интервалов EMA?
:
Настройки стратегий