Раздел содержит следующие описания:
- Коды возврата торгового сервера – анализ результатов отправки торгового запроса, отправленного функцией OrderSend();
- Предупреждения компилятора – коды предупредительных сообщений, выводимые при компиляции (не являются ошибками);
- Ошибки компиляции – коды сообщений об ошибке при неудачной попытке компиляции;
- Ошибки времени выполнения – коды ошибок при выполнении mql5-программы, которые можно получить при помощи функции GetLastError().
Коды возврата торгового сервера
Все приказы на совершение торговых операций отправляются в виде структуры торгового запроса 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 |
Запрос отклонен, так как на символе установлено правило «Разрешено только закрывать существующие позиции« |
Предупреждения компилятора
Предупреждения компилятора носят информационный характер и не являются сообщениями об ошибках.
Номер |
Описание |
Неполная запись даты в строке datetime |
|
Ошибочные числа в строке datetime для даты, требования: год 1970<=X<=3000 месяц 0<X<=12 день 0<X<= 31/30/28(29)…. |
|
Ошибочные числа в строке datetime для времени, требования: час 0<=X<24 минута 0<=X<60 |
|
Некорректный цвет в формате RGB: одна из компонент RGB меньше 0 или больше 255 |
|
Неизвестный символ эскейп последовательности. Известные: \n \r \t \\ \» \’ \X \x |
|
Слишком большой объем локальных переменных (>512кб) функции, уменьшите их количество |
|
Перечисление уже определено (дублирование) – члены будут добавлены к первому определению |
|
Переопределение макроса |
|
Переменная объявлена, но нигде не используется |
|
Конструктор должен иметь тип void |
|
Деструктор должен иметь тип void |
|
Константа не вмещается в диапазон целых (X>_UI64_MAX || X<_I64_MIN) и будет преобразована в тип double |
|
Слишком длинный HEX больше 16 значащих символов (обрезаются старшие полубайты) |
|
Нет ни одного полубайта в HEX строке «0x» |
|
Нет ни одной функции — нечего будет выполнять |
|
Используется неинициализированная переменная |
|
Функция не имеет тела, но и не вызывается |
|
Возможны потери данных при преобразовании типа. Пример: int x=(double)z; |
|
Потеря точности(данных) при преобразовании константы. Пример: int x=M_PI |
|
Несовпадение знаков операндов в операциях сравнения. Пример: (char)c1>(uchar)c2 |
|
Проблемы с импортом функций – требуется объявление #import либо импорт функций уже закрыт |
|
Описание слишком большое – лишние символы не будут включены в исполняемый файл |
|
Количество индикаторных буферов объявлено меньше, чем требуется |
|
Не указан цвет для отрисовки графической серии в индикаторе |
|
Нет ни одной графической серии для отображения индикатора |
|
Не обнаружена функция-обработчик ‘OnStart» в скрипте |
|
Функция-обработчик ‘OnStart» определена с неверными параметрами |
|
Функция ‘OnStart’ может быть определена только в скрипте |
|
Функция ‘OnInit’ определена с неверными параметрами |
|
Функция ‘OnInit’ не используется в скриптах |
|
Функция ‘OnDeinit’ определена с неверными параметрами |
|
Функция ‘OnDeinit’ не используется в скриптах |
|
Определены две функции ‘OnCalculate’. Будет использована OnCalculate() на одном ценовом массиве |
|
Обнаружено переполнение при вычислении сложной целочисленной константы |
|
Возможно, переменная неинициализирована. |
|
Данное объявление делает недоступным обращение к локальной переменной, объявленной на указанной строке |
|
Данное объявление делает недоступным обращение к глобальной переменной, объявленной на указанной строке |
|
Не может быть использовано для статических массивов |
|
Данное объявление делает недоступным обращение к предопределенной переменной |
|
Значение выражения всегда true/false |
|
Использование переменной или выражения типа bool в математических операциях является небезопасным |
|
Результат применения оператора унарного минуса к беззнаковому типу ulong неопределен |
|
Версия, указанная в свойстве #property version, недопустима для размещения в разделе Маркет, правильный формат #property version «XXX.YYY» |
|
Отсутствует выражение для выполнения по условию |
|
Неверный возвращаемый тип функции или некорректные параметры при объявлении функции-обработчика события |
|
Требуется явное приведение структур к одному типу |
|
Данное объявление делает недоступным прямое обращение к члену класса, объявленному на указанной строке. Доступ будет возможен только с помощью операции разрешения контекста :: |
|
Константа в двоичной записи слишком велика, старшие разряды будут отброшены |
|
Параметр в методе наследуемого класса отличается модификатором const, дочерняя функция перегрузила функцию родителя |
|
Отрицательное или слишком большое значения смещения в битовой операции сдвига, результат выполнения неопределён |
|
Функция должна вернуть значение |
|
Функция типа void не должна возвращать значение |
|
Не все варианты выполнения возвращают значение |
|
Выражения на глобальном уровне не разрешены |
|
Возможна ошибка в последовательности выполнения операций, используйте скобки для явного указания порядка |
|
Найдено два вида вызова OnCalCulate(). Вызываться будет вариант с использованием таймсерий OHLC |
|
Структура не содержит членов, размер будет приравнен 1 байту |
|
Нет обработки результата выполнения функции |
|
Индикатор, включаемый как ресурс, скомпилирован в режиме отладки. Это снижает его производительность. Для повышения скорости работы его нужно перекомпилировать |
|
Слишком большой код символа в строке, должен быть в диапазоне от 0 до 65535 |
|
Нераспознанный служебный символ в строке |
|
Не указано свойство индикатора, задающее вывод в главное окно или в отдельное подокно. Будет применено свойство #property indicator_chart_window |
Ошибки компиляции
MetaEdtior 5, редактор mql5-программ, выдает сообщения об ошибках программы, обнаруженных встроенным компилятором на стадии компиляции. Список этих ошибок приведен ниже в таблице. Для компиляции исходного кода в исполняемый нажмите F7. Программы с ошибками не могут быть скомпилированы, пока ошибки, указанные компилятором, не будут устранены.
Номер |
Описание |
Ошибка чтения файла |
|
Ошибка открытия *.EX5 файла для записи |
|
Недостаточно свободной памяти для завершения компиляции |
|
Нераспознанная компилятором пустая синтаксическая единица |
|
Некорректное имя файла в #include |
|
Ошибка доступа к файлу в #include (возможно файл не существует) |
|
Неподходящее имя для #define |
|
Неизвестная команда препроцессора (допустимы #include,#define,#property,#import) |
|
Неизвестный для компилятора символ |
|
Функция не реализована (описание есть, тела нет) |
|
Пропущена двойная кавычка («) |
|
Пропущена открывающая угловая скобка (<) или двойная кавычка («) |
|
Пропущена одинарная кавычка (‘) |
|
Пропущена закрывающая угловая скобка «>» |
|
Не указан тип в объявлении |
|
Нет оператора возврата return или имеется не во всех ветках выполнения |
|
Ожидалась открывающая скобка параметров вызова |
|
Ошибка записи EX5 |
|
Некорректный доступ к элементу массива |
|
Функция не имеет тип void и оператор return должен вернуть значение |
|
Некорректное объявление деструктора |
|
Отсутствует двоеточие «:» |
|
Переменная уже объявлена |
|
Переменная с таким идентификатором уже объявлена |
|
Имя переменной слишком длинное (>250 символов) |
|
Структура с таким идентификатором уже определена |
|
Структура не определена |
|
Член структуры с таким именем уже определен |
|
Нет такого члена структуры |
|
Нарушена парность квадратных скобок |
|
Ожидается открывающая круглая скобка «(« |
|
Несбалансированные фигурные скобки ( отсутствует «}» ) |
|
Сложно для компиляции (слишком большое ветвление, внутренний стек уровней переполнен) |
|
Ошибка открытия файла на чтение |
|
Недостаточно памяти для загрузки исходного файла в память |
|
Ожидается переменная |
|
Ссылка не может быть инициализирована |
|
Ожидалось присваивание (возникает при объявлении) |
|
Ожидается открывающая фигурная скобка «{« |
|
Параметр может быть только динамическим массивом |
|
Использование типа «void» недопустимо |
|
Нет пары для «)» или «]», т.е. отсутствует «(» или «[« |
|
Нет пары для «(» или «[«, т.е. отсутствует «)» или «]» |
|
Некорректная размерность массива |
|
Слишком много параметров (>64) |
|
Этот токен тут не ожидается |
|
Недопустимое использование операции (неправильные операнды) |
|
Выражение типа void недопустимо |
|
Ожидается оператор |
|
Неправильное использование break |
|
Ожидается точка с запятой «;» |
|
Ожидается запятая «,» |
|
Тип должен быть определен как класс, а не как структура |
|
Ожидалось выражение |
|
В HEX встречается «не HEX символ» или слишком длинное число (количество цифр > 511) |
|
Строка-константа имеет более 65534 символов |
|
Определение функции здесь недопустимо |
|
Неожиданный конец программы |
|
Форвардная декларация для структур запрещена |
|
Функция с таким именем уже определена и имеет иной тип возвращаемого значения |
|
Функция с таким именем уже определена и имеет иной набор параметров |
|
Функция с таким именем уже определена и реализована |
|
Перегрузка функции для данного вызова не найдена |
|
Функция с возвращаемым значением типа void не может возвращать значение |
|
Функция не определена |
|
Ожидается значение |
|
В выражении case допустимы только целочисленные константы |
|
Значение для case в этом switch уже использовано |
|
Ожидается целочисленное значение |
|
В выражении #import ожидается имя файла |
|
Выражения на глобальном уровне не допустимы |
|
Пропущена круглая скобка «)» перед «;» |
|
Слева от знака равенства предполагается переменная |
|
Результат выражения не используется |
|
Объявление переменных в case недопустимо |
|
Неявное преобразование из строки в число |
|
Неявное преобразование числа в строку |
|
Неоднозначный вызов перегруженной функции (подходят несколько перегрузок) |
|
Недопустимый else без соответствующего if |
|
Недопустимый case или default без соответствующего switch |
|
Недопустимое использование эллипсиса |
|
Инициализирующая последовательность имеет большее количество элементов чем инициализируемая переменная |
|
Ожидается константа для case |
|
Требуется константное выражение |
|
Константная переменная не может быть изменена |
|
Ожидается закрывающая скобка или запятая (объявление члена массива) |
|
Идентификатор перечисления уже используется |
|
Перечисление не может иметь модификаторов доступа (const, extern, static) |
|
Член перечисления уже объявлен с другим значением |
|
Существует переменная, определенная с таким же именем |
|
Существует структура, определенная с таким же именем |
|
Ожидается имя члена перечисления |
|
Ожидается целочисленное выражение |
|
Деление на ноль в константном выражении |
|
Неверное количество параметров в функции |
|
Параметром по ссылке должна быть переменная |
|
Ожидается переменная такого же типа для передачи по ссылке |
|
Константная переменная не может быть передана по неконстантной ссылке |
|
Требуется целочисленная положительная константа |
|
Ошибка доступа к защищенному члену класса |
|
Импорт уже определен по другому пути |
|
Исполняемый файл не создан |
|
Для индикатора не найдена точка входа ‘OnCalculate’ |
|
Оператор continue может быть использован только внутри цикла |
|
Ошибка доступа к private(закрытому) члену класса |
|
Метод структуры или класса не объявлен |
|
Ошибка доступа к private(закрытому) методу класса |
|
Копирование структур с объектами недопустимо |
|
Выход индекса за границы массива |
|
Недопустима инициализация массивов в объявлении структуры или класса |
|
Конструктор класса не может иметь параметров |
|
Деструктор класса не может иметь параметров |
|
Метод класса или структуры с таким именем и параметрами уже объявлен |
|
Ожидается операнд |
|
Метод класса или структуры с таким именем есть, но с другими параметрами (объявление!=реализация) |
|
Импортируемая функция не описана |
|
Функция ZeroMemory() не применима для классов с защищенными членами или наследованием |
|
Неоднозначный вызов перегруженной функции (точное совпадение параметров для нескольких перегрузок) |
|
Ожидается имя переменной |
|
Ссылку нельзя объявить в этом месте |
|
Уже используется в качестве имени перечисления |
|
Ожидается класс или структура |
|
Нельзя вызывать delete для удаления массива |
|
Ожидается оператор ‘ while ‘ |
|
В delete должен быть указатель |
|
default для этого switch уже есть |
|
Синтаксическая ошибка |
|
Escape-последовательность может встретиться только в строках ( начинается с ‘\’ ) |
|
Требуется массив – квадратная скобка ‘[‘ не относится к массиву либо в качестве параметра-массива подают не массив |
|
Не может быть инициализировано посредством инициализирующей последовательности |
|
Импорт не определен |
|
Ошибка оптимизатора на синтаксическом дереве |
|
Объявлено слишком много структур (упростите программу) |
|
Преобразование параметра недопустимо |
|
Некорректное использование оператора delete |
|
Нельзя объявить указатель на ссылку |
|
Нельзя объявить ссылку на ссылку |
|
Нельзя объявить указатель на указатель |
|
Недопустимо объявление структуры в списке параметров |
|
Недопустимая операция приведения типов |
|
Указатель можно объявить только для класса или структуры |
|
Необъявленный идентификатор |
|
Ошибка оптимизатора исполняемого кода |
|
Ошибка генерации исполняемого кода |
|
Недопустимое выражение для оператора switch |
|
Переполнение пула строковых констант, упростите программу |
|
Невозможно преобразовать к перечислению |
|
Нельзя использовать virtual для данных (членов класса или структуры) |
|
Нельзя вызвать защищенный метод класса |
|
Переопределяемая виртуальная функция возвращает другой тип |
|
Класс нельзя наследовать от структуры |
|
Структуру нельзя наследовать от класса |
|
Конструктор не может быть виртуальным (спецификатор virtual недопустим) |
|
Структура не может иметь виртуальных методов |
|
Функция должна иметь тело |
|
Перегрузка системных функций (функций терминала) запрещена |
|
Спецификатор const недопустим для функций, не являющихся членом класса или структуры |
|
Нельзя менять члены класса в константном методе |
|
Неподходящая инициализирующая последовательность |
|
Пропущено значение по умолчанию для параметра (специфика объявления параметров по умолчанию) |
|
Переопределение параметра по умолчанию (в объявлении и реализации разные значения) |
|
Нельзя вызвать неконстантный метод для константного объекта |
|
Для доступа к членам требуется объект (поставлена точка для не класса/структуры) |
|
Имя уже объявленной структуры нельзя использовать при объявлении |
|
Неразрешенное преобразование (при закрытом наследовании) |
|
Структуры и массивы не могут быть использованы в качестве input-переменных |
|
Спецификатор const недопустим для конструктора/деструктора |
|
Неправильное строковое выражение для типа datetime |
|
Неизвестное свойство (#property) |
|
Некорректное значение для свойства |
|
Некорректный индекс для свойства в #property |
|
Пропущен параметр вызова – < func(x,) > |
|
Объект должен быть передан по ссылке |
|
Массив должен быть передан по ссылке |
|
Функция была декларирована как экспортируемая |
|
Функция не была декларирована как экспортируемая |
|
Экспортировать импортируемую функцию нельзя |
|
Импортируемая функция не может иметь такого параметра (нельзя передавать указатель, класс или структуру, содержащую динамический массив, указатель, класс и т.д.) |
|
Должен быть класс |
|
Секция #import не закрыта |
|
Несоответствие типов |
|
extern-переменная уже инициализирована |
|
Не найдено ни одной экспортируемой функции или стандартной точки входа |
|
Явный вызов конструктора запрещен |
|
Метод был объявлен константным |
|
Метод не был объявлен константным |
|
Некорректный размер ресурсного файла |
|
Некорректное имя ресурса |
|
Ошибка открытия файла ресурса |
|
Ошибка чтения файла ресурса |
|
Неизвестный тип ресурса |
|
Некорректный путь к файлу ресурса |
|
Указанное имя ресурса уже используется |
|
Ожидались параметры макроса |
|
После имени макроса должен быть пробел |
|
Ошибка в описании параметров макроса |
|
Неверное число параметров при использовании макроса |
|
Превышение максимального количества(16) параметров для макроса |
|
Макрос слишком сложный, требуется упрощение |
|
Параметром EnumToString() может быть только перечисление |
|
Имя ресурса слишком длинное |
|
Неподдерживаемый формат изображения (допустим только BMP-формат с глубиной цвета 24 или 32 бита) |
|
Объявление массива внутри оператора запрещено |
|
Функцию можно определить только на глобальном уровне |
|
Данное объявление недопустимо для текущей области видимости (области определения) |
|
Инициализация статичных переменных значениями локальных недопустима |
|
Недопустимое объявление массива объектов, не имеющих конструктора по умолчанию |
|
Список инициализации разрешен только для конструкторов |
|
Отсутствует определение функции после списка инициализации |
|
Список инициализации пуст |
|
Инициализация массива в конструкторе запрещена |
|
В списке инициализации запрещено инициализировать члены родительского класса |
|
Ожидалось выражение целого типа |
|
Требуемый объем памяти для массива превышает максимально допустимое значение |
|
Требуемый объем памяти для структуры превышает максимально допустимое значение |
|
Требуемый объем памяти для переменных, объявленных на глобальном уровне, превышает максимально допустимое значение |
|
Требуемый объем памяти для локальных переменных превышает максимально допустимое значение |
|
Конструктор не определен |
|
Недопустимое имя для файла иконки |
|
Не удалось открыть файла иконки по указанному пути |
|
Файл иконки некорректен и не соответствует формату ICO |
|
Повторная инициализация члена в конструкторе класса/структуры с помощью списка инициализации |
|
Инициализация статических членов в списке инициализации конструктора не допускается |
|
Инициализация нестатического члена класса/структуры на глобальном уровне запрещена |
|
Имя метода класса/структуры совпадает с ранее объявленным именем члена |
|
Имя члена класса/структуры совпадает с ранее объявленным именем метода |
|
Виртуальная функция не может быть объявлена как static |
|
Модификатор const недопустим для статической функции |
|
Конструктор или деструктор не могут быть статическими |
|
Нельзя обращаться к нестатическому члену/методу класса или структуры из статической функции |
|
После ключевого слова operator ожидается перегружаемая операция (+,-,[],++,— и т.д.) |
|
Не все операции можно перегружать в MQL5 |
|
Определение не соответствует объявлению |
|
Указано неверное количество параметров для оператора |
|
Не обнаружено ни одной функции-обработчика события |
|
Методы не могут быть экспортируемыми |
|
Нельзя приводить указатель на константный объект к указателю на неконстантный объект |
|
Шаблоны классов пока не поддерживаются |
|
Перегрузка шаблонов функций пока не поддерживается |
|
Невозможно применить шаблон функции |
|
Неоднозначный параметр в шаблоне функции (подходят несколько типов параметра) |
|
Невозможно определить к какому типу параметра приводить аргумент шаблона функции |
|
Неверное количество параметров в шаблоне функции |
|
Шаблон функции не может быть виртуальным |
|
Шаблоны функций не могут быть экспортированы |
|
Нельзя импортировать шаблоны функций |
|
Структуры, содержащие объекты, недопустимы |
|
Массивы строк и структуры, содержащие объекты, недопустимы |
|
Статический член класса/структуры должен быть явно инициализирован |
|
Ограничение компилятора: строка не может содержать более 65 535 символов |
|
Несогласованные #ifdef/#endif |
|
Результатом выполнения функции не может быть объект класса, так как отсутствует конструктор копирования |
|
Нельзя использовать нестатические члены и/или методы при инициализации статической переменной |
|
OnTesterInit() нельзя использовать без объявления обработчика OnTesterDeinit() |
|
Имя локальной переменной совпадает с именем одного из параметров функции |
|
Нельзя использовать макросы __FUNCSIG__ и __FUNCTION__ вне тела функции |
|
Недопустимый возвращаемый тип. Например, такая ошибка будет выдана для функций, импортированных из DLL, которые возвращают структуру или указатель в качестве результата |
|
Ошибка при использовании шаблона |
|
Не используется |
|
Недопустимый синтаксис при объявлении чисто виртуальной функции, разрешено «=NULL» или «=0» |
|
Только виртуальные функции могут быть объявлены со спецификатором чисто виртуальной функции («=NULL» или «=0») |
|
Нельзя создать экземпляр абстрактного класса |
|
Для динамического приведения с помощью оператора dynamic_cast типом назначения должен быть указатель на пользовательский тип |
|
Ожидается тип «указатель на функцию» |
|
Указатели на методы не поддерживаются |
|
Ошибка – невозможно определить тип указателя на функцию |
|
Приведение типа недоступно из-за закрытого наследования |
|
Переменная с модификатором const должна быть проинициализирована при объявлении |
|
В интерфейсе могут быть объявлены только методы с публичным доступом |
|
Недопустимое вложение интерфейса в другой интерфейс |
|
Интерфейс может наследоваться только от другого интерфейса |
|
Ожидается интерфейс |
|
Интерфейсы поддерживают только публичное наследование |
|
Интерфейс не может содержать члены |
|
Нельзя создавать объекты интерфейса напрямую, только через наследование |
Ошибки времени выполнения
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 |
Не найден файл в директории MQL5\Files для отправки на 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 |
Не упорядоченный по времени массив тиков |
Пользовательские ошибки |
|
|
65536 |
С этого кода начинаются ошибки, задаваемые пользователем |