Ошибка 4107

 
price_s = NormalizeDouble(Close[0]-(DistanceOr+stops_level)*_Point,_Digits);
sl_s = NormalizeDouble(price_s+(StopLoss+stops_level)*_Point,_Digits);

if (price_s<Bid && sl_s>Bid && sl_s>price_s) fun_open_order(Symbol(), OP_SELLSTOP, lots, price_s, Slippage, sl_s, 0, ea_comments, Magic2, 0, clrDeepPink);

Помогите разобраться, что я делаю не так. Надоело уже. Автоматическое тестирование в маркете советник проходит успешно. В моих терминалах я не могу повторить ошибку.

Но модератор мне каждый раз возвращает ошибку 4107.


 
Anton Zverev:

Помогите разобраться, что я делаю не так. Надоело уже. Автоматическое тестирование в маркете советник проходит успешно. В моих терминалах я не могу повторить ошибку.

Но модератор мне каждый раз возвращает ошибку 4107.


Написано же в журнале - неправильное значение для Stop Loss. Скорее всего, он имеет отрицательное значение. Есть такая проверка в коде?

Также, возможно, Stop Loss имеет значение типа 1.47439835734 при ближайшем допустимом значении 1.47440. Тогда нужно привести значение в соответствие с шагом цены (Tick Size).

Общие принципы - Торговые операции - MetaTrader 5
Общие принципы - Торговые операции - MetaTrader 5
  • www.metatrader5.com
Перед тем как приступить к изучению торговых функций платформы, необходимо создать четкое представление об основных терминах: ордер, сделка и позиция. — это распоряжение брокерской компании купить или продать финансовый инструмент. Различают два основных типа ордеров: рыночный и отложенный. Помимо них существуют специальные ордера Тейк Профит...
 
Anton Zverev:

Помогите разобраться, что я делаю не так. Надоело уже. Автоматическое тестирование в маркете советник проходит успешно. В моих терминалах я не могу повторить ошибку.

Но модератор мне каждый раз возвращает ошибку 4107.


можно предположить что ошибка в fun_open_order