GetLastError() — функция, возвращающая коды ошибок. Кодовые константы ошибок определены
в файле stderror.mqh. Для вывода текстовых сообщений следует использовать функцию
ErrorDescription(), определенную в файле stdlib.mqh.
| Константа | Значение | Описание |
|---|---|---|
| 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 | Ошибка при работе с объектом |
Error 4107 is a so-called MQL4 runtime error that is similar to OrderSend Error 129 but, unlike the latter, appears usually during backtesting of MT4 expert advisors, not during their live or demo run.
Sometimes, it can also appear in non-backtesting situations, both in OrderSend() and OrderModify() functions. The error is called ERR_INVALID_PRICE_PARAM (Invalid price) in the MT4 documentation; it has no counterpart in MT5.
There are two main reasons for this 4107 error to appear:
- Negative values in price, stoploss or takeprofit parameters of the
OrderSend()orOrderModify()function. - Unnormalized doubles in price, stoploss or takeprofit parameters of the
OrderSend()orOrderModify()function.
To solve the issue in any of the two cases, you will need an .mq4 file with the source code of the expert advisor. Unfortunately, you won’t be able to fix MT4 Error 4107 if you only have an .ex4 file.
If it is the first case — negative values — just make sure you pass the valid price parameters to your order opening or modification functions. These parameters surely shouldn’t be negative.
In case of unnormalized doubles, if your Forex broker uses 4 decimal places in its quotes and you are trying to use 5 decimal places in your orders, then you will be getting error 4107 during backtesting. The best solution here is to always normalize all the price doubles using the standard MetaTrader function before passing them to OrderSend() or OrderModify():
If you have your own ideas for dealing with MT4 Error 4107 or have some questions about it, feel free to join our Forex forum to discuss them.
If you want to get news of the most recent updates to our guides or anything else related to Forex trading, you can subscribe to our monthly newsletter.
Forex trading bears intrinsic risks of loss. You must understand that Forex trading, while potentially profitable, can make you lose your money. Never trade with the money that you cannot afford to lose! Trading with leverage can wipe your account even faster.
CFDs are leveraged products and as such loses may be more than the initial invested capital. Trading in CFDs carry a high level of risk thus may not be appropriate for all investors.
The MQL4 OrderSend Error 4107 mainly occurs during an Expert Advisor (EA) backtesting in the MT4 platform. It refers to an invalid price issue in the OrderSend function that prevents your EA from reading the price data correctly.

