Обсуждение статьи "Мастер MQL5: Как научить эксперта открывать отложенные ордера по любым ценам"

 

Опубликована статья Мастер MQL5: Как научить эксперта открывать отложенные ордера по любым ценам:

В статье рассмотрен способ модификации кода модуля торговых сигналов для реализации функционала выставления отложенных ордеров на произвольном расстоянии от текущей цены: это может быть цена Close или Open предыдущего бара, а может быть значение скользящей средней. Вариантов множество – главное, теперь цену открытия отложенного ордера можно выставлять любую. Данная статья станет полезной для тех, кто использует стратегии торговли отложенными ордерами.

Эксперт, сгенерированный с помощью Мастера MQL5, может открывать отложенные ордера, но только на фиксированном расстоянии от текущей цены.  Это значит, что если изменится ситуация на рынке (например, изменилась волатильность рынка), то придется перезапускать эксперта с новыми параметрами.

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

Рис. 1. Signal_PriceLevel=-50

Автор: Karputov Vladimir

 

Спасибо автору за полезную статью, но ИМХО нужно еще раз проверить код, например я обратил внимание, что в методах CMySignalEnvelopes::LongCondition и CMySignalEnvelopes::ShortCondition выполняется вызов по не проверенному на NULL указателю на объект m_signal, а в методе CMySignalEnvelopes::GetPriceLevelStopp применяется вычитание от текущего значения не инициализированной локальной переменной temp...

Кроме того, прежде чем взять на вооружение предложенный вами механизм изменения параметров открытия ордеров, хотелось бы убедиться в его корректности.
Мои сомнения состоят в следующем:
во-первых ваши изменения параметров нивелирует значение внешней настройки советника Signal_PriceLevel, что может ввести в заблуждение пользователя,
во-вторых это изменение идет через поле главного модуля, что может повлиять на работу других модулей,
в-третьих методы где это делается, функционально служат для определения условий, а не изменения параметров ордеров - LongCondition, ShortCondition.

При этом для изменения параметров открытия ордеров, в базовом классе CExpertSignal есть специфические, виртуальные методы - OpenLongParams, OpenShortParams, которые возможно и предполагались разработчиками для переопределения в классах потомках, модулей пользовательских сигналов, а для включения вызыва этих методов, достаточно при инициализации вызвать метод General и передать ему индекс объекта от своего класса.

А в общем то хотелось, чтобы такие статьи, как ваша или моя, в которых предлагаются расширения для системных библиотек, сопровождались бы, хоть небольшим комментом со стороны MQ разработчиков этих библиотек, ведь таких статей не так много.