Коды ошибок (Error) в МетаТрейдере (MT4)

Иногда в торговом терминале вы выдите ошибки. Например при торговле советниками . Здесь представлена информация как их расшифровывать. (Внизу страницы более подробное описание некотрых error сообшении)

Коды ошибок, возвращаемые сервером:

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

Коды ошибок выполнения (генерируемые клиентским терминалом MT4) при выполнении советника:

Константа Значение Описание
 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 Попытка открыть противоположную позицию к уже существующей в случае, если хеджирование запрещено. Сначала необходимо закрыть существующую противоположную позицию, либо отказаться от всех попыток таких торговых операций, либо изменить логику программы.