Обсуждение статьи "Рецепты MQL5 - Как не получить ошибку при установке/изменении торговых уровней?"

 

Опубликована статья Рецепты MQL5 - Как не получить ошибку при установке/изменении торговых уровней?:

Продолжая работу над экспертом из предыдущей статьи "Рецепты MQL5 - Изучение свойств позиции в тестере MetaTrader 5", внедрим в него еще целый ряд полезных функций, а также усовершенствуем и оптимизируем уже имеющиеся. На этот раз эксперт будет снабжен внешними параметрами, которые можно будет оптимизировать в тестере MetaTrader 5. Это уже будет немного похоже на простую торговую систему.

Рецепты MQL5 - Как не получить ошибку при установке/изменении торговых уровней?

Автор: Anatoli Kazharski

 

GetPositionProperties и GetSymbolProperties можно сделать гораздо удобнее на флагах, чем так, как сделано.

Да и апгрейдить в новой статье коды, выложенные в старой, это как-то.... криво что ли.

 
TheXpert:

GetPositionProperties и GetSymbolProperties можно сделать гораздо удобнее на флагах, чем так, как сделано.

Это хорошо, когда можно сделать ещё удобнее. Можно пример посмотреть?

TheXpert:

Да и апгрейдить в новой статье коды, выложенные в старой, это как-то.... криво что ли.

Заранее сложно учесть. Я думаю, если находится решение, которое на взгляд автора дополняет или делает удобнее, то нужно вносить изменения предупредив читателя. Точнее есть два варианта. Или исправлять в старой или модифицировать в новой. Я подумал, что второй вариант лучше. )) А так, у читателя всегда есть выбор.

 
tol64:

Можно пример посмотреть?

Ну обычные флаги

0х1 0х2 0х4 0х8 .... затем смотреть наличие и подгружать что надо.

 
Чтобы не получить ошибку при установке/изменении торговых уровней необходимо еще приводить эти уровни к кратности минимального изменения цены (SYMBOL_TRADE_TICK_SIZE). Минимальное изменение цены не всегда совпадает со значением пункта.
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
TheXpert:

Ну обычные флаги

0х1 0х2 0х4 0х8 .... затем смотреть наличие и подгружать что надо.

Да, точно. Не сразу понял, но так было бы ещё удобнее. Я пока не совсем разобрался с побитовыми операциями, попробую поэкспериментировать. В Справке что-то сложно-усваиваемый материал по этой теме. Не понимаю на все 100%, а хочется понимать, что делаешь. )) Может быть кто-нибудь напишет статью на эту тему.

Документация по MQL5: Основы языка / Операции и выражения / Побитовые операции
Документация по MQL5: Основы языка / Операции и выражения / Побитовые операции
  • www.mql5.com
Основы языка / Операции и выражения / Побитовые операции - Документация по MQL5
 
Yurich:
Чтобы не получить ошибку при установке/изменении торговых уровней необходимо еще приводить эти уровни к кратности минимального изменения цены (SYMBOL_TRADE_TICK_SIZE). Минимальное изменение цены не всегда совпадает со значением пункта.
Спасибо. Так будет точнее.
 
Отличная статья!
 

Да,

эта серия статей великолепна.

Тем не менее, я не понимаю, почему, когда я пробую советник в тестере стратегий, TP (Takeprofit) и SL (StopLoss) никогда не появляются (SL появляется, но, похоже, только когда я использую трейлинг-стоп ==> модификация SL работает, но не первый набор, когда ордер выполнен).

В то же время, когда я пытаюсь отладить советника в реальном времени, ордер проходит, и SL и TP корректно устанавливаются сразу после отправки ордера (немедленно в TradingBlock(); и нет необходимости ждать ModifyTrailingStop();

Кто-нибудь может дать объяснение?

Это проблема брокера (Alpari UK)?

Спасибо за помощь.

 
Macgyver75:

Да,

эта серия статей великолепна.

Тем не менее, я не понимаю, почему, когда я пробую советник в тестере стратегий, TP (Takeprofit) и SL (StopLoss) никогда не появляются (SL появляется, но, похоже, только когда я использую трейлинг-стоп ==> модификация SL работает, но не первый набор, когда ордер выполнен).

В то же время, когда я пытаюсь отладить советника в реальном времени, ордер проходит, а SL и TP корректно устанавливаются сразу после отправки ордера (сразу в TradingBlock(); и нет необходимости ждать ModifyTrailingStop());

Кто-нибудь может дать объяснение?

Это проблема брокера (Alpari UK)?

Спасибо за помощь.

Можете ли вы объяснить, почему вы думаете, что нет TP и SL. У меня их 2.
 
Здравствуйте, при тестировании вашего советника в тестере стратегий на GOLD я постоянно получал сообщения Failed to open position - Invalid stops - no positions were opened. Что было не так? Это было написано для того, чтобы избежать такого рода ошибок?