Проверка ошибок: last_error

Функция last_error возвращает информацию о последней ошибке Python.

int last_error()

Целочисленные коды ошибок отличаются от тех, что выделены для ошибок MQL5 и возвращаются стандартной функцией GetLastError. В следующей таблице под сокращением IPC подразумевается термин "межпроцессного взаимодействия" (Inter-Process Communication).

Константа

Значение

Описание

RES_S_OK

1

Успех

RES_E_FAIL

-1

Общая ошибка

RES_E_INVALID_PARAMS

-2

Неверные аргументы/параметры

RES_E_NO_MEMORY

-3

Ошибка выделения памяти

RES_E_NOT_FOUND

-4

Запрошенная история не найдена

RES_E_INVALID_VERSION

-5

Версия не поддерживается

RES_E_AUTH_FAILED

-6

Ошибка авторизации

RES_E_UNSUPPORTED

-7

Метод не поддерживается

RES_E_AUTO_TRADING_DISABLED

-8

Алготрейдинг отключен

RES_E_INTERNAL_FAIL

-10000

Общая внутренняя ошибка IPC

RES_E_INTERNAL_FAIL_SEND

-10001

Внутренняя ошибка отправки данных IPC

RES_E_INTERNAL_FAIL_RECEIVE

-10002

Внутренняя ошибка отправки данных IPC

RES_E_INTERNAL_FAIL_INIT

-10003

Внутренняя ошибка инициализации IPC

RES_E_INTERNAL_FAIL_CONNECT

-10003

IPC отсутствует

RES_E_INTERNAL_FAIL_TIMEOUT

-10005

Таймаут IPC

В следующем скрипте (MQL5/Scripts/MQL5Book/Python/init.py) в случае ошибки при подключении к терминалу, выводим код ошибки и завершаем работу.

import MetaTrader5 as mt5
# покажем версию пакета MetaTrader5 
print("MetaTrader5 package version: ", mt5.__version__)  #  5.0.37
   
# пробуем установить подключение или запустить терминал MetaTrader 5
if not mt5.initialize():
   print("initialize() failed, error code =", mt5.last_error()) 
   quit()
... # рабочая часть скрипта будет здесь
# завершаем подключение к терминалу
mt5.shutdown()