An automated trading system may fail to recognize the MT4 price quote for multiple reasons. However, fixing such issues is not as complex as we might think. This guide will explain what is MQL4 OrderSend Error 4107 and how to fix it within a few simple steps.
What is MT4 (MQL4) Error 4107?
MT4 error 4107 is an MQL4 runtime error that refers to an invalid price parameter of the expert advisor.
It means your EA is not reading the ask/bid rate provided by the MT4 system as a valid price. Whenever the system encounters an invalid price for the OrderSend function, it stops working and sends the error code.
Generally, we experience the MT4 OrderSend error 4107 while performing the backtest of EAs. However, your system may send the same error code due to OrderSend and OrderModify function failures. In such a case, the platform displays ERR_INVALID_PRICE_PARAM to address the invalid price issue.
Why does MT4 (MQL4) error 4107 happen?
MQL4 error 4107 happens due to the following reasons:
- Negative value issue: When your EA uses an invalid price parameter, it may read the MetaTrader 4 quotes as invalid prices and display “error 4107 – invalid price for OrderSend function.” An invalid price parameter means the order execution price requested by the EA is not matching the current ask/bid rate. A negative value issue may also affect buy-stop, sell-stop, stop-loss, and take-profit parameters of the OrderSend or OrderModify functions.
- Unnormalized doubles: If your expert advisor tries to place a five decimal price order in a 4-digit MT4 terminal, you will still encounter MQL4 OrderSend error 4107. In this case, the EA finds the 5th decimal missing in the MetaTrader price quote and eventually considers it an invalid price for order executions. Like negative values, unnormalized doubles also affect your automated trading program’s OrderSend and OrderModify functions.
How to fix MT4’s OrderSend error 4107 in MQL4?
Time needed: 5 minutes.
- Check the price parameters of the EA:
Make sure your expert advisor is not applying negative parameters in the order opening and modification functions. You may consider checking the RefreshRates, OrderSend, OrderModification, ask/bid point limits, and stop-loss functions to ensure a valid price parameter.
Moreover, some brokers allow the take profit target and stop-loss settings or modification only after activating an order. In that regard, an EA should request an order activation and TP/SL parameters only after executing an entry successfully.
If you want your EA to open orders without a TP or SL, try the following settings in the OrderSend function:
- Normalize price doubles:
Both the EA and MetaTrader4 terminal should be using the same digit price to avoid unnormalized doubles. Therefore, consider normalizing all the price doubles by using the standard MT4 functions:
- Consider changing the broker:
If you want to fix the MQL4 OrderSend Error 4107 without modifying your EA, then consider switching to a 5-digit broker.
Коды ошибок в 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 Количество открытых и отложенных ордеров достигло предела, установленного брокером
Коды ошибок выполнения (генерируемые клиентским терминалом 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 Попытка открыть противоположную позицию к уже существующей в случае, если хеджирование запрещено. Сначала необходимо закрыть существующую противоположную позицию, либо отказаться от всех попыток таких торговых операций, либо изменить логику программы.
ERR_TRADE_PROHIBITED_BY_FIFO 150 Попытка закрыть позицию по инструменту в противоречии с правилом FIFO
Изменено 31 мая, 2017 пользователем Pavel888
![]()
MT4: OrderSend error 4107 during back-test
Viewing 1 post (of 1 total)
-
admin
January 29, 2013 at 4:42 amWhen back-testing on a 4-digit Metatrader 4 terminal, users could encounter the following error:
OrderSend error 4107
Error opening BUYSTOP order []: (4107) invalid price parameter for trade function
invalid price 1.28236000 for OrderSend functionYou can resolve the issue by either:
– Modifying your MQ4 mode (if you have access to it). You will need to amend all the “OrderSend” and “OrderModify” commands so they adjust your prices to 4-digits. You can do this by wrapping all prices in the function “NormalizeDouble(price, Digits)”. For example, if the code reads like the following:
ticket=OrderSend(Symbol(),OP_BUY, lots, Ask, slip, stoploss, takeprofit, EA, MagicNo, 0, Blue);you will need to change it to:
ticket=OrderSend(Symbol(),OP_BUY, lots, NormalizeDouble(Ask, Digits), slip, stoploss, takeprofit, EA, MagicNo, 0, Blue);– If you do not have the code, you can instead utilise a 5-Digit MT4 terminal to back-test your strategy.
If either option is not viable, an enhancement is planned for the next version of Tickstory to ensure prices are rounded for 4-digit brokers.
Regards.
Viewing 1 post (of 1 total)
You must be logged in to reply to this topic.
При работе торгового терминала MetaTrader 4 возникают различные ошибки при обмене информацией с торговым сервером, который в ответ на ошибочные запросы отсылает программе MetaTrader 4 не описание ошибки, а цифровой код ошибки — специальную комбинацию цифр, которая отображается во вкладках Эксперты
и Журнал
(примеры этих вкладок и описание типичной ситуации при возникновении ошибок можно найти в статье «Обзор торгового терминала MetaTrader 4»). Не все торговые терминалы MetaTrader 4 различных дилинговых центров дают расшифровку цифрового кода, а если она и есть, то — на английском языке. Чтобы понять, почему программа МетаТрейдер 4 работает неправильно, полезно знать расшифровку цифрового кода — какой комбинации цифр соответствует определенное описание ошибки. В некоторых случаях эта информация может сильно облегчить «жизнь» трейдеру и помочь быстрее справиться с возникшей проблемой.
Итак, предлагаем Вашему вниманию расшифровку кодов ошибок, которые можно встретить при работе с торговым терминалом MetaTrader 4:
Коды ошибок, возвращаемые торговым сервером терминалу MetaTrader 4.
- Error: 0 — Нет ошибки.
- Error: 1 — Нет ошибки, но результат неизвестен.
- Error: 2 — Общая ошибка.
- Error: 3 — Неправильные параметры.
- Error: 4 — Торговый сервер занят.
- Error: 5 — Старая версия клиентского терминала.
- Error: 6 — Нет связи с торговым сервером.
- Error: 7 — Недостаточно прав.
- Error: 8 — Слишком частые запросы.
- Error: 9 — Недопустимая операция, нарушающая функционирование сервера.
- Error: 64 — Счёт заблокирован.
- Error: 65 — Неправильный номер счета.
- Error: 128 — Истек срок ожидания совершения сделки.
- Error: 129 — Неправильная цена.
- Error: 130 — Неправильные стопы.
- Error: 131 — Неправильный объём.
- Error: 132 — Рынок закрыт.
- Error: 133 — Торговля запрещена.
- Error: 134 — Недостаточно денег для совершения операции.
- Error: 135 — Цена изменилась.
- Error: 136 — Нет цен.
- Error: 137 — Брокер занят.
- Error: 138 — Новые цены.
- Error: 139 — Ордер заблокирован и уже обрабатывается.
- Error: 140 — Разрешена только покупка.
- Error: 145 — Модификация запрещена, так как ордер слишком близок к рынку.
- Error: 146 — Подсистема торговли занята.
- Error: 147 — Использование даты истечения ордера запрещено брокером.
- Error: 148 — Количество открытых и отложенных ордеров достигло предела, установленного брокером.
- Error: 149 — Попытка открыть противоположную позицию к уже существующей в случае, если хеджирование запрещено.
- Error: 150 — Попытка закрыть позицию по инструменту в противоречии с правилом FIFO.
Коды ошибок выполнения MQL4-программы (советника):
- Error: 4000 — Нет ошибки.
- Error: 4001 — Неправильный указатель функции.
- Error: 4002 — Индекс массива — вне диапазона.
- Error: 4003 — Нет памяти для стека функций.
- Error: 4004 — Переполнение стека после рекурсивного вызова.
- Error: 4005 — На стеке нет памяти для передачи параметров.
- Error: 4006 — Нет памяти для строкового параметра.
- Error: 4007 — Нет памяти для временной строки.
- Error: 4008 — Неинициализированная строка.
- Error: 4009 — Неинициализированная строка в массиве.
- Error: 4010 — Нет памяти для строкового массива.
- Error: 4011 — Слишком длинная строка.
- Error: 4012 — Остаток от деления на ноль.
- Error: 4013 — Деление на ноль.
- Error: 4014 — Неизвестная команда.
- Error: 4015 — Неправильный переход.
- Error: 4016 — Неинициализированный массив.
- Error: 4017 — Вызовы DLL не разрешены.
- Error: 4018 — Невозможно загрузить библиотеку.
- Error: 4019 — Невозможно вызвать функцию.
- Error: 4020 — Вызовы внешних библиотечных функций не разрешены.
- Error: 4021 — Недостаточно памяти для строки, возвращаемой из функции.
- Error: 4022 — Система занята.
- Error: 4050 — Неправильное количество параметров функции.
- Error: 4051 — Недопустимое значение параметра функции.
- Error: 4052 — Внутренняя ошибка строковой функции.
- Error: 4053 — Ошибка массива.
- Error: 4054 — Неправильное использование массива-таймсерии.
- Error: 4055 — Ошибка пользовательского индикатора.
- Error: 4056 — Массивы несовместимы.
- Error: 4057 — Ошибка обработки глобальныех переменных.
- Error: 4058 — Глобальная переменная не обнаружена.
- Error: 4059 — Функция не разрешена в тестовом режиме.
- Error: 4060 — Функция не разрешена.
- Error: 4061 — Ошибка отправки почты.
- Error: 4062 — Ожидается параметр типа string.
- Error: 4063 — Ожидается параметр типа integer.
- Error: 4064 — Ожидается параметр типа double.
- Error: 4065 — В качестве параметра ожидается массив.
- Error: 4066 — Запрошенные исторические данные в состоянии обновления.
- Error: 4067 — Ошибка при выполнении торговой операции.
- Error: 4099 — Конец файла.
- Error: 4100 — Ошибка при работе с файлом.
- Error: 4101 — Неправильное имя файла.
- Error: 4102 — Слишком много открытых файлов.
- Error: 4103 — Невозможно открыть файл.
- Error: 4104 — Несовместимый режим доступа к файлу.
- Error: 4105 — Ни один ордер не выбран.
- Error: 4106 — Неизвестный символ.
- Error: 4107 — Неправильный параметр цены для торговой функции.
- Error: 4108 — Неверный номер тикета.
- Error: 4109 — Торговля не разрешена. Необходимо включить опцию
Разрешить советнику торговать
в свойствах эксперта. - Error: 4110 — Длинные позиции не разрешены — необходимо проверить свойства эксперта.
- Error: 4111 — Короткие позиции не разрешены — необходимо проверить свойства эксперта.
- Error: 4200 — Объект уже существует.
- Error: 4201 — Запрошено неизвестное свойство объекта.
- Error: 4202 — Объект не существует.
- Error: 4203 — Неизвестный тип объекта.
- Error: 4204 — Нет имени объекта.
- Error: 4205 — Ошибка координат объекта.
- Error: 4206 — Не найдено указанное подокно.
- Error: 4207 — Ошибка при работе с объектом.
Содержание
- 1 Коды ошибок:
- 1.1 Коды ошибок выполнения MQL4 программы:
- 1.2 Похожие статьи:
Очень часто в торговом терминале возникают ошибки при тестировании или оптимизации советников форекс, все ошибки можно увидеть в лог-файлах МТ4, а вот что означают коды ошибок, мы рассмотрим в этой статье:

Ниже представлена таблица кодов ошибок и их описание, поэтому просмотрев таблицу вы сразу поймете что не так с советником или его параметрами и на какой параметр нужно обратить внимание при тестировании, чтоб исправить ошибку.
Так, например, если при тесте возникает ошибка error 130, то становится понятно, что функция советника пытается изменить или установить стоп-лосс или тейк-профит слишком близко к текущей цене на рынке, ближе чем разрешает ваш БРОКЕР ФОРЕКС.
Коды ошибок:
GetLastError() — функция, возвращающая коды ошибок при тесте. Кодовые константы ошибок определены в файле stderror.mqh. Для вывода текстовых сообщений следует использовать функцию ErrorDescription(), определенную в файле stdlib.mqh.
Коды ошибок, возвращаемые торговым сервером или клиентским терминалом MetaTrader 4:
| Значение | Описание |
|---|---|
| 0 | Нет ошибки |
| 1 | Нет ошибки, но результат неизвестен |
| 2 | Общая ошибка |
| 3 | Неправильные параметры |
| 4 | Торговый сервер занят |
| 5 | Старая версия клиентского терминала |
| 6 | Нет связи с торговым сервером |
| 7 | Недостаточно прав |
| 8 | Слишком частые запросы |
| 9 | Недопустимая операция нарушающая функционирование сервера |
| 64 | Счет заблокирован |
| 65 | Неправильный номер счета |
| 128 | Истек срок ожидания совершения сделки |
| 129 | Неправильная цена |
| 130 | Неправильные стопы |
| 131 | Неправильный объем |
| 132 | Рынок закрыт |
| 133 | Торговля запрещена |
| 134 | Недостаточно денег для совершения операции |
| 135 | Цена изменилась |
| 136 | Нет цен |
| 137 | Брокер занят |
| 138 | Новые цены |
| 139 | Ордер заблокирован и уже обрабатывается |
| 140 | Разрешена только покупка |
| 141 | Слишком много запросов |
| 145 | Модификация запрещена, так как ордер слишком близок к рынку |
| 146 | Подсистема торговли занята |
| 147 | Использование даты истечения ордера запрещено брокером |
| 148 | Количество открытых и отложенных ордеров достигло предела, установленного брокером. |
Коды ошибок выполнения MQL4 программы:
| Значение | Описание |
|---|---|
| 4000 | Нет ошибки |
| 4001 | Неправильный указатель функции |
| 4002 | Индекс массива — вне диапазона |
| 4003 | Нет памяти для стека функций |
| 4004 | Переполнение стека после рекурсивного вызова |
| 4005 | На стеке нет памяти для передачи параметров |
| 4006 | Нет памяти для строкового параметра |
| 4007 | Нет памяти для временной строки |
| 4008 | Неинициализированная строка |
| 4009 | Неинициализированная строка в массиве |
| 4010 | Нет памяти для строкового массива |
| 4011 | Слишком длинная строка |
| 4012 | Остаток от деления на ноль |
| 4013 | Деление на ноль |
| 4014 | Неизвестная команда |
| 4015 | Неправильный переход |
| 4016 | Неинициализированный массив |
| 4017 | Вызовы DLL не разрешены |
| 4018 | Невозможно загрузить библиотеку |
| 4019 | Невозможно вызвать функцию |
| 4020 | Вызовы внешних библиотечных функций не разрешены |
| 4021 | Недостаточно памяти для строки, возвращаемой из функции |
| 4022 | Система занята |
| 4050 | Неправильное количество параметров функции |
| 4051 | Недопустимое значение параметра функции |
| 4052 | Внутренняя ошибка строковой функции |
| 4053 | Ошибка массива |
| 4054 | Неправильное использование массива-таймсерии |
| 4055 | Ошибка пользовательского индикатора |
| 4056 | Массивы несовместимы |
| 4057 | Ошибка обработки глобальныех переменных |
| 4058 | Глобальная переменная не обнаружена |
| 4059 | Функция не разрешена в тестовом режиме |
| 4060 | Функция не подтверждена |
| 4061 | Ошибка отправки почты |
| 4062 | Ожидается параметр типа string |
| 4063 | Ожидается параметр типа integer |
| 4064 | Ожидается параметр типа double |
| 4065 | В качестве параметра ожидается массив |
| 4066 | Запрошенные исторические данные в состоянии обновления |
| 4067 | Ошибка при выполнении торговой операции |
| 4099 | Конец файла |
| 4100 | Ошибка при работе с файлом |
| 4101 | Неправильное имя файла |
| 4102 | Слишком много открытых файлов |
| 4103 | Невозможно открыть файл |
| 4104 | Несовместимый режим доступа к файлу |
| 4105 | Ни один ордер не выбран |
| 4106 | Неизвестный символ |
| 4107 | Неправильный параметр цены для торговой функции |
| 4108 | Неверный номер тикета |
| 4109 | Торговля не разрешена |
| 4110 | Длинные позиции не разрешены |
| 4111 | Короткие позиции не разрешены |
| 4200 | Объект уже существует |
| 4201 | Запрошено неизвестное свойство объекта |
| 4202 | Объект не существует |
| 4203 | Неизвестный тип объекта |
| 4204 | Нет имени объекта |
| 4205 | Ошибка координат объекта |
| 4206 | Не найдено указанное подокно |
| 4207 | Ошибка при работе с объектом |
Надеюсь данная таблица поможет вам побыстрее решить вопросы с ошибками в тестировании ПЛАТНЫХ и БЕСПЛАТНЫХ советников форекс!
Спасибо А. Парнюку за предоставление списка ошибок.
Похожие статьи:
- Печать
Страницы: [1] Вниз
Тема: Знающие MQL4, помогите пожалуйста. (Прочитано 2542 раз)
0 Пользователей и 1 Гость просматривают эту тему.
Проблема в открытии ордера скриптом — Пишет ошибка 4107 -Неправильный параметр цены для торговой функции
Уже всяко перепробовал — не получается эту ошибку устранить. Отложенные ордера встают нормально.

Записан

Записан
Ты скрипт то дай.
да вот пока что такое простое выражение и не работает
tick = OrderSend(Symbol(),OP_BUY, 0.1, NormalizeDouble(Ask,4), 5,Bid-20 , 0);
вот в чем может быть дело ?

Записан
OrderSend(Symbol() , OP_BUY , 0.1 , NormalizeDouble(Ask,4) , 5 , Bid-20 , 0);
OrderSend(Symbol() , OP_BUY , Lots , Ask , 10 , 0 , 0 , «Order» , 06111970 , 0 , Green);
Ты потерял 4 параметра. Внимательнее читай справочник по торговым функциям.

Записан
OrderSend(Symbol() , OP_BUY , 0.1 , NormalizeDouble(Ask,4) , 5 , Bid-20 , 0);
OrderSend(Symbol() , OP_BUY , Lots , Ask , 10 , 0 , 0 , «Order» , 06111970 , 0 , Green);Ты потерял 4 параметра. Внимательнее читай справочник по торговым функциям.
Спасибо, от души!
Волшебник)
Сам ставил отложенные, а там без этих параметров все прекрасно ставилось, вот и думал, что открытие позиции будет также

