int stopsLevel = (int)SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL) + (int)SymbolInfoInteger(_Symbol, SYMBOL_SPREAD);
Попробуйте учитывать это в вычислении значений уровней в пунктах.
Это даст минимальные значения, которые разрешены по выбранному символу.
- www.mql5.com
В принципе, выше видно, что:
Ask = 1,30201
Bid = 1,30199
SL (Стоплосс) = 1,30249
TP (Тейкпофит) = 1,30096
stopLevel = 0,0005
freezeLevel = 0,00015
Почему не возможно установить стоп и тейк?
Тейк и стоп необходимо сравнивать на расстояние стоплевела от бида?
Есть такое понятие, как базовая цена ордера. Это цена, по которой ордер будет закрыт. Рыночный ордер Sell закрывается по цене Ask (открывается - по Bid). Значит, базовая цена для Sell - Ask. От цены Ask уровни SL и TP должны быть не ближе, чем размер Stop Level. Таким образом, должно выполняться неравенство:
SL - Ask >= StopLevel
Подставляем данные:
1.30249 - 1.30201 >= 0.0005
Неравенство не выполнено. Ошибка справедлива.
Попробуйте учитывать это в вычислении значений уровней в пунктах.
Это даст минимальные значения, которые разрешены по выбранному символу.
У меня тоже появилась такая мысль. я всё-таки, сегодня нечто подобное сам реализовал и заработало, хотя.. ошибки в журнале всё-равно мелькают. Думаю, неужели от них не избавиться никак? И это нормально когда тонны ошибоксыпятся в журнале?
Понятно, что можно их не отлавливать и не отображать, но это тоже не вариант.
Nikolay Mitrofanov:
Есть еще такая таблица.
https://www.mql5.com/ru/docs/constants/errorswarnings/enum_trade_return_codes
Она полезная.
Это для мт5, в 4-ке такого нет. Мне пришлось одну вещь писать в 4, хотя я этому не особо рад..)
В 5-ке проще. Кроме того, в ней, хотя бы, можно отладить ситуацию, а в 4-ке вообще ничего для этого нет. Убогая вещь..
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день. На других терминалах у меня такой ошибки, в общем-то, не замечено. Но вот я столкнулся с другим ДЦ и понеслось..
Одновременно, открытие со стоп-лоссом и тейк-профитом возможности устанавливать нет. ДЦ не разрешает. Поэтому приходится устанавливать ордера без стопа и тейка, а после уже на следующих типах добавлять стоп и тейк.
У меня изначально все проверки давно уже прописаны и на стоплевел и на фризлевел. Большинство ордеров модифицируется без проблем, но некоторые не модифицируются. Вот это мне и интересно.
Вот что мой код выдаёт при попытке модификации рандомной шортовой позиции:
Вот скрин рыночной ситуации. Ордер открылся на последнем баре с индексом 0.
В принципе, выше видно, что:
Ask = 1,30201
Bid = 1,30199
SL (Стоплосс) = 1,30249
TP (Тейкпофит) = 1,30096
stopLevel = 0,0005
freezeLevel = 0,00015
Почему не возможно установить стоп и тейк?
Тейк и стоп необходимо сравнивать на расстояние стоплевела от бида?