Обсуждение статьи "Мастер 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 разработчиков этих библиотек, ведь таких статей не так много.
 

 

спасибо за ваш код. он очень полезен.

Кстати, я пытаюсь запустить код, результат включает покупку и продажу по разным ценам, но в колонке прибыли всегда НОЛЬ, даже есть несколько сделок.

Это происходит с разными символами и временем.

Очень признателен за помощь.

Файлы:
 
Спасибо, что поделились, это большая заслуга перед новичками.
 
hongtao:
Спасибо, что поделились, это большая заслуга для новичков.
Спасибо за анализ, cowman !!!!!!
 
Я читал, что этот советник устанавливает отложенные ордера на десятки пунктов выше и ниже текущего уровня. Могу ли я спросить, как в этом советнике установить точки поддержки и сопротивления для отложенных ордеров? Например, рассчитать минимальную цену, максимальную цену предыдущей k-линии и установить отложенные ордера по минимальной и максимальной цене.
 

Здравствуйте, Карпутов

Спасибо за этот замечательный учебник. Хотел спросить, возможно ли модифицировать этот код, чтобы советник открывал отложенные ордера?

Я торгую только золотом по следующей стратегии:

1. если 12 SMA пересекается выше 20 SMA, то я хочу открыть набор ордеров buy stop & sell limit, как показано ниже;

Например, текущая цена при пересечении SMA составляет $1300.00, тогда;

1-й buy stop @ 1302.00 и sell limit @ 1302.50

2-й buy stop @ 1303.00 & sell limit @ 1303.50

3-й buy stop @ 1304.00 & sell limit @ 1304.50

4-й buy stop @ 1305.00 & sell limit @ 1305.50


2. если 12 SMA пересекается ниже 20 SMA, то я хочу открыть ордера sell stop и buy limit, как показано ниже;

Например, текущая цена при пересечении SMA составляет $1300.00, тогда;

1-й sell stop @ 1298.00 и buy limit @ 1297.50

2-й sell stop @ 1297.00 & buy limit @ 1296.50

3-й sell stop @ 1296.00 & buy limit @ 1295.50

4-й sell stop @ 1295.00 & buy limit @ 1294.50


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


Спасибо

Dev

 
Deven Parmar :

***

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

***

Вам нужно поискать подходящий советник в CodeBase. Или обратитесь к Фрилансеру. Ваш вопрос не относится к теме этой статьи.

 
Vladimir Karputov:

Вам нужно поискать подходящего советника в CodeBase. Или обратитесь к Фрилансеру. Ваш вопрос не по теме этой статьи.

Я понимаю, что это не по теме статьи, но возможно ли, что вы поможете мне модифицировать и перекодировать этот советник, чтобы он работал так, как я хочу? Я не очень хорошо разбираюсь в кодировании.

 
Deven Parmar :

Я понимаю, что это не по теме статьи, но возможно ли, что вы поможете мне модифицировать и перекодировать этот советник, чтобы он работал так, как я хочу? Я не очень хорошо разбираюсь в кодировании.

Вы пишете в статье для обсуждения. Лучше создайте тему на форуме "Помогите найти советника, который работает с отложенными ордерами". Может быть, вы сможете помочь.

 
Vladimir Karputov:

Вы пишете в статье для обсуждения. Лучше создайте тему на форуме "Помогите найти советника, который работает с отложенными ордерами". Может быть, вы сможете помочь.

Ах да, теперь я понял о чем вы говорите. Спасибо