Записан
А еще, как мне кажется, выражение Bid-20 будет вводить тебя в заблуждение постоянно.
Если ты хотел вычесть 20 пипсов — то нужно писать Bid-20*Points.
Иначе твоя формула будет работать только на йеновых парах и ты будешь очень долго ждать достижения этой цены.

Записан
- Печать
Страницы: [1] Вверх
Все приказы на совершение торговых операций отправляются в виде структуры торгового запроса MqlTradeRequest с помощью функции OrderSend(). Результат выполнения этой функции помещается в структуру MqlTradeResult, поле retcode которой содержит код возврата торгового сервера.
|
10004 |
TRADE_RETCODE_REQUOTE |
Реквота |
|
10006 |
TRADE_RETCODE_REJECT |
Запрос отклонен |
|
10007 |
TRADE_RETCODE_CANCEL |
Запрос отменен трейдером |
|
10008 |
TRADE_RETCODE_PLACED |
Ордер размещен |
|
10009 |
TRADE_RETCODE_DONE |
Заявка выполнена |
|
10010 |
TRADE_RETCODE_DONE_PARTIAL |
Заявка выполнена частично |
|
10011 |
TRADE_RETCODE_ERROR |
Ошибка обработки запроса |
|
10012 |
TRADE_RETCODE_TIMEOUT |
Запрос отменен по истечению времени |
|
10013 |
TRADE_RETCODE_INVALID |
Неправильный запрос |
|
10014 |
TRADE_RETCODE_INVALID_VOLUME |
Неправильный объем в запросе |
|
10015 |
TRADE_RETCODE_INVALID_PRICE |
Неправильная цена в запросе |
|
10016 |
TRADE_RETCODE_INVALID_STOPS |
Неправильные стопы в запросе |
|
10017 |
TRADE_RETCODE_TRADE_DISABLED |
Торговля запрещена |
|
10018 |
TRADE_RETCODE_MARKET_CLOSED |
Рынок закрыт |
|
10019 |
TRADE_RETCODE_NO_MONEY |
Нет достаточных денежных средств для выполнения запроса |
|
10020 |
TRADE_RETCODE_PRICE_CHANGED |
Цены изменились |
|
10021 |
TRADE_RETCODE_PRICE_OFF |
Отсутствуют котировки для обработки запроса |
|
10022 |
TRADE_RETCODE_INVALID_EXPIRATION |
Неверная дата истечения ордера в запросе |
|
10023 |
TRADE_RETCODE_ORDER_CHANGED |
Состояние ордера изменилось |
|
10024 |
TRADE_RETCODE_TOO_MANY_REQUESTS |
Слишком частые запросы |
|
10025 |
TRADE_RETCODE_NO_CHANGES |
В запросе нет изменений |
|
10026 |
TRADE_RETCODE_SERVER_DISABLES_AT |
Автотрейдинг запрещен сервером |
|
10027 |
TRADE_RETCODE_CLIENT_DISABLES_AT |
Автотрейдинг запрещен клиентским терминалом |
|
10028 |
TRADE_RETCODE_LOCKED |
Запрос заблокирован для обработки |
|
10029 |
TRADE_RETCODE_FROZEN |
Ордер или позиция заморожены |
|
10030 |
TRADE_RETCODE_INVALID_FILL |
Указан неподдерживаемый тип исполнения ордера по остатку |
|
10031 |
TRADE_RETCODE_CONNECTION |
Нет соединения с торговым сервером |
|
10032 |
TRADE_RETCODE_ONLY_REAL |
Операция разрешена только для реальных счетов |
|
10033 |
TRADE_RETCODE_LIMIT_ORDERS |
Достигнут лимит на количество отложенных ордеров |
|
10034 |
TRADE_RETCODE_LIMIT_VOLUME |
Достигнут лимит на объем ордеров и позиций для данного символа |
|
10035 |
TRADE_RETCODE_INVALID_ORDER |
Неверный или запрещённый тип ордера |
|
10036 |
TRADE_RETCODE_POSITION_CLOSED |
Позиция с указанным POSITION_IDENTIFIER уже закрыта |
|
10038 |
TRADE_RETCODE_INVALID_CLOSE_VOLUME |
Закрываемый объем превышает текущий объем позиции |
|
10039 |
TRADE_RETCODE_CLOSE_ORDER_EXIST |
Для указанной позиции уже есть ордер на закрытие. Может возникнуть при работе в системе хеджинга:
|
|
10040 |
TRADE_RETCODE_LIMIT_POSITIONS |
Количество открытых позиций, которое можно одновременно иметь на счете, может быть ограничено настройками сервера. При достижении лимита в ответ на выставление ордера сервер вернет ошибку TRADE_RETCODE_LIMIT_POSITIONS. Ограничение работает по-разному в зависимости от типа учета позиций на счете:
|
|
10041 |
TRADE_RETCODE_REJECT_CANCEL |
Запрос на активацию отложенного ордера отклонен, а сам ордер отменен |
|
10042 |
TRADE_RETCODE_LONG_ONLY |
Запрос отклонен, так как на символе установлено правило «Разрешены только длинные позиции» (POSITION_TYPE_BUY) |
|
10043 |
TRADE_RETCODE_SHORT_ONLY |
Запрос отклонен, так как на символе установлено правило «Разрешены только короткие позиции» (POSITION_TYPE_SELL) |
|
10044 |
TRADE_RETCODE_CLOSE_ONLY |
Запрос отклонен, так как на символе установлено правило «Разрешено только закрывать существующие позиции« |
Предупреждения компилятора носят информационный характер и не являются сообщениями об ошибках.
|
21 |
Неполная запись даты в строке datetime |
|
22 |
Ошибочные числа в строке datetime для даты, требования: год 1970<=X<=3000 месяц 0<X<=12 день 0<X<= 31/30/28(29)…. |
|
23 |
Ошибочные числа в строке datetime для времени, требования: час 0<=X<24 минута 0<=X<60 |
|
24 |
Некорректный цвет в формате RGB: одна из компонент RGB меньше 0 или больше 255 |
|
25 |
Неизвестный символ эскейп последовательности. Известные: n r t \ » ’ X x |
|
26 |
Слишком большой объем локальных переменных (>512кб) функции, уменьшите их количество |
|
29 |
Перечисление уже определено (дублирование) – члены будут добавлены к первому определению |
|
30 |
Переопределение макроса |
|
31 |
Переменная объявлена, но нигде не используется |
|
32 |
Конструктор должен иметь тип void |
|
33 |
Деструктор должен иметь тип void |
|
34 |
Константа не вмещается в диапазон целых (X>_UI64_MAX || X<_I64_MIN) и будет преобразована в тип double |
|
35 |
Слишком длинный HEX больше 16 значащих символов (обрезаются старшие полубайты) |
|
36 |
Нет ни одного полубайта в HEX строке «0x» |
|
37 |
Нет ни одной функции — нечего будет выполнять |
|
38 |
Используется неинициализированная переменная |
|
41 |
Функция не имеет тела, но и не вызывается |
|
43 |
Возможны потери данных при преобразовании типа. Пример: int x=(double)z; |
|
44 |
Потеря точности(данных) при преобразовании константы. Пример: int x=M_PI |
|
45 |
Несовпадение знаков операндов в операциях сравнения. Пример: (char)c1>(uchar)c2 |
|
46 |
Проблемы с импортом функций – требуется объявление #import либо импорт функций уже закрыт |
|
47 |
Описание слишком большое – лишние символы не будут включены в исполняемый файл |
|
48 |
Количество индикаторных буферов объявлено меньше, чем требуется |
|
49 |
Не указан цвет для отрисовки графической серии в индикаторе |
|
50 |
Нет ни одной графической серии для отображения индикатора |
|
51 |
Не обнаружена функция-обработчик ‘OnStart» в скрипте |
|
52 |
Функция-обработчик ‘OnStart» определена с неверными параметрами |
|
53 |
Функция ‘OnStart’ может быть определена только в скрипте |
|
54 |
Функция ‘OnInit’ определена с неверными параметрами |
|
55 |
Функция ‘OnInit’ не используется в скриптах |
|
56 |
Функция ‘OnDeinit’ определена с неверными параметрами |
|
57 |
Функция ‘OnDeinit’ не используется в скриптах |
|
58 |
Определены две функции ‘OnCalculate’. Будет использована OnCalculate() на одном ценовом массиве |
|
59 |
Обнаружено переполнение при вычислении сложной целочисленной константы |
|
60 |
Возможно, переменная неинициализирована. |
|
61 |
Данное объявление делает недоступным обращение к локальной переменной, объявленной на указанной строке |
|
62 |
Данное объявление делает недоступным обращение к глобальной переменной, объявленной на указанной строке |
|
63 |
Не может быть использовано для статических массивов |
|
64 |
Данное объявление делает недоступным обращение к предопределенной переменной |
|
65 |
Значение выражения всегда true/false |
|
66 |
Использование переменной или выражения типа bool в математических операциях является небезопасным |
|
67 |
Результат применения оператора унарного минуса к беззнаковому типу ulong неопределен |
|
68 |
Версия, указанная в свойстве #property version, недопустима для размещения в разделе Маркет, правильный формат #property version «XXX.YYY» |
|
69 |
Отсутствует выражение для выполнения по условию |
|
70 |
Неверный возвращаемый тип функции или некорректные параметры при объявлении функции-обработчика события |
|
71 |
Требуется явное приведение структур к одному типу |
|
72 |
Данное объявление делает недоступным прямое обращение к члену класса, объявленному на указанной строке. Доступ будет возможен только с помощью операции разрешения контекста :: |
|
73 |
Константа в двоичной записи слишком велика, старшие разряды будут отброшены |
|
74 |
Параметр в методе наследуемого класса отличается модификатором const, дочерняя функция перегрузила функцию родителя |
|
75 |
Отрицательное или слишком большое значения смещения в битовой операции сдвига, результат выполнения неопределён |
|
76 |
Функция должна вернуть значение |
|
77 |
Функция типа void не должна возвращать значение |
|
78 |
Не все варианты выполнения возвращают значение |
|
79 |
Выражения на глобальном уровне не разрешены |
|
80 |
Возможна ошибка в последовательности выполнения операций, используйте скобки для явного указания порядка |
|
81 |
Найдено два вида вызова OnCalCulate(). Вызываться будет вариант с использованием таймсерий OHLC |
|
82 |
Структура не содержит членов, размер будет приравнен 1 байту |
|
83 |
Нет обработки результата выполнения функции |
|
84 |
Индикатор, включаемый как ресурс, скомпилирован в режиме отладки. Это снижает его производительность. Для повышения скорости работы его нужно перекомпилировать |
|
85 |
Слишком большой код символа в строке, должен быть в диапазоне от 0 до 65535 |
|
86 |
Нераспознанный служебный символ в строке |
|
87 |
Не указано свойство индикатора, задающее вывод в главное окно или в отдельное подокно. Будет применено свойство #property indicator_chart_window |
MetaEdtior 5, редактор mql5-программ, выдает сообщения об ошибках программы, обнаруженных встроенным компилятором на стадии компиляции. Список этих ошибок приведен ниже в таблице. Для компиляции исходного кода в исполняемый нажмите F7. Программы с ошибками не могут быть скомпилированы, пока ошибки, указанные компилятором, не будут устранены.
|
100 |
Ошибка чтения файла |
|
101 |
Ошибка открытия *.EX5 файла для записи |
|
103 |
Недостаточно свободной памяти для завершения компиляции |
|
104 |
Нераспознанная компилятором пустая синтаксическая единица |
|
105 |
Некорректное имя файла в #include |
|
106 |
Ошибка доступа к файлу в #include (возможно файл не существует) |
|
108 |
Неподходящее имя для #define |
|
109 |
Неизвестная команда препроцессора (допустимы #include,#define,#property,#import) |
|
110 |
Неизвестный для компилятора символ |
|
111 |
Функция не реализована (описание есть, тела нет) |
|
112 |
Пропущена двойная кавычка («) |
|
113 |
Пропущена открывающая угловая скобка (<) или двойная кавычка («) |
|
114 |
Пропущена одинарная кавычка (‘) |
|
115 |
Пропущена закрывающая угловая скобка «>» |
|
116 |
Не указан тип в объявлении |
|
117 |
Нет оператора возврата return или имеется не во всех ветках выполнения |
|
118 |
Ожидалась открывающая скобка параметров вызова |
|
119 |
Ошибка записи EX5 |
|
120 |
Некорректный доступ к элементу массива |
|
121 |
Функция не имеет тип void и оператор return должен вернуть значение |
|
122 |
Некорректное объявление деструктора |
|
123 |
Отсутствует двоеточие «:» |
|
124 |
Переменная уже объявлена |
|
125 |
Переменная с таким идентификатором уже объявлена |
|
126 |
Имя переменной слишком длинное (>250 символов) |
|
127 |
Структура с таким идентификатором уже определена |
|
128 |
Структура не определена |
|
129 |
Член структуры с таким именем уже определен |
|
130 |
Нет такого члена структуры |
|
131 |
Нарушена парность квадратных скобок |
|
132 |
Ожидается открывающая круглая скобка «(« |
|
133 |
Несбалансированные фигурные скобки ( отсутствует «}» ) |
|
134 |
Сложно для компиляции (слишком большое ветвление, внутренний стек уровней переполнен) |
|
135 |
Ошибка открытия файла на чтение |
|
136 |
Недостаточно памяти для загрузки исходного файла в память |
|
137 |
Ожидается переменная |
|
138 |
Ссылка не может быть инициализирована |
|
140 |
Ожидалось присваивание (возникает при объявлении) |
|
141 |
Ожидается открывающая фигурная скобка «{« |
|
142 |
Параметр может быть только динамическим массивом |
|
143 |
Использование типа «void» недопустимо |
|
144 |
Нет пары для «)» или «]», т.е. отсутствует «(» или «[« |
|
145 |
Нет пары для «(» или «[«, т.е. отсутствует «)» или «]» |
|
146 |
Некорректная размерность массива |
|
147 |
Слишком много параметров (>64) |
|
149 |
Этот токен тут не ожидается |
|
150 |
Недопустимое использование операции (неправильные операнды) |
|
151 |
Выражение типа void недопустимо |
|
152 |
Ожидается оператор |
|
153 |
Неправильное использование break |
|
154 |
Ожидается точка с запятой «;» |
|
155 |
Ожидается запятая «,» |
|
156 |
Тип должен быть определен как класс, а не как структура |
|
157 |
Ожидалось выражение |
|
158 |
В HEX встречается «не HEX символ» или слишком длинное число (количество цифр > 511) |
|
159 |
Строка-константа имеет более 65534 символов |
|
160 |
Определение функции здесь недопустимо |
|
161 |
Неожиданный конец программы |
|
162 |
Форвардная декларация для структур запрещена |
|
163 |
Функция с таким именем уже определена и имеет иной тип возвращаемого значения |
|
164 |
Функция с таким именем уже определена и имеет иной набор параметров |
|
165 |
Функция с таким именем уже определена и реализована |
|
166 |
Перегрузка функции для данного вызова не найдена |
|
167 |
Функция с возвращаемым значением типа void не может возвращать значение |
|
168 |
Функция не определена |
|
170 |
Ожидается значение |
|
171 |
В выражении case допустимы только целочисленные константы |
|
172 |
Значение для case в этом switch уже использовано |
|
173 |
Ожидается целочисленное значение |
|
174 |
В выражении #import ожидается имя файла |
|
175 |
Выражения на глобальном уровне не допустимы |
|
176 |
Пропущена круглая скобка «)» перед «;» |
|
177 |
Слева от знака равенства предполагается переменная |
|
178 |
Результат выражения не используется |
|
179 |
Объявление переменных в case недопустимо |
|
180 |
Неявное преобразование из строки в число |
|
181 |
Неявное преобразование числа в строку |
|
182 |
Неоднозначный вызов перегруженной функции (подходят несколько перегрузок) |
|
183 |
Недопустимый else без соответствующего if |
|
184 |
Недопустимый case или default без соответствующего switch |
|
185 |
Недопустимое использование эллипсиса |
|
186 |
Инициализирующая последовательность имеет большее количество элементов чем инициализируемая переменная |
|
187 |
Ожидается константа для case |
|
188 |
Требуется константное выражение |
|
189 |
Константная переменная не может быть изменена |
|
190 |
Ожидается закрывающая скобка или запятая (объявление члена массива) |
|
191 |
Идентификатор перечисления уже используется |
|
192 |
Перечисление не может иметь модификаторов доступа (const, extern, static) |
|
193 |
Член перечисления уже объявлен с другим значением |
|
194 |
Существует переменная, определенная с таким же именем |
|
195 |
Существует структура, определенная с таким же именем |
|
196 |
Ожидается имя члена перечисления |
|
197 |
Ожидается целочисленное выражение |
|
198 |
Деление на ноль в константном выражении |
|
199 |
Неверное количество параметров в функции |
|
200 |
Параметром по ссылке должна быть переменная |
|
201 |
Ожидается переменная такого же типа для передачи по ссылке |
|
202 |
Константная переменная не может быть передана по неконстантной ссылке |
|
203 |
Требуется целочисленная положительная константа |
|
204 |
Ошибка доступа к защищенному члену класса |
|
205 |
Импорт уже определен по другому пути |
|
208 |
Исполняемый файл не создан |
|
209 |
Для индикатора не найдена точка входа ‘OnCalculate’ |
|
210 |
Оператор continue может быть использован только внутри цикла |
|
211 |
Ошибка доступа к private(закрытому) члену класса |
|
213 |
Метод структуры или класса не объявлен |
|
214 |
Ошибка доступа к private(закрытому) методу класса |
|
216 |
Копирование структур с объектами недопустимо |
|
218 |
Выход индекса за границы массива |
|
219 |
Недопустима инициализация массивов в объявлении структуры или класса |
|
220 |
Конструктор класса не может иметь параметров |
|
221 |
Деструктор класса не может иметь параметров |
|
222 |
Метод класса или структуры с таким именем и параметрами уже объявлен |
|
223 |
Ожидается операнд |
|
224 |
Метод класса или структуры с таким именем есть, но с другими параметрами (объявление!=реализация) |
|
225 |
Импортируемая функция не описана |
|
226 |
Функция ZeroMemory() не применима для классов с защищенными членами или наследованием |
|
227 |
Неоднозначный вызов перегруженной функции (точное совпадение параметров для нескольких перегрузок) |
|
228 |
Ожидается имя переменной |
|
229 |
Ссылку нельзя объявить в этом месте |
|
230 |
Уже используется в качестве имени перечисления |
|
232 |
Ожидается класс или структура |
|
235 |
Нельзя вызывать delete для удаления массива |
|
236 |
Ожидается оператор ‘ while ‘ |
|
237 |
В delete должен быть указатель |
|
238 |
default для этого switch уже есть |
|
239 |
Синтаксическая ошибка |
|
240 |
Escape-последовательность может встретиться только в строках ( начинается с ‘’ ) |
|
241 |
Требуется массив – квадратная скобка ‘[‘ не относится к массиву либо в качестве параметра-массива подают не массив |
|
242 |
Не может быть инициализировано посредством инициализирующей последовательности |
|
243 |
Импорт не определен |
|
244 |
Ошибка оптимизатора на синтаксическом дереве |
|
245 |
Объявлено слишком много структур (упростите программу) |
|
246 |
Преобразование параметра недопустимо |
|
247 |
Некорректное использование оператора delete |
|
248 |
Нельзя объявить указатель на ссылку |
|
249 |
Нельзя объявить ссылку на ссылку |
|
250 |
Нельзя объявить указатель на указатель |
|
251 |
Недопустимо объявление структуры в списке параметров |
|
252 |
Недопустимая операция приведения типов |
|
253 |
Указатель можно объявить только для класса или структуры |
|
256 |
Необъявленный идентификатор |
|
257 |
Ошибка оптимизатора исполняемого кода |
|
258 |
Ошибка генерации исполняемого кода |
|
260 |
Недопустимое выражение для оператора switch |
|
261 |
Переполнение пула строковых констант, упростите программу |
|
262 |
Невозможно преобразовать к перечислению |
|
263 |
Нельзя использовать virtual для данных (членов класса или структуры) |
|
264 |
Нельзя вызвать защищенный метод класса |
|
265 |
Переопределяемая виртуальная функция возвращает другой тип |
|
266 |
Класс нельзя наследовать от структуры |
|
267 |
Структуру нельзя наследовать от класса |
|
268 |
Конструктор не может быть виртуальным (спецификатор virtual недопустим) |
|
269 |
Структура не может иметь виртуальных методов |
|
270 |
Функция должна иметь тело |
|
271 |
Перегрузка системных функций (функций терминала) запрещена |
|
272 |
Спецификатор const недопустим для функций, не являющихся членом класса или структуры |
|
274 |
Нельзя менять члены класса в константном методе |
|
276 |
Неподходящая инициализирующая последовательность |
|
277 |
Пропущено значение по умолчанию для параметра (специфика объявления параметров по умолчанию) |
|
278 |
Переопределение параметра по умолчанию (в объявлении и реализации разные значения) |
|
279 |
Нельзя вызвать неконстантный метод для константного объекта |
|
280 |
Для доступа к членам требуется объект (поставлена точка для не класса/структуры) |
|
281 |
Имя уже объявленной структуры нельзя использовать при объявлении |
|
284 |
Неразрешенное преобразование (при закрытом наследовании) |
|
285 |
Структуры и массивы не могут быть использованы в качестве input-переменных |
|
286 |
Спецификатор const недопустим для конструктора/деструктора |
|
287 |
Неправильное строковое выражение для типа datetime |
|
288 |
Неизвестное свойство (#property) |
|
289 |
Некорректное значение для свойства |
|
290 |
Некорректный индекс для свойства в #property |
|
291 |
Пропущен параметр вызова – < func(x,) > |
|
293 |
Объект должен быть передан по ссылке |
|
294 |
Массив должен быть передан по ссылке |
|
295 |
Функция была декларирована как экспортируемая |
|
296 |
Функция не была декларирована как экспортируемая |
|
297 |
Экспортировать импортируемую функцию нельзя |
|
298 |
Импортируемая функция не может иметь такого параметра (нельзя передавать указатель, класс или структуру, содержащую динамический массив, указатель, класс и т.д.) |
|
299 |
Должен быть класс |
|
300 |
Секция #import не закрыта |
|
302 |
Несоответствие типов |
|
303 |
extern-переменная уже инициализирована |
|
304 |
Не найдено ни одной экспортируемой функции или стандартной точки входа |
|
305 |
Явный вызов конструктора запрещен |
|
306 |
Метод был объявлен константным |
|
307 |
Метод не был объявлен константным |
|
308 |
Некорректный размер ресурсного файла |
|
309 |
Некорректное имя ресурса |
|
310 |
Ошибка открытия файла ресурса |
|
311 |
Ошибка чтения файла ресурса |
|
312 |
Неизвестный тип ресурса |
|
313 |
Некорректный путь к файлу ресурса |
|
314 |
Указанное имя ресурса уже используется |
|
315 |
Ожидались параметры макроса |
|
316 |
После имени макроса должен быть пробел |
|
317 |
Ошибка в описании параметров макроса |
|
318 |
Неверное число параметров при использовании макроса |
|
319 |
Превышение максимального количества(16) параметров для макроса |
|
320 |
Макрос слишком сложный, требуется упрощение |
|
321 |
Параметром EnumToString() может быть только перечисление |
|
322 |
Имя ресурса слишком длинное |
|
323 |
Неподдерживаемый формат изображения (допустим только BMP-формат с глубиной цвета 24 или 32 бита) |
|
324 |
Объявление массива внутри оператора запрещено |
|
325 |
Функцию можно определить только на глобальном уровне |
|
326 |
Данное объявление недопустимо для текущей области видимости (области определения) |
|
327 |
Инициализация статичных переменных значениями локальных недопустима |
|
328 |
Недопустимое объявление массива объектов, не имеющих конструктора по умолчанию |
|
329 |
Список инициализации разрешен только для конструкторов |
|
330 |
Отсутствует определение функции после списка инициализации |
|
331 |
Список инициализации пуст |
|
332 |
Инициализация массива в конструкторе запрещена |
|
333 |
В списке инициализации запрещено инициализировать члены родительского класса |
|
334 |
Ожидалось выражение целого типа |
|
335 |
Требуемый объем памяти для массива превышает максимально допустимое значение |
|
336 |
Требуемый объем памяти для структуры превышает максимально допустимое значение |
|
337 |
Требуемый объем памяти для переменных, объявленных на глобальном уровне, превышает максимально допустимое значение |
|
338 |
Требуемый объем памяти для локальных переменных превышает максимально допустимое значение |
|
339 |
Конструктор не определен |
|
340 |
Недопустимое имя для файла иконки |
|
341 |
Не удалось открыть файла иконки по указанному пути |
|
342 |
Файл иконки некорректен и не соответствует формату ICO |
|
343 |
Повторная инициализация члена в конструкторе класса/структуры с помощью списка инициализации |
|
344 |
Инициализация статических членов в списке инициализации конструктора не допускается |
|
345 |
Инициализация нестатического члена класса/структуры на глобальном уровне запрещена |
|
346 |
Имя метода класса/структуры совпадает с ранее объявленным именем члена |
|
347 |
Имя члена класса/структуры совпадает с ранее объявленным именем метода |
|
348 |
Виртуальная функция не может быть объявлена как static |
|
349 |
Модификатор const недопустим для статической функции |
|
350 |
Конструктор или деструктор не могут быть статическими |
|
351 |
Нельзя обращаться к нестатическому члену/методу класса или структуры из статической функции |
|
352 |
После ключевого слова operator ожидается перегружаемая операция (+,-,[],++,— и т.д.) |
|
353 |
Не все операции можно перегружать в MQL5 |
|
354 |
Определение не соответствует объявлению |
|
355 |
Указано неверное количество параметров для оператора |
|
356 |
Не обнаружено ни одной функции-обработчика события |
|
357 |
Методы не могут быть экспортируемыми |
|
358 |
Нельзя приводить указатель на константный объект к указателю на неконстантный объект |
|
359 |
Шаблоны классов пока не поддерживаются |
|
360 |
Перегрузка шаблонов функций пока не поддерживается |
|
361 |
Невозможно применить шаблон функции |
|
362 |
Неоднозначный параметр в шаблоне функции (подходят несколько типов параметра) |
|
363 |
Невозможно определить к какому типу параметра приводить аргумент шаблона функции |
|
364 |
Неверное количество параметров в шаблоне функции |
|
365 |
Шаблон функции не может быть виртуальным |
|
366 |
Шаблоны функций не могут быть экспортированы |
|
367 |
Нельзя импортировать шаблоны функций |
|
368 |
Структуры, содержащие объекты, недопустимы |
|
369 |
Массивы строк и структуры, содержащие объекты, недопустимы |
|
370 |
Статический член класса/структуры должен быть явно инициализирован |
|
371 |
Ограничение компилятора: строка не может содержать более 65 535 символов |
|
372 |
Несогласованные #ifdef/#endif |
|
373 |
Результатом выполнения функции не может быть объект класса, так как отсутствует конструктор копирования |
|
374 |
Нельзя использовать нестатические члены и/или методы при инициализации статической переменной |
|
375 |
OnTesterInit() нельзя использовать без объявления обработчика OnTesterDeinit() |
|
376 |
Имя локальной переменной совпадает с именем одного из параметров функции |
|
377 |
Нельзя использовать макросы __FUNCSIG__ и __FUNCTION__ вне тела функции |
|
378 |
Недопустимый возвращаемый тип. Например, такая ошибка будет выдана для функций, импортированных из DLL, которые возвращают структуру или указатель в качестве результата |
|
379 |
Ошибка при использовании шаблона |
|
380 |
Не используется |
|
381 |
Недопустимый синтаксис при объявлении чисто виртуальной функции, разрешено «=NULL» или «=0» |
|
382 |
Только виртуальные функции могут быть объявлены со спецификатором чисто виртуальной функции («=NULL» или «=0») |
|
383 |
Нельзя создать экземпляр абстрактного класса |
|
384 |
Для динамического приведения с помощью оператора dynamic_cast типом назначения должен быть указатель на пользовательский тип |
|
385 |
Ожидается тип «указатель на функцию» |
|
386 |
Указатели на методы не поддерживаются |
|
387 |
Ошибка – невозможно определить тип указателя на функцию |
|
388 |
Приведение типа недоступно из-за закрытого наследования |
|
389 |
Переменная с модификатором const должна быть проинициализирована при объявлении |
|
393 |
В интерфейсе могут быть объявлены только методы с публичным доступом |
|
394 |
Недопустимое вложение интерфейса в другой интерфейс |
|
395 |
Интерфейс может наследоваться только от другого интерфейса |
|
396 |
Ожидается интерфейс |
|
397 |
Интерфейсы поддерживают только публичное наследование |
|
398 |
Интерфейс не может содержать члены |
|
399 |
Нельзя создавать объекты интерфейса напрямую, только через наследование |
GetLastError() – функция, возвращающая код последней ошибки, которая хранится в предопределенной переменной _LastError. Значение этой переменной можно сбросить в ноль функцией ResetLastError().
|
ERR_SUCCESS |
0 |
Операция выполнена успешно |
|
ERR_INTERNAL_ERROR |
4001 |
Неожиданная внутренняя ошибка |
|
ERR_WRONG_INTERNAL_PARAMETER |
4002 |
Ошибочный параметр при внутреннем вызове функции клиентского терминала |
|
ERR_INVALID_PARAMETER |
4003 |
Ошибочный параметр при вызове системной функции |
|
ERR_NOT_ENOUGH_MEMORY |
4004 |
Недостаточно памяти для выполнения системной функции |
|
ERR_STRUCT_WITHOBJECTS_ORCLASS |
4005 |
Структура содержит объекты строк и/или динамических массивов и/или структуры с такими объектами и/или классы |
|
ERR_INVALID_ARRAY |
4006 |
Массив неподходящего типа, неподходящего размера или испорченный объект динамического массива |
|
ERR_ARRAY_RESIZE_ERROR |
4007 |
Недостаточно памяти для перераспределения массива либо попытка изменения размера статического массива |
|
ERR_STRING_RESIZE_ERROR |
4008 |
Недостаточно памяти для перераспределения строки |
|
ERR_NOTINITIALIZED_STRING |
4009 |
Неинициализированная строка |
|
ERR_INVALID_DATETIME |
4010 |
Неправильное значение даты и/или времени |
|
ERR_ARRAY_BAD_SIZE |
4011 |
Запрашиваемый размер массива превышает 2 гигабайта |
|
ERR_INVALID_POINTER |
4012 |
Ошибочный указатель |
|
ERR_INVALID_POINTER_TYPE |
4013 |
Ошибочный тип указателя |
|
ERR_FUNCTION_NOT_ALLOWED |
4014 |
Системная функция не разрешена для вызова |
|
ERR_RESOURCE_NAME_DUPLICATED |
4015 |
Совпадении имени динамического и статического ресурсов |
|
ERR_RESOURCE_NOT_FOUND |
4016 |
Ресурс с таким именем в EX5 не найден |
|
ERR_RESOURCE_UNSUPPOTED_TYPE |
4017 |
Неподдерживаемый тип ресурса или размер более 16 MB |
|
ERR_RESOURCE_NAME_IS_TOO_LONG |
4018 |
Имя ресурса превышает 63 символа |
|
ERR_MATH_OVERFLOW |
4019 |
При вычислении математической функции произошло переполнение |
|
Графики |
||
|
ERR_CHART_WRONG_ID |
4101 |
Ошибочный идентификатор графика |
|
ERR_CHART_NO_REPLY |
4102 |
График не отвечает |
|
ERR_CHART_NOT_FOUND |
4103 |
График не найден |
|
ERR_CHART_NO_EXPERT |
4104 |
У графика нет эксперта, который мог бы обработать событие |
|
ERR_CHART_CANNOT_OPEN |
4105 |
Ошибка открытия графика |
|
ERR_CHART_CANNOT_CHANGE |
4106 |
Ошибка при изменении для графика символа и периода |
|
ERR_CHART_WRONG_PARAMETER |
4107 |
Ошибочное значение параметра для функции по работе с графиком |
|
ERR_CHART_CANNOT_CREATE_TIMER |
4108 |
Ошибка при создании таймера |
|
ERR_CHART_WRONG_PROPERTY |
4109 |
Ошибочный идентификатор свойства графика |
|
ERR_CHART_SCREENSHOT_FAILED |
4110 |
Ошибка при создании скриншота |
|
ERR_CHART_NAVIGATE_FAILED |
4111 |
Ошибка навигации по графику |
|
ERR_CHART_TEMPLATE_FAILED |
4112 |
Ошибка при применении шаблона |
|
ERR_CHART_WINDOW_NOT_FOUND |
4113 |
Подокно, содержащее указанный индикатор, не найдено |
|
ERR_CHART_INDICATOR_CANNOT_ADD |
4114 |
Ошибка при добавлении индикатора на график |
|
ERR_CHART_INDICATOR_CANNOT_DEL |
4115 |
Ошибка при удалении индикатора с графика |
|
ERR_CHART_INDICATOR_NOT_FOUND |
4116 |
Индикатор не найден на указанном графике |
|
Графические объекты |
||
|
ERR_OBJECT_ERROR |
4201 |
Ошибка при работе с графическим объектом |
|
ERR_OBJECT_NOT_FOUND |
4202 |
Графический объект не найден |
|
ERR_OBJECT_WRONG_PROPERTY |
4203 |
Ошибочный идентификатор свойства графического объекта |
|
ERR_OBJECT_GETDATE_FAILED |
4204 |
Невозможно получить дату, соответствующую значению |
|
ERR_OBJECT_GETVALUE_FAILED |
4205 |
Невозможно получить значение, соответствующее дате |
|
MarketInfo |
||
|
ERR_MARKET_UNKNOWN_SYMBOL |
4301 |
Неизвестный символ |
|
ERR_MARKET_NOT_SELECTED |
4302 |
Символ не выбран в MarketWatch |
|
ERR_MARKET_WRONG_PROPERTY |
4303 |
Ошибочный идентификатор свойства символа |
|
ERR_MARKET_LASTTIME_UNKNOWN |
4304 |
Время последнего тика неизвестно (тиков не было) |
|
ERR_MARKET_SELECT_ERROR |
4305 |
Ошибка добавления или удаления символа в MarketWatch |
|
Доступ к истории |
||
|
ERR_HISTORY_NOT_FOUND |
4401 |
Запрашиваемая история не найдена |
|
ERR_HISTORY_WRONG_PROPERTY |
4402 |
Ошибочный идентификатор свойства истории |
|
ERR_HISTORY_TIMEOUT |
4403 |
Превышен таймаут при запросе истории |
|
ERR_HISTORY_BARS_LIMIT |
4404 |
Количество запрашиваемых баров ограничено настройками терминала |
|
ERR_HISTORY_LOAD_ERRORS |
4405 |
Множество ошибок при загрузке истории |
|
ERR_HISTORY_SMALL_BUFFER |
4407 |
Принимающий массив слишком мал чтобы вместить все запрошенные данные |
|
Global_Variables |
||
|
ERR_GLOBALVARIABLE_NOT_FOUND |
4501 |
Глобальная переменная клиентского терминала не найдена |
|
ERR_GLOBALVARIABLE_EXISTS |
4502 |
Глобальная переменная клиентского терминала с таким именем уже существует |
|
ERR_GLOBALVARIABLE_NOT_MODIFIED |
4503 |
Не было модификаций глобальных переменных |
|
ERR_GLOBALVARIABLE_CANNOTREAD |
4504 |
Не удалось открыть и прочитать файл со значениями глобальных переменных |
|
ERR_GLOBALVARIABLE_CANNOTWRITE |
4505 |
Не удалось записать файл со значениями глобальных переменных |
|
ERR_MAIL_SEND_FAILED |
4510 |
Не удалось отправить письмо |
|
ERR_PLAY_SOUND_FAILED |
4511 |
Не удалось воспроизвести звук |
|
ERR_MQL5_WRONG_PROPERTY |
4512 |
Ошибочный идентификатор свойства программы |
|
ERR_TERMINAL_WRONG_PROPERTY |
4513 |
Ошибочный идентификатор свойства терминала |
|
ERR_FTP_SEND_FAILED |
4514 |
Не удалось отправить файл по ftp |
|
ERR_NOTIFICATION_SEND_FAILED |
4515 |
Не удалось отправить уведомление |
|
ERR_NOTIFICATION_WRONG_PARAMETER |
4516 |
Неверный параметр для отправки уведомления – в функцию SendNotification() передали пустую строку или NULL |
|
ERR_NOTIFICATION_WRONG_SETTINGS |
4517 |
Неверные настройки уведомлений в терминале (не указан ID или не выставлено разрешение) |
|
ERR_NOTIFICATION_TOO_FREQUENT |
4518 |
Слишком частая отправка уведомлений |
|
ERR_FTP_NOSERVER |
4519 |
Не указан FTP сервер |
|
ERR_FTP_NOLOGIN |
4520 |
Не указан FTP логин |
|
ERR_FTP_FILE_ERROR |
4521 |
Не найден файл в директории MQL5Files для отправки на FTP сервер |
|
ERR_FTP_CONNECT_FAILED |
4522 |
Ошибка при подключении к FTP серверу |
|
ERR_FTP_CHANGEDIR |
4523 |
На FTP сервере не найдена директория для выгрузки файла |
|
ERR_FTP_CLOSED |
4524 |
Подключение к FTP серверу закрыто |
|
Буферы пользовательских индикаторов |
||
|
ERR_BUFFERS_NO_MEMORY |
4601 |
Недостаточно памяти для распределения индикаторных буферов |
|
ERR_BUFFERS_WRONG_INDEX |
4602 |
Ошибочный индекс своего индикаторного буфера |
|
Свойства пользовательских индикаторов |
||
|
ERR_CUSTOM_WRONG_PROPERTY |
4603 |
Ошибочный идентификатор свойства пользовательского индикатора |
|
Account |
||
|
ERR_ACCOUNT_WRONG_PROPERTY |
4701 |
Ошибочный идентификатор свойства счета |
|
ERR_TRADE_WRONG_PROPERTY |
4751 |
Ошибочный идентификатор свойства торговли |
|
ERR_TRADE_DISABLED |
4752 |
Торговля для эксперта запрещена |
|
ERR_TRADE_POSITION_NOT_FOUND |
4753 |
Позиция не найдена |
|
ERR_TRADE_ORDER_NOT_FOUND |
4754 |
Ордер не найден |
|
ERR_TRADE_DEAL_NOT_FOUND |
4755 |
Сделка не найдена |
|
ERR_TRADE_SEND_FAILED |
4756 |
Не удалось отправить торговый запрос |
|
ERR_TRADE_CALC_FAILED |
4758 |
Не удалось вычислить значение прибыли или маржи |
|
Индикаторы |
||
|
ERR_INDICATOR_UNKNOWN_SYMBOL |
4801 |
Неизвестный символ |
|
ERR_INDICATOR_CANNOT_CREATE |
4802 |
Индикатор не может быть создан |
|
ERR_INDICATOR_NO_MEMORY |
4803 |
Недостаточно памяти для добавления индикатора |
|
ERR_INDICATOR_CANNOT_APPLY |
4804 |
Индикатор не может быть применен к другому индикатору |
|
ERR_INDICATOR_CANNOT_ADD |
4805 |
Ошибка при добавлении индикатора |
|
ERR_INDICATOR_DATA_NOT_FOUND |
4806 |
Запрошенные данные не найдены |
|
ERR_INDICATOR_WRONG_HANDLE |
4807 |
Ошибочный хэндл индикатора |
|
ERR_INDICATOR_WRONG_PARAMETERS |
4808 |
Неправильное количество параметров при создании индикатора |
|
ERR_INDICATOR_PARAMETERS_MISSING |
4809 |
Отсутствуют параметры при создании индикатора |
|
ERR_INDICATOR_CUSTOM_NAME |
4810 |
Первым параметром в массиве должно быть имя пользовательского индикатора |
|
ERR_INDICATOR_PARAMETER_TYPE |
4811 |
Неправильный тип параметра в массиве при создании индикатора |
|
ERR_INDICATOR_WRONG_INDEX |
4812 |
Ошибочный индекс запрашиваемого индикаторного буфера |
|
Стакан цен |
||
|
ERR_BOOKS_CANNOT_ADD |
4901 |
Стакан цен не может быть добавлен |
|
ERR_BOOKS_CANNOT_DELETE |
4902 |
Стакан цен не может быть удален |
|
ERR_BOOKS_CANNOT_GET |
4903 |
Данные стакана цен не могут быть получены |
|
ERR_BOOKS_CANNOT_SUBSCRIBE |
4904 |
Ошибка при подписке на получение новых данных стакана цен |
|
Файловые операции |
||
|
ERR_TOO_MANY_FILES |
5001 |
Не может быть открыто одновременно более 64 файлов |
|
ERR_WRONG_FILENAME |
5002 |
Недопустимое имя файла |
|
ERR_TOO_LONG_FILENAME |
5003 |
Слишком длинное имя файла |
|
ERR_CANNOT_OPEN_FILE |
5004 |
Ошибка открытия файла |
|
ERR_FILE_CACHEBUFFER_ERROR |
5005 |
Недостаточно памяти для кеша чтения |
|
ERR_CANNOT_DELETE_FILE |
5006 |
Ошибка удаления файла |
|
ERR_INVALID_FILEHANDLE |
5007 |
Файл с таким хэндлом уже был закрыт, либо не открывался вообще |
|
ERR_WRONG_FILEHANDLE |
5008 |
Ошибочный хэндл файла |
|
ERR_FILE_NOTTOWRITE |
5009 |
Файл должен быть открыт для записи |
|
ERR_FILE_NOTTOREAD |
5010 |
Файл должен быть открыт для чтения |
|
ERR_FILE_NOTBIN |
5011 |
Файл должен быть открыт как бинарный |
|
ERR_FILE_NOTTXT |
5012 |
Файл должен быть открыт как текстовый |
|
ERR_FILE_NOTTXTORCSV |
5013 |
Файл должен быть открыт как текстовый или CSV |
|
ERR_FILE_NOTCSV |
5014 |
Файл должен быть открыт как CSV |
|
ERR_FILE_READERROR |
5015 |
Ошибка чтения файла |
|
ERR_FILE_BINSTRINGSIZE |
5016 |
Должен быть указан размер строки, так как файл открыт как бинарный |
|
ERR_INCOMPATIBLE_FILE |
5017 |
Для строковых массивов должен быть текстовый файл, для остальных – бинарный |
|
ERR_FILE_IS_DIRECTORY |
5018 |
Это не файл, а директория |
|
ERR_FILE_NOT_EXIST |
5019 |
Файл не существует |
|
ERR_FILE_CANNOT_REWRITE |
5020 |
Файл не может быть переписан |
|
ERR_WRONG_DIRECTORYNAME |
5021 |
Ошибочное имя директории |
|
ERR_DIRECTORY_NOT_EXIST |
5022 |
Директория не существует |
|
ERR_FILE_ISNOT_DIRECTORY |
5023 |
Это файл, а не директория |
|
ERR_CANNOT_DELETE_DIRECTORY |
5024 |
Директория не может быть удалена |
|
ERR_CANNOT_CLEAN_DIRECTORY |
5025 |
Не удалось очистить директорию (возможно, один или несколько файлов заблокированы и операция удаления не удалась) |
|
ERR_FILE_WRITEERROR |
5026 |
Не удалось записать ресурс в файл |
|
ERR_FILE_ENDOFFILE |
5027 |
Не удалось прочитать следующую порцию данных из CSV-файла (FileReadString, FileReadNumber, FileReadDatetime, FileReadBool), так как достигнут конец файла |
|
Преобразование строк |
||
|
ERR_NO_STRING_DATE |
5030 |
В строке нет даты |
|
ERR_WRONG_STRING_DATE |
5031 |
В строке ошибочная дата |
|
ERR_WRONG_STRING_TIME |
5032 |
В строке ошибочное время |
|
ERR_STRING_TIME_ERROR |
5033 |
Ошибка преобразования строки в дату |
|
ERR_STRING_OUT_OF_MEMORY |
5034 |
Недостаточно памяти для строки |
|
ERR_STRING_SMALL_LEN |
5035 |
Длина строки меньше, чем ожидалось |
|
ERR_STRING_TOO_BIGNUMBER |
5036 |
Слишком большое число, больше, чем ULONG_MAX |
|
ERR_WRONG_FORMATSTRING |
5037 |
Ошибочная форматная строка |
|
ERR_TOO_MANY_FORMATTERS |
5038 |
Форматных спецификаторов больше, чем параметров |
|
ERR_TOO_MANY_PARAMETERS |
5039 |
Параметров больше, чем форматных спецификаторов |
|
ERR_WRONG_STRING_PARAMETER |
5040 |
Испорченный параметр типа string |
|
ERR_STRINGPOS_OUTOFRANGE |
5041 |
Позиция за пределами строки |
|
ERR_STRING_ZEROADDED |
5042 |
К концу строки добавлен 0, бесполезная операция |
|
ERR_STRING_UNKNOWNTYPE |
5043 |
Неизвестный тип данных при конвертации в строку |
|
ERR_WRONG_STRING_OBJECT |
5044 |
Испорченный объект строки |
|
Работа с массивами |
||
|
ERR_INCOMPATIBLE_ARRAYS |
5050 |
Копирование несовместимых массивов. Строковый массив может быть скопирован только в строковый, а числовой массив – в числовой |
|
ERR_SMALL_ASSERIES_ARRAY |
5051 |
Приемный массив объявлен как AS_SERIES, и он недостаточного размера |
|
ERR_SMALL_ARRAY |
5052 |
Слишком маленький массив, стартовая позиция за пределами массива |
|
ERR_ZEROSIZE_ARRAY |
5053 |
Массив нулевой длины |
|
ERR_NUMBER_ARRAYS_ONLY |
5054 |
Должен быть числовой массив |
|
ERR_ONEDIM_ARRAYS_ONLY |
5055 |
Должен быть одномерный массив |
|
ERR_SERIES_ARRAY |
5056 |
Таймсерия не может быть использована |
|
ERR_DOUBLE_ARRAY_ONLY |
5057 |
Должен быть массив типа double |
|
ERR_FLOAT_ARRAY_ONLY |
5058 |
Должен быть массив типа float |
|
ERR_LONG_ARRAY_ONLY |
5059 |
Должен быть массив типа long |
|
ERR_INT_ARRAY_ONLY |
5060 |
Должен быть массив типа int |
|
ERR_SHORT_ARRAY_ONLY |
5061 |
Должен быть массив типа short |
|
ERR_CHAR_ARRAY_ONLY |
5062 |
Должен быть массив типа char |
|
ERR_STRING_ARRAY_ONLY |
5063 |
Должен быть массив типа string |
|
Работа с OpenCL |
||
|
ERR_OPENCL_NOT_SUPPORTED |
5100 |
Функции OpenCL на данном компьютере не поддерживаются |
|
ERR_OPENCL_INTERNAL |
5101 |
Внутренняя ошибка при выполнении OpenCL |
|
ERR_OPENCL_INVALID_HANDLE |
5102 |
Неправильный хэндл OpenCL |
|
ERR_OPENCL_CONTEXT_CREATE |
5103 |
Ошибка при создании контекста OpenCL |
|
ERR_OPENCL_QUEUE_CREATE |
5104 |
Ошибка создания очереди выполнения в OpenCL |
|
ERR_OPENCL_PROGRAM_CREATE |
5105 |
Ошибка при компиляции программы OpenCL |
|
ERR_OPENCL_TOO_LONG_KERNEL_NAME |
5106 |
Слишком длинное имя точки входа (кернел OpenCL) |
|
ERR_OPENCL_KERNEL_CREATE |
5107 |
Ошибка создания кернел — точки входа OpenCL |
|
ERR_OPENCL_SET_KERNEL_PARAMETER |
5108 |
Ошибка при установке параметров для кернел OpenCL (точки входа в программу OpenCL) |
|
ERR_OPENCL_EXECUTE |
5109 |
Ошибка выполнения программы OpenCL |
|
ERR_OPENCL_WRONG_BUFFER_SIZE |
5110 |
Неверный размер буфера OpenCL |
|
ERR_OPENCL_WRONG_BUFFER_OFFSET |
5111 |
Неверное смещение в буфере OpenCL |
|
ERR_OPENCL_BUFFER_CREATE |
5112 |
Ошибка создания буфера OpenCL |
|
ERR_OPENCL_TOO_MANY_OBJECTS |
5113 |
Превышено максимальное число OpenCL объектов |
|
ERR_OPENCL_SELECTDEVICE |
5114 |
Ошибка выбора OpenCL устройства |
|
Работа с WebRequest |
||
|
ERR_WEBREQUEST_INVALID_ADDRESS |
5200 |
URL не прошел проверку |
|
ERR_WEBREQUEST_CONNECT_FAILED |
5201 |
Не удалось подключиться к указанному URL |
|
ERR_WEBREQUEST_TIMEOUT |
5202 |
Превышен таймаут получения данных |
|
ERR_WEBREQUEST_REQUEST_FAILED |
5203 |
Ошибка в результате выполнения HTTP запроса |
|
Пользовательские символы |
||
|
ERR_NOT_CUSTOM_SYMBOL |
5300 |
Должен быть указан пользовательский символ |
|
ERR_CUSTOM_SYMBOL_WRONG_NAME |
5301 |
Некорректное имя пользовательского символа. В имени символа можно использовать только латинские буквы без знаков препинания, пробелов и спецсимволов (допускаются «.», «_», «&» и «#»). Не рекомендуется использовать символы <, >, :, «, /,, |, ?, *. |
|
ERR_CUSTOM_SYMBOL_NAME_LONG |
5302 |
Слишком длинное имя для пользовательского символа. Длина имени символа не должна превышать 32 знака с учётом завершающего 0 |
|
ERR_CUSTOM_SYMBOL_PATH_LONG |
5303 |
Слишком длинный путь для пользовательского символа. Длина пути не более 128 знаков с учётом «Custom\», имени символа, разделителей групп и завершающего 0 |
|
ERR_CUSTOM_SYMBOL_EXIST |
5304 |
Пользовательский символ с таким именем уже существует |
|
ERR_CUSTOM_SYMBOL_ERROR |
5305 |
Ошибка при создании, удалении или изменении пользовательского символа |
|
ERR_CUSTOM_SYMBOL_SELECTED |
5306 |
Попытка удалить пользовательский символ, выбранный в обзоре рынка (Market Watch) |
|
ERR_CUSTOM_SYMBOL_PROPERTY_WRONG |
5307 |
Неправильное свойство пользовательского символа |
|
ERR_CUSTOM_SYMBOL_PARAMETER_ERROR |
5308 |
Ошибочный параметр при установке свойства пользовательского символа |
|
ERR_CUSTOM_SYMBOL_PARAMETER_LONG |
5309 |
Слишком длинный строковый параметр при установке свойства пользовательского символа |
|
ERR_CUSTOM_TICKS_WRONG_ORDER |
5310 |
Не упорядоченный по времени массив тиков |
|
Пользовательские ошибки |
||
|
ERR_USER_ERROR_FIRST |
65536 |
С этого кода начинаются ошибки, задаваемые пользователем |