// Определить макросы последовательности цикла OnCalculate #ifdef __MQL4__ // для MQL4 (в виде рядов) #define MOnCalcNext( _index ) ( _index-- ) #define MOnCalcBack( _index, _offset ) ( _index + _offset ) #define MOnCalcCheck( _index ) ( _index >= 0 ) #define MOnCalcValid( _index ) ( _index < rates_total ) #define MOnCalcStart \ ( rates_total - ( prev_calculated < 1 ? 1 : prev_calculated ) ) #else // для MQL5 (в виде несерийных данных) #define MOnCalcNext( _index ) ( _index++ ) #define MOnCalcBack( _index, _offset ) ( _index - _offset ) #define MOnCalcCheck( _index ) ( _index < rates_total ) #define MOnCalcValid( _index ) ( _index >= 0 ) #define MOnCalcStart \ ( prev_calculated < 1 ? 0 : prev_calculated - 1 ) #endif
Почему вы не используете ArraySetAsSeries()? Это позволило бы применять одни и те же макросы для обеих версий языка.
Я не критикую, просто мне интересно.
Наверное, вам так просто удобнее.
Я предпочитаю использовать макросы, чтобы решение принималось на этапе компиляции, а не с помощью ArraySetAsSeries(), которая выполняется во время выполнения программы, ради некоторой дополнительной эффективности.
В данном случае, учитывая, что это очень простой индикатор, разница практически незаметна, но для гораздо более сложных индикаторов она может быть существенной.
Я решил использовать макросы, чтобы решение принималось на этапе компиляции, а не с помощью ArraySetAsSeries(), которое выполняется во время выполнения, ради некоторой дополнительной эффективности.
В данном случае, учитывая, что это очень простой индикатор, разница практически незаметна, но для гораздо более сложных индикаторов она может быть существенной.
Спасибо!
Не за что!
Я искал информацию о том, как производятся расчёты для индикатора Хэйкен-Аши, и в отношении максимумов там объясняется: «максимальное значение из значений максимума, цены открытия или цены закрытия текущего периода», а в отношении минимумов — «минимальное значение из значений минимума, цены открытия или цены закрытия текущего периода». Разве это не то же самое, что сказать, что максимумы и минимумы совпадают с целыми свечами? Если это так, то ваша идея отображать их в виде линий проста и гениальна: можно сразу увидеть тренд по индикатору Хэйкен-Аши, не отказываясь от обычных свечей.
Автоматический перевод, примененный модератором. На английском форуме просьба писать на английском языке.
В большинстве случаев да, но когда цена открытия Хейкин-Аши (скользящее среднее) выходит за пределы максимума/минимума обычной свечи, она становится максимумом/минимумом Хейкин-Аши.
Прошу прощения, но я не совсем понял смысл вашего сообщения. Не могли бы вы пояснить?
Мне кажется, ваш код очень хорош и функционален. Я не скачивал файл mq5.
Я просто скопировал код для MT4, которым вы поделились, вставил его в MetaEditor MQL5 и сохранил как mq5 — и всё работает без проблем.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Heikin Ashi Lines:
Более простой способ отображения Heikin Ashi
Author: FMIC