Обработка ошибок


например, forex

Как яуже неоднократно упоминал впредыдущих выпусках, если какая-то функция вернула ошибку, токод этой ошибки можно получить спомощью функции GetLastError():

   int GetLastError()

После вызова этой функции код последней ошибки обнуляется, поэтому если впромежутке между двумя вызовами функции GetLastError() непроизошло новой ошибки, товторой раз функция вернет 0.

Функция GetLastError() возвращает числовой код ошибки. Еслиже Выхотите получить словесное описание ошибки, тоиспользуйте функцию ErrorDescription(), описанную вфайле stdlib.mqh:

   string ErrorDescription(int error_code)
     {
      string error_string;
   //----
      switch(error_code)
        {
         //---- codes returned from trade server
         case 0:
           case 1:   error_string="no error";            break;
           case 2:   error_string="common error";   break;
            ...
        }
   //----
      return(error_string);
     }

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

КонстантаЗначениеОписание
ERR_NO_ERROR0 Нет ошибки
ERR_NO_RESULT1 Нет ошибки, норезультат неизвестен
ERR_COMMON_ERROR2 Общая ошибка
ERR_INVALID_TRADE_PARAMETERS3 Неправильные параметры
ERR_SERVER_BUSY4 Торговый сервер занят
ERR_OLD_VERSION5 Старая версия клиентского терминала
ERR_NO_CONNECTION6 Нет связи сторговым сервером
ERR_NOT_ENOUGH_RIGHTS7 Недостаточно прав
ERR_TOO_FREQUENT_REQUESTS8 Слишком частые запросы
ERR_MALFUNCTIONAL_TRADE9 Недопустимая операция нарушающая функционирование сервера
ERR_ACCOUNT_DISABLED64 Счет заблокирован
ERR_INVALID_ACCOUNT65 Неправильный номер счета
ERR_TRADE_TIMEOUT128 Истек срок ожидания совершения сделки
ERR_INVALID_PRICE129 Неправильная цена
ERR_INVALID_STOPS130 Неправильные стопы
ERR_INVALID_TRADE_VOLUME131 Неправильный объем
ERR_MARKET_CLOSED132 Рынок закрыт
ERR_TRADE_DISABLED133 Торговля запрещена
ERR_NOT_ENOUGH_MONEY134 Недостаточно денег для совершения операции
ERR_PRICE_CHANGED135 Цена изменилась
ERR_OFF_QUOTES136 Нет цен
ERR_BROKER_BUSY137 Брокер занят
ERR_REQUOTE138 Новые цены
ERR_ORDER_LOCKED139 Ордер заблокирован иуже обрабатывается
ERR_LONG_POSITIONS_ONLY_ALLOWED140 Разрешена только покупка
ERR_TOO_MANY_REQUESTS141 Слишком много запросов
ERR_TRADE_MODIFY_DENIED145 Модификация запрещена, так как ордер слишком близок крынку
ERR_TRADE_CONTEXT_BUSY146 Подсистема торговли занята
ERR_TRADE_EXPIRATION_DENIED147 Использование даты истечения ордера запрещено брокером
ERR_TRADE_TOO_MANY_ORDERS148 Количество открытых иотложенных ордеров достигло предела, установленного брокером


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

