Обсуждение статьи "Разработка пользовательского индикатора Heiken Ashi с помощью MQL5"

 

Опубликована статья Разработка пользовательского индикатора Heiken Ashi с помощью MQL5:

В этой статье мы узнаем, как создать собственный индикатор с использованием MQL5 на основе наших предпочтений, который будет использоваться в MetaTrader 5 для интерпретации графиков или применяться в составе советников.

Графики Heiken Ashi похожи на обычные свечные графики, но методы расчета свечей отличаются. Как мы знаем, обычный график свечей рассчитывает цены на основе фактических цен открытия, максимума, минимума и закрытия за определенный период, но Heiken Ashi учитывает цены предыдущих аналогичных цен (открытия, максимума, минимума и закрытия при расчете своих свечей.

Вот как рассчитываются значения Heiken Ashi:

  • Open = (открытие предыдущей свечи + закрытие предыдущей свечи) / 2
  • Close = (открытие + закрытие + максимум + минимум текущей свечи) / 4
  • High = самое высокое значение от максимума, открытия или закрытия текущего периода
  • Low = самое низкое значение от минимума, открытия или закрытия текущего периода

На основе расчета индикатор строит бычьи и медвежьи свечи, цвета этих свечей указывают на соответствующее направление рынка: бычье или медвежье. Для сравнения ниже приведены традиционные японские свечи и Heiken Ashi.

 Heiken Ashi

Автор: Mohamed Abdelmaaboud

 

Декларация-определение

Здравствуйте,
Я вижу, что вы используете члены OnInit(),- OnDenit(),- OnTick() для объектно-ориентированного программирования.
Но разве объявление или инициализация переменных, например, double heikenAshiOpen[]... не происходит один раз в OnInit()- и, соответственно, оценка переменных (определение), а также объектных переменных fastEMA и slowEMA в тикере?

 

В принципе, да, но не здесь, поскольку переменные снова потеряют свои значения при выходе из функции (функций). Наберите в Google: site:mql5.com scope variable

и прочитайте: https://www.mql5.com/en/docs/basis/variables/variable_scope

Documentation on MQL5: Language Basics / Variables / Visibility Scope and Lifetime of Variables
Documentation on MQL5: Language Basics / Variables / Visibility Scope and Lifetime of Variables
  • www.mql5.com
Visibility Scope and Lifetime of Variables - Variables - Language Basics - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
 

Deklaration- Definition

Здравствуйте,
Я вижу, что вы используете члены OnInit(),- OnDenit(),- OnTick() для объектно-ориентированного программирования.
Но разве объявление или инициализация переменных, например, double heikenAshiOpen[]... не происходит один раз в OnInit()- и, соответственно, оценка переменных (определение), а также объектных переменных, fastEMA и slowEMA в тикере?

Я думаю так же, как и Карло. Массивы в

OnInit()

загружаются только при загрузке советника и при изменении таймфрейма.

Потому что значение меняется с каждым тиком.

А с индикатором

OnCalculate

вычислять.

 
Отличная статья. Спасибо