141 может тральщик вызвать на быстром рынке. Решение - шаг трала более 1 пункта.
KimIV:
141 может тральщик вызвать на быстром рынке. Решение - шаг трала более 1 пункта.
141 может тральщик вызвать на быстром рынке. Решение - шаг трала более 1 пункта.
Спасибо, но самая загадочная #2, общая ошибка, что за общая не понятно.
А как её обработать, остановить эксперт или достаточно сделать паузу и торговать дальше.
Слева столбцы, в них буквы M и S означают обработку ошибок после исполнения функций OrderModify() и OrderSend() соответственно.
Спасибо.
KimIV:
Я для себя как-то давненько на основе инфы отсюда делал такую табличку
Чем краснее строка, тем критичнее ошибка...
спасибо, полезная расшифровка, еще бы функицю-логер которая бы в зависимости от настройки в файл или в принт выводила бы эту инфу, примерно как:
133 | Critical error = Торговля запрещена | advice = Прекратить попытки | action = блокировка советника | pause= -1
может быть будет проще отлаживать программы на mql4 для начинающих, вставил в проблемный участок LogError(GetLastError()); и сразу распринтовка пошла
нет ничего проще..
пишете что-типа..
void ErrorBlock(bool show, int& err, string& msg){ err = GetLastError(); switch (err) { case 0: err = ERR_NOERROR;break; case 1: msg = "Ошибка ERR_NO_ERROR (" + err + "): Данные параметры были выставлены ранее."; if (show) Print(msg); err = ERR_SKIP;break; case 2: msg = "Ошибка ERR_COMMON_ERROR (" + err + "): Сбой системы. Перезагрузить компьютер/проверить сервер."; if (show) Print(msg); err = ERR_FATAL;break; //case и т.д. } }
где
Параметры: show - выводить/не выводить сообщение об ошибке на консоль err - уровень критичности ошибки ERR_NOERROR - нет ошибки, ERR_WAITING - надо ждать и обновлять, ERR_SKIP - операция бракуется, ERR_FATAL - фатальная ошибка msg - сообщение содержащее информацию об ошибке
Можно так:
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+ //| Автор : TarasBY, taras_bulba@tut.by | //+-----------------------------------------------------------------------------------+ //| Функция обрабатывает ошибки | //IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+ bool fErrorHandling (int fi_Error, bool& fb_InvalidSTOP) { //---- if (fi_Error == 0) return (true); switch (fi_Error) { case 4: /*ERR_SERVER_BUSY*/ case 137: /*ERR_BROKER_BUSY*/ case 139: /*ERR_ORDER_LOCKED*/ case 146: /*ERR_TRADE_CONTEXT_BUSY*/ Sleep (500); return (false); case 6: /*ERR_NO_CONNECTION*/ fReConnect(); Sleep (1000); return (false); case 135: /*ERR_PRICE_CHANGED*/ case 136: /*ERR_OFF_QUOTES*/ case 138: /*ERR_REQUOTE*/ Sleep (1); return (false); case 129: /*ERR_INVALID_PRICE*/ case 130: /*ERR_INVALID_STOPS*/ fb_InvalidSTOP = true; return (false); case 128: /*ERR_TRADE_TIMEOUT*/ case 142: /*Ордер поставлен в очередь.*/ case 143: /*Ордер принят дилером к исполнению.*/ Sleep (5000); int li_Ticket = fGet_TicketLastOrder (-1); if (li_Ticket > 0) { OrderSelect (li_Ticket, SELECT_BY_TICKET); if (OrderOpenTime() >= bdt_curTime) { fWrite_Log (StringConcatenate ("Ошибка № ", fi_Error, " - ", ErrorDescription (fi_Error), ": ордер[", li_Ticket, "] уже открыт !!!"), bi_indERR); return (true); } } return (false); case 4109: /*ERR_TRADE_NOT_ALLOWED*/ Alert ("TRADE NOT ALLOWED ! SWITCH ON option \' Allow live trading\' (Необходимо включить опцию \'Разрешить советнику торговать\')"); return (true); default: fWrite_Log (StringConcatenate ("Order[", OrderTicket(), "]: Критическая ошибка № ", fi_Error, " - ", ErrorDescription (fi_Error)), bi_indERR); return (true); } //---- return (true); }Размеры Sleep() на любителя.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Интересуют следующие ошибки #2, #9 и #141, причины возникновения, следствия и пути устранения.
Если кто сталкивался и имеет представления об этих ошибках то поделитесь информацией.
Или пусть разработчики прольют свет...