Коды ошибок терминала MT4 — полная расшифровка и подробное описание

Хотите научиться расшифровывать коды ошибок терминала МТ4? Эта информация будет полезна трейдеру чтобы понять, почему программа МетаТрейдер 4 или торговый советник форекс работает неправильно или некорректно.В этой статье вы найдете полную расшифровку и подробное описание всех кодов.

Коды ошибок терминала можно увидеть во вкладке Журнал

Код ошибки терминала можно увидеть во вкладке Журнал

Откуда берутся коды ошибок

При работе торгового терминала MetaTrader 4 возникают различные ошибки при обмене информацией с торговым сервером. В ответ на ошибочные запросы он отсылает программе MetaTrader 4 не описание самой ошибки, а цифровой код ошибки — специальную комбинацию цифр, которая отображается во вкладках «Эксперты» и «Журнал» торгового терминала.

Не все торговые терминалы MetaTrader 4  дают расшифровку цифрового кода, к тому же терминал выдает ошибку на английском языке. В некоторых случаях эта информация может сильно облегчить «жизнь» трейдеру и помочь быстрее справиться с возникшей проблемой.

Код ошибки в отчете торгового брокера

Код ошибки в отчете торгового брокера

Коды ошибок торгового сервера

Ниже представлена расшифровка кодов ошибок, которые возникают на стороне сервера или вашего торгового брокера.

Константа Значение Описание
 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  Количество открытых и отложенных ордеров достигло предела, установленного брокером

Обратите внимание!
Все ошибки торгового терминала отображаются во вкладке Эксперт или Журнал окна «Терминал».

Коды ошибок выполнения торгового терминала

По этой таблице вы сможете сами расшифровать коды ошибок, которые возникают на вашей стороне, то есть, непосредственно в вашем торговом терминале.

Константа Значение Описание
 ERR_NO_MQLERROR 4000  Нет ошибки
 ERR_WRONG_FUNCTION_POINTER 4001  Неправильный указатель функции
 ERR_ARRAY_INDEX_OUT_OF_RANGE 4002  Индекс массива — вне диапазона
 ERR_NO_MEMORY_FOR_FUNCTION_CALL_STACK 4003  Нет памяти для стека функций
 ERR_RECURSIVE_STACK_OVERFLOW 4004  Переполнение стека после рекурсивного вызова
 ERR_NOT_ENOUGH_STACK_FOR_PARAMETER 4005  На стеке нет памяти для передачи параметров
 ERR_NO_MEMORY_FOR_PARAMETER_STRING 4006  Нет памяти для строкового параметра
 ERR_NO_MEMORY_FOR_TEMP_STRING 4007  Нет памяти для временной строки
 ERR_NOT_INITIALIZED_STRING 4008  Неинициализированная строка
 ERR_NOT_INITIALIZED_ARRAYSTRING 4009  Неинициализированная строка в массиве
 ERR_NO_MEMORY_FOR_ARRAYSTRING 4010  Нет памяти для строкового массива
 ERR_TOO_LONG_STRING 4011  Слишком длинная строка
 ERR_REMAINDER_FROM_ZERO_DIVIDE 4012  Остаток от деления на ноль
 ERR_ZERO_DIVIDE 4013  Деление на ноль
 ERR_UNKNOWN_COMMAND 4014  Неизвестная команда
 ERR_WRONG_JUMP 4015  Неправильный переход
 ERR_NOT_INITIALIZED_ARRAY 4016  Неинициализированный массив
 ERR_DLL_CALLS_NOT_ALLOWED 4017  Вызовы DLL не разрешены
 ERR_CANNOT_LOAD_LIBRARY 4018  Невозможно загрузить библиотеку
 ERR_CANNOT_CALL_FUNCTION 4019  Невозможно вызвать функцию
 ERR_EXTERNAL_EXPERT_CALLS_NOT_ALLOWED 4020  Вызовы внешних библиотечных функций не разрешены
 ERR_NOT_ENOUGH_MEMORY_FOR_RETURNED_STRING 4021  Недостаточно памяти для строки, возвращаемой из функции
 ERR_SYSTEM_BUSY 4022  Система занята
 ERR_INVALID_FUNCTION_PARAMETERS_COUNT 4050  Неправильное количество параметров функции
 ERR_INVALID_FUNCTION_PARAMETER_VALUE 4051  Недопустимое значение параметра функции
 ERR_STRING_FUNCTION_INTERNAL_ERROR 4052  Внутренняя ошибка строковой функции
 ERR_SOME_ARRAY_ERROR 4053  Ошибка массива
 ERR_INCORRECT_SERIES_ARRAY_USING 4054  Неправильное использование массива-таймсерии
 ERR_CUSTOM_INDICATOR_ERROR 4055  Ошибка пользовательского индикатора
 ERR_INCOMPATIBLE_ARRAYS 4056  Массивы несовместимы
 ERR_GLOBAL_VARIABLES_PROCESSING_ERROR 4057  Ошибка обработки глобальныех переменных
 ERR_GLOBAL_VARIABLE_NOT_FOUND 4058  Глобальная переменная не обнаружена
 ERR_FUNCTION_NOT_ALLOWED_IN_TESTING_MODE 4059  Функция не разрешена в тестовом режиме
 ERR_FUNCTION_NOT_CONFIRMED 4060  Функция не подтверждена
 ERR_SEND_MAIL_ERROR 4061  Ошибка отправки почты
 ERR_STRING_PARAMETER_EXPECTED 4062  Ожидается параметр типа string
 ERR_INTEGER_PARAMETER_EXPECTED 4063  Ожидается параметр типа integer
 ERR_DOUBLE_PARAMETER_EXPECTED 4064  Ожидается параметр типа double
 ERR_ARRAY_AS_PARAMETER_EXPECTED 4065  В качестве параметра ожидается массив
 ERR_HISTORY_WILL_UPDATED 4066  Запрошенные исторические данные в состоянии обновления
 ERR_TRADE_ERROR 4067  Ошибка при выполнении торговой операции
 ERR_END_OF_FILE 4099  Конец файла
 ERR_SOME_FILE_ERROR 4100  Ошибка при работе с файлом
 ERR_WRONG_FILE_NAME 4101  Неправильное имя файла
 ERR_TOO_MANY_OPENED_FILES 4102  Слишком много открытых файлов
 ERR_CANNOT_OPEN_FILE 4103  Невозможно открыть файл
 ERR_INCOMPATIBLE_ACCESS_TO_FILE 4104  Несовместимый режим доступа к файлу
 ERR_NO_ORDER_SELECTED 4105  Ни один ордер не выбран
 ERR_UNKNOWN_SYMBOL 4106  Неизвестный символ
 ERR_INVALID_PRICE_PARAM 4107  Неправильный параметр цены для торговой функции
 ERR_INVALID_TICKET 4108  Неверный номер тикета
 ERR_TRADE_NOT_ALLOWED 4109  Торговля не разрешена
 ERR_LONGS_NOT_ALLOWED 4110  Длинные позиции не разрешены
 ERR_SHORTS_NOT_ALLOWED 4111  Короткие позиции не разрешены
 ERR_OBJECT_ALREADY_EXISTS 4200  Объект уже существует
 ERR_UNKNOWN_OBJECT_PROPERTY 4201  Запрошено неизвестное свойство объекта
 ERR_OBJECT_DOES_NOT_EXIST 4202  Объект не существует
 ERR_UNKNOWN_OBJECT_TYPE 4203  Неизвестный тип объекта
 ERR_NO_OBJECT_NAME 4204  Нет имени объекта
 ERR_OBJECT_COORDINATES_ERROR 4205  Ошибка координат объекта
 ERR_NO_SPECIFIED_SUBWINDOW 4206  Не найдено указанное подокно
 ERR_SOME_OBJECT_ERROR 4207  Ошибка при работе с объектом

