Files
mql5-skills/skills/mql5/references/book/06-advanced/0567-advanced-python-python-last-error.md
T
2026-06-23 21:47:51 +08:00

1.9 KiB

Error checking: last_error

The last_error function returns information about the last Python error.

int last_error()

Integer error codes differ from the codes that are allocated for MQL5 errors and returned by the standard GetLastError function. In the following table, the abbreviation IPC refers to the term "Inter-Process Communication".

Constant Meaning Description
RES_S_OK 1 Success
RES_E_FAIL -1 Common error
RES_E_INVALID_PARAMS -2 Invalid arguments/parameters
RES_E_NO_MEMORY -3 Memory allocation error
RES_E_NOT_FOUND -4 Requested history not found
RES_E_INVALID_VERSION -5 Version not supported
RES_E_AUTH_FAILED -6 Authorization error
RES_E_UNSUPPORTED -7 Method not supported
RES_E_AUTO_TRADING_DISABLED -8 Algo trading is disabled
RES_E_INTERNAL_FAIL -10000 General internal IPC error
RES_E_INTERNAL_FAIL_SEND -10001 Internal error sending IPC data
RES_E_INTERNAL_FAIL_RECEIVE -10002 Internal error sending IPC data
RES_E_INTERNAL_FAIL_INIT -10003 IPC internal initialization error
RES_E_INTERNAL_FAIL_CONNECT -10003 No IPC
RES_E_INTERNAL_FAIL_TIMEOUT -10005 IPC timeout

In the following script (MQL5/Scripts/MQL5Book/Python/init.py), in the case of an error when connecting to the terminal, we display the error code and exit.

import MetaTrader5 as mt5
# show MetaTrader5 package version
print("MetaTrader5 package version: ", mt5.__version__)  #  5.0.37
   
# let's try to establish a connection or launch the MetaTrader 5 terminal
if not mt5.initialize():
   print("initialize() failed, error code =", mt5.last_error()) 
   quit()
... # the working part of the script will be here
# terminate the connection to the terminal
mt5.shutdown()