43 lines
1.9 KiB
Markdown
43 lines
1.9 KiB
Markdown
# 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](/en/book/common/environment/env_last_error) 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()
|
|||
|
|
|
|||
|
|
```
|