Подробная расшифровка кодов

Кому интересно, как определить ошибку терминала, ниже я приведу подробное описание понятным языком, наиболее часто встречающихся ошибок и их кодов.

Константа    |     Код                  |                      Описание

  • ERR_NO_ERROR 0 Торговая операция прошла успешно;
  • ERR_NO_RESULT 1 OrderModify пытается изменить уже установленные значения такими же значениями. Необходимо изменить одно или несколько значений и повторить попытку;
  • ERR_COMMON_ERROR 2 Общая ошибка. Прекратить все попытки торговых операций до выяснения обстоятельств. Возможно перезагрузить операционную систему и клиентский терминал;
  •  ERR_INVALID_TRADE_PARAMETERS 3 В торговую функцию переданы неправильные параметры, например, неправильный символ, неопознанная торговая операция, отрицательное допустимое отклонение цены, несуществующий номер тикета и т.п. Необходимо изменить логику программы;
  • ERR_SERVER_BUSY 4 Торговый сервер занят. Можно повторить попытку через достаточно большой промежуток времени (от нескольких минут);
  • ERR_OLD_VERSION 5 Старая версия клиентского терминала. Необходимо установить последнюю версию клиентского терминала;
  • ERR_NO_CONNECTION 6 Нет связи с торговым сервером. Необходимо убедиться, что связь не нарушена (например, при помощи функции IsConnected) и через небольшой промежуток времени (от 5 секунд) повторить попытку;
  • ERR_TOO_FREQUENT_REQUESTS 8 Слишком частые запросы. Необходимо уменьшить частоту запросов, изменить логику программы;
  • ERR_ACCOUNT_DISABLED 64 Счет заблокирован. Необходимо прекратить все попытки торговых операций;
  • ERR_INVALID_ACCOUNT 65 Неправильный номер счета. Необходимо прекратить все попытки торговых операций;
  • ERR_TRADE_TIMEOUT 128 Истек срок ожидания совершения сделки. Прежде, чем производить повторную попытку (не менее, чем через 1 минуту), необходимо убедиться, что торговая операция действительно не прошла (новая позиция не была открыта, либо существующий ордер не был изменён или удалён, либо существующая позиция не была закрыта);
  • ***ERR_INVALID_PRICE 129 Неправильная цена bid или ask, возможно, ненормализованная цена. Необходимо после задержки от 5 секунд обновить данные при помощи функции RefreshRates и повторить попытку. Если ошибка не исчезает, необходимо прекратить все попытки торговых операций и изменить логику программы;
  • ***ERR_INVALID_STOPS 130 Слишком близкие стопы или неправильно рассчитанные или ненормализованные цены в стопах (или в цене открытия отложенного ордера). Попытку можно повторять только в том случае, если ошибка произошла из-за устаревания цены. Необходимо после задержки от 5 секунд обновить данные при помощи функции RefreshRates и повторить попытку. Если ошибка не исчезает, необходимо прекратить все попытки торговых операций и изменить логику программы;
  • ERR_INVALID_TRADE_VOLUME 131 Неправильный объем, ошибка в грануляции объема. Необходимо прекратить все попытки торговых операций и изменить логику программы;
  • ERR_MARKET_CLOSED 132 Рынок закрыт. Можно повторить попытку через достаточно большой промежуток времени (от нескольких минут);
  • ERR_TRADE_DISABLED 133 Торговля запрещена. Необходимо прекратить все попытки торговых операций;
  • ERR_NOT_ENOUGH_MONEY 134 Недостаточно денег для совершения операции. Повторять сделку с теми же параметрами нельзя. Попытку можно повторить после задержки от 5 секунд, уменьшив объем, но надо быть уверенным в достаточности средств для совершения операции;
  • ERR_PRICE_CHANGED 135 Цена изменилась. Можно без задержки обновить данные при помощи функции RefreshRates и повторить попытку;
  • ERR_OFF_QUOTES 136 Нет цен. Брокер по какой-то причине (например, в начале сессии цен нет, неподтвержденные цены, быстрый рынок) не дал цен или отказал. Необходимо после задержки от 5 секунд обновить данные при помощи функции RefreshRates и повторить попытку;
  • ***ERR_REQUOTE 138 Запрошенная цена устарела, либо перепутаны bid и ask. Можно без задержки обновить данные при помощи функции RefreshRates и повторить попытку. Если ошибка не исчезает, необходимо прекратить все попытки торговых операций и изменить логику программы;
  • ***ERR_ORDER_LOCKED 139 Ордер заблокирован и уже обрабатывается. Необходимо прекратить все попытки торговых операций и изменить логику программы;
  • ERR_LONG_POSITIONS_ONLY_ALLOWED 140 Разрешена только покупка. Повторять операцию SELL нельзя;
  • ERR_TOO_MANY_REQUESTS 141 Слишком много запросов. Необходимо уменьшить частоту запросов, изменить логику программы;
  • 142 Ордер поставлен в очередь. Это не ошибка, а один из кодов взаимодействия между клиентским терминалом и торговым сервером. Этот код может быть получен в редком случае, когда во время выполнения торговой операции произошёл обрыв и последующее восстановление связи. Необходимо обрабатывать так же как и ошибку 128;
  • 143 Ордер принят дилером к исполнению. Один из кодов взаимодействия между клиентским терминалом и торговым сервером. Может возникнуть по той же причине, что и код 142. Необходимо обрабатывать так же как и ошибку 128;
  • 144 Ордер аннулирован самим клиентом при ручном подтверждении сделки. Один из кодов взаимодействия между клиентским терминалом и торговым сервером;
  • ERR_TRADE_MODIFY_DENIED 145 Модификация запрещена, так как ордер слишком близок к рынку и заблокирован из-за возможного скорого исполнения. Можно не ранее, чем через 15 секунд, обновить данные при помощи функции RefreshRates и повторить попытку;
  • ERR_TRADE_CONTEXT_BUSY 146 Подсистема торговли занята. Повторить попытку только после того, как функция IsTradeContextBusy вернет FALSE;
  • ERR_TRADE_EXPIRATION_DENIED 147 Использование даты истечения ордера запрещено брокером. Операцию можно повторить только в том случае, если обнулить параметр expiration;
  • ERR_TRADE_TOO_MANY_ORDERS 148 Количество открытых и отложенных ордеров достигло предела, установленного брокером. Новые открытые позиции и отложенные ордера возможны только после закрытия или удаления существующих позиций или ордеров;
  • ERR_TRADE_HEDGE_PROHIBITED 149 Попытка открыть противоположную позицию к уже существующей в случае, если хеджирование запрещено. Сначала необходимо закрыть существующую противоположную позицию, либо отказаться от всех попыток таких торговых операций, либо изменить логику программы.

Заключение

Теперь вы сами без проблем сможете выяснить и точно определить, почему советник не открывает сделки или почему не работает торговый терминал. Если что- то не понятно, советую посмотреть видео в этой статье, а если останутся вопросы, напишите их в комментариях.

Добавить комментарий