Помогите, ошибка 130 при попытке открыть Sell

Помогите, ошибка 130 при попытке открыть Sell

Помогите, советник все время выдает ошибку 130 при попытке открыть Sell. При этом при попытке открыть Buy, выдал ошибку 130 один раз и после ни разу не выдавал, сколько я не присоединял советника к графику. Вот и получается, что все Buy он открывает, а Sell не может. Что это может быть.

while(true) // цикл закрытия ордера if (Total==0 && Opn_S==true) // открытых ордеров нет + < // критерий на открытие SellRefreshRates(); // обновление данных SL=Ask + StopLoss*Point; // вычисление SL откр. Alert("Попытка открыть Sell. Ожидание ответа.."); Ticket=OrderSend(Symb,OP_SELL,Lots,Bid,3,SL,Green); //открытие Sell if (Ticket > 0) // получилось if (Fun_Error(GetLastError())==1) // обработка ошибок continue; // повторная попытка return; // выход из функции start() > break; // выход из функции while >

  • Эксперт всегда покупает или продает.
  • Советник открывает несколько параллельных сделок на одном баре, вместо одной
  • [ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда.

Константа Значение Описание ERR_NO_ERROR 0 Нет ошибки ERR_NO_RESULT 1 Нет ошибки, но результат неизвестен ERR_COMMON_ERROR 2 Общая ошибка ERR_INVALID_TRADE_PARAMETERS 3 Неправильные параметры ERR_SERVER_BUSY 4 Торговый сервер занят ERR_OLD_VERSION 5 Старая версия клиентского терминала ERR_NO_CONNECTION 6 Нет связи с торговым сервером ERR_NOT_ENOUGH_RIGHTS 7 Недостаточно прав ERR_TOO_FREQUENT_REQUESTS 8 Слишком частые запросы ERR_MALFUNCTIONAL_TRADE 9 Недопустимая операция нарушающая функционирование сервера ERR_ACCOUNT_DISABLED 64 Счет заблокирован ERR_INVALID_ACCOUNT 65 Неправильный номер счета ERR_TRADE_TIMEOUT 128 Истек срок ожидания совершения сделки ERR_INVALID_PRICE 129 Неправильная цена ERR_INVALID_STOPS 130 Неправильные стопы ERR_INVALID_TRADE_VOLUME 131 Неправильный объем ERR_MARKET_CLOSED 132 Рынок закрыт ERR_TRADE_DISABLED 133 Торговля запрещена ERR_NOT_ENOUGH_MONEY 134 Недостаточно денег для совершения операции ERR_PRICE_CHANGED 135 Цена изменилась ERR_OFF_QUOTES 136 Нет цен ERR_BROKER_BUSY 137 Брокер занят ERR_REQUOTE 138 Новые цены ERR_ORDER_LOCKED 139 Ордер заблокирован и уже обрабатывается ERR_LONG_POSITIONS_ONLY_ALLOWED 140 Разрешена только покупка ERR_TOO_MANY_REQUESTS 141 Слишком много запросов ERR_TRADE_MODIFY_DENIED 145 Модификация запрещена, так как ордер слишком близок к рынку ERR_TRADE_CONTEXT_BUSY 146 Подсистема торговли занята ERR_TRADE_EXPIRATION_DENIED 147 Использование даты истечения ордера запрещено брокером ERR_TRADE_TOO_MANY_ORDERS 148 Количество открытых и отложенных ордеров достигло предела, установленного брокером.

< // критерий на открытие SellRefreshRates(); // обновление данных SL=Ask + StopLoss*Point; // вычисление SL откр.

Исправте на: SL=Bid + StopLoss*Point; // вычисление SL откр.

. Что это может быть.

ERR_INVALID_STOPS 130 Слишком близкие стопы или неправильно рассчитанные или ненормализованные цены в стопах (или в цене открытия отложенного ордера). Попытку можно повторять только в том случае, если ошибка произошла из-за устаревания цены. Необходимо после задержки от 5 секунд обновить данные при помощи функции RefreshRates и повторить попытку. Если ошибка не исчезает, необходимо прекратить все попытки торговых операций и изменить логику программы.

P.S. В Вашем варианте это или Слишком близкие стопы или ненормализованные цены в стопах или и то и другое.

См. также MODE_STOPLEVEL 14 Минимально допустимый уровень стоп-лосса/тейк-профита в пунктах

В команде OrderSend после SL должно стоять значение для TP.

да, что тут скажешь . rtfm

То, что это неправильные стопы, я знаю. Я пробывал и нормализовывать цену, и RefreshRates есть, так на Buy то все нормально, а на Sell - ошибка 130 и все тут, хотя мой SL очень далек от StopLevel

Константа Значение Описание ERR_NO_ERROR 0 Нет ошибки ERR_NO_RESULT 1 Нет ошибки, но результат неизвестен ERR_COMMON_ERROR 2 Общая ошибка ERR_INVALID_TRADE_PARAMETERS 3 Неправильные параметры ERR_SERVER_BUSY 4 Торговый сервер занят ERR_OLD_VERSION 5 Старая версия клиентского терминала ERR_NO_CONNECTION 6 Нет связи с торговым сервером ERR_NOT_ENOUGH_RIGHTS 7 Недостаточно прав ERR_TOO_FREQUENT_REQUESTS 8 Слишком частые запросы ERR_MALFUNCTIONAL_TRADE 9 Недопустимая операция нарушающая функционирование сервера ERR_ACCOUNT_DISABLED 64 Счет заблокирован ERR_INVALID_ACCOUNT 65 Неправильный номер счета ERR_TRADE_TIMEOUT 128 Истек срок ожидания совершения сделки ERR_INVALID_PRICE 129 Неправильная цена ERR_INVALID_STOPS 130 Неправильные стопы ERR_INVALID_TRADE_VOLUME 131 Неправильный объем ERR_MARKET_CLOSED 132 Рынок закрыт ERR_TRADE_DISABLED 133 Торговля запрещена ERR_NOT_ENOUGH_MONEY 134 Недостаточно денег для совершения операции ERR_PRICE_CHANGED 135 Цена изменилась ERR_OFF_QUOTES 136 Нет цен ERR_BROKER_BUSY 137 Брокер занят ERR_REQUOTE 138 Новые цены ERR_ORDER_LOCKED 139 Ордер заблокирован и уже обрабатывается ERR_LONG_POSITIONS_ONLY_ALLOWED 140 Разрешена только покупка ERR_TOO_MANY_REQUESTS 141 Слишком много запросов ERR_TRADE_MODIFY_DENIED 145 Модификация запрещена, так как ордер слишком близок к рынку ERR_TRADE_CONTEXT_BUSY 146 Подсистема торговли занята ERR_TRADE_EXPIRATION_DENIED 147 Использование даты истечения ордера запрещено брокером ERR_TRADE_TOO_MANY_ORDERS 148 Количество открытых и отложенных ордеров достигло предела, установленного брокером.

< // критерий на открытие SellRefreshRates(); // обновление данных SL=Ask + StopLoss*Point; // вычисление SL откр.

Исправте на: SL=Bid + StopLoss*Point; // вычисление SL откр.

Спасибо, помогло. Открывает чудно. Я вроде пробовал так, как вы написали, и у меня ничего не получалось. Но. раз получилось сейчас, значит так пробовал.

📎📎📎📎📎📎📎📎📎📎