КонстантаЗначениеОписание
ERR_NO_MQLERROR4000 Нет ошибки
ERR_WRONG_FUNCTION_POINTER4001 Неправильный указатель функции
ERR_ARRAY_INDEX_OUT_OF_RANGE4002 Индекс массива— вне диапазона
ERR_NO_MEMORY_FOR_FUNCTION_CALL_STACK4003 Нет памяти для стека функций
ERR_RECURSIVE_STACK_OVERFLOW4004 Переполнение стека после рекурсивного вызова
ERR_NOT_ENOUGH_STACK_FOR_PARAMETER4005 Настеке нет памяти для передачи параметров
ERR_NO_MEMORY_FOR_PARAMETER_STRING4006 Нет памяти для строкового параметра
ERR_NO_MEMORY_FOR_TEMP_STRING4007 Нет памяти для временной строки
ERR_NOT_INITIALIZED_STRING4008 Неинициализированная строка
ERR_NOT_INITIALIZED_ARRAYSTRING 4009 Неинициализированная строка вмассиве
ERR_NO_MEMORY_FOR_ARRAYSTRING4010 Нет памяти для строкового массива
ERR_TOO_LONG_STRING4011 Слишком длинная строка
ERR_REMAINDER_FROM_ZERO_DIVIDE4012 Остаток отделения наноль
ERR_ZERO_DIVIDE4013 Деление наноль
ERR_UNKNOWN_COMMAND4014 Неизвестная команда
ERR_WRONG_JUMP4015 Неправильный переход
ERR_NOT_INITIALIZED_ARRAY4016 Неинициализированный массив
ERR_DLL_CALLS_NOT_ALLOWED4017 Вызовы DLL неразрешены
ERR_CANNOT_LOAD_LIBRARY4018 Невозможно загрузить библиотеку
ERR_CANNOT_CALL_FUNCTION4019 Невозможно вызвать функцию
ERR_EXTERNAL_EXPERT_CALLS_NOT_ALLOWED4020 Вызовы внешних библиотечных функций неразрешены
ERR_NOT_ENOUGH_MEMORY_FOR_RETURNED_STRING4021 Недостаточно памяти для строки, возвращаемой изфункции
ERR_SYSTEM_BUSY4022 Система занята
ERR_INVALID_FUNCTION_PARAMETERS_COUNT4050 Неправильное количество параметров функции
ERR_INVALID_FUNCTION_PARAMETER_VALUE4051 Недопустимое значение параметра функции
ERR_STRING_FUNCTION_INTERNAL_ERROR4052 Внутренняя ошибка строковой функции
ERR_SOME_ARRAY_ERROR4053 Ошибка массива
ERR_INCORRECT_SERIES_ARRAY_USING4054 Неправильное использование массива-таймсерии
ERR_CUSTOM_INDICATOR_ERROR4055 Ошибка пользовательского индикатора
ERR_INCOMPATIBLE_ARRAYS4056 Массивы несовместимы
ERR_GLOBAL_VARIABLES_PROCESSING_ERROR4057 Ошибка обработки глобальныех переменных
ERR_GLOBAL_VARIABLE_NOT_FOUND4058 Глобальная переменная необнаружена
ERR_FUNCTION_NOT_ALLOWED_IN_TESTING_MODE4059 Функция неразрешена втестовом режиме
ERR_FUNCTION_NOT_CONFIRMED4060 Функция неподтверждена
ERR_SEND_MAIL_ERROR4061 Ошибка отправки почты
ERR_STRING_PARAMETER_EXPECTED4062 Ожидается параметр типа string
ERR_INTEGER_PARAMETER_EXPECTED4063 Ожидается параметр типа integer
ERR_DOUBLE_PARAMETER_EXPECTED4064 Ожидается параметр типа double
ERR_ARRAY_AS_PARAMETER_EXPECTED4065 Вкачестве параметра ожидается массив
ERR_HISTORY_WILL_UPDATED4066 Запрошенные исторические данные всостоянии обновления
ERR_TRADE_ERROR4067 Ошибка при выполнении торговой операции
ERR_END_OF_FILE4099 Конец файла
ERR_SOME_FILE_ERROR4100 Ошибка при работе сфайлом
ERR_WRONG_FILE_NAME4101 Неправильное имя файла
ERR_TOO_MANY_OPENED_FILES4102 Слишком много открытых файлов
ERR_CANNOT_OPEN_FILE4103 Невозможно открыть файл
ERR_INCOMPATIBLE_ACCESS_TO_FILE4104 Несовместимый режим доступа кфайлу
ERR_NO_ORDER_SELECTED4105 Ниодин ордер невыбран
ERR_UNKNOWN_SYMBOL4106 Неизвестный символ
ERR_INVALID_PRICE_PARAM4107 Неправильный параметр цены для торговой функции
ERR_INVALID_TICKET4108 Неверный номер тикета
ERR_TRADE_NOT_ALLOWED4109 Торговля неразрешена
ERR_LONGS_NOT_ALLOWED4110 Длинные позиции неразрешены
ERR_SHORTS_NOT_ALLOWED4111 Короткие позиции неразрешены
ERR_OBJECT_ALREADY_EXISTS4200 Объект уже существует
ERR_UNKNOWN_OBJECT_PROPERTY4201 Запрошено неизвестное свойство объекта
ERR_OBJECT_DOES_NOT_EXIST4202 Объект несуществует
ERR_UNKNOWN_OBJECT_TYPE4203 Неизвестный тип объекта
ERR_NO_OBJECT_NAME4204 Нет имени объекта
ERR_OBJECT_COORDINATES_ERROR4205 Ошибка координат объекта
ERR_NO_SPECIFIED_SUBWINDOW4206 Ненайдено указанное подокно
ERR_SOME_OBJECT_ERROR4207 Ошибка при работе собъектом

Перейти к главе «Секреты правильной торговли».
 
+7 (495) 710-76-76
8 (800) 200-01-31
по России бесплатно

закрыть

Вход в личный кабинет

Для счета alpari.classic введите номер счета (буква и 4 цифры) и пароль в ЛК.

Для счетов alpari.micro и alpari.partner введите логин и пароль в МТ.

Зарегистрироваться!Забыли пароль?

 
Rambler's Top100