Расчёт
Первый бар равен ценовому бару, остальные рассчитываются по формуле:ha_close = mean(open, close, high, low) ha_open = mean(prev_open, prev_close) ha_high = max(high, open, close) ha_low = min(low, open, close)
, где:
- ha_close, ha_open, ha_high, ha_low - новые значения бара
- close, open, high, low - данные исходного бара
- prev_open, prev_close - открытие и закрытие предыдущего бара
- mean - среднее арифметическое
- max, min - максимум и минимум
Так получается классический Heiken Ashi на основе ценовых данных.
Идея моего варианта индикатора в том, чтобы повторить эти вычисления на полученных барах снова и снова до тех пор, пока что-нибудь не получится. К счастью, уже примерно на 10-й итерации значения сходятся к некоторому стабильному состоянию, и делать больше 10-15 итераций смысла уже нет.
Очевидно, для этого есть математическое объяснение, но я не стал разбираться, удовлетворившись интересным результатом. Интересно здесь то, что получается примерно то же самое, что и стандартный HA, но сглаженный, причём без каких-либо субъективных значений параметров.
По сравнению с оригинальным HA сглаживаются лишь тела свечей, хвосты остаются теми же. Цвет (направление) может измениться, причём как с опозданием, так и с опережением.
Возможно, будет интересным понаблюдать за небольшими степенями вложенности, поэтому в индикаторе оставлено несколько промежуточных степеней вложенности.
Визуализация
В этом индикаторе я немного расширил возможность отображения свечей по сравнению с другими моими свечными индикаторами. Помимо обычных свечей индикатор может показывать значения в виде свечей с затенёнными хвостами, просто в виде баров или баров с затенёнными хвостами.В MT5 есть баг (mki#55), который мешает нормальному отображению подобных индикаторов.
В этом индикаторе есть возможность отображать исходную цену, так что можно использовать пару таких индикаторов - один для исходной цены (сверху) и второй для HA желаемого уровня вложенности (снизу), оригинальные бары при этом можно убрать с графика сбросом соответствующих цветов в None.
Кроме того, можно отображать оригинальные ценовые бары, но с цветом HA (см. параметр Color Only).
Проект
Исходный код скрипта и описание параметров находятся в хранилище: https://gitlab.com/fxcoder-mql/rha-mt5.