サンプルコード 一覧へ戻る

MQL5サンプルコード

【MT5(MQL5)サンプルコード】last_error【Python用MetaTrader関数】

スポンサーリンク / Sponsored links

MT5(MQL5) Python用MetaTrader関数のlast_error

概要

プログラム実行中に発生した直近のエラーを取得します。MetaTrader 5ライブラリ関数の実行に失敗した場合にエラーコードを取得できます。

呼び出し

last_error()

戻り値

最後のエラーコード(int)と説明(str)をタプルとして返します。取得される値はGetLastError()に似ていますが、独自のエラーコードのみに適用されます。

定数説明
RES_S_OK1一般的な成功
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のipcなし
RES_E_INTERNAL_FAIL_TIMEOUT-10005内部タイムアウト

サンプルコード

エラーを取得して出力します。要素それぞれの型も調べます。

import MetaTrader5 as mt5

mt5.initialize()

last_error = mt5.last_error()

print('# そのまま出力する')
print(last_error, '# last_error')
print('\n')

print('# 型(type)を調べる')
print(type(last_error), '# type(last_error)')
print('\n')

print('# タプルから要素を一つずつ取り出す')
for item in last_error:
    print(item, '# item value')
    print(type(item), '# type(item)')
print('\n')


print('# 誤ったパスワードで取引口座ログインを実行してlast_error()がどのようになるか確認してみる')
print("# mt5.login(58091308, 'fakepassword')")
authorized = mt5.login(58091308, 'fakepassword')

print('ログイン結果: ', authorized, '# Falseは口座接続失敗')

print('# last_error()を取得する')
print("# last_error = mt5.last_error()")
last_error = mt5.last_error()

print('# そのまま出力する')
print(last_error, '# last_error')
print('\n')

mt5.shutdown()

結果

実行に成功していた場合は1(=成功)が返されます。

取引口座へのログインパスワードを意図的に間違えてlast_error()の結果を確認すると、結果は-2(Terminal: Invalid params)が返りました。

# そのまま出力する
(1, 'Success') # last_error


# 型(type)を調べる
<class 'tuple'> # type(last_error)


# タプルから要素を一つずつ取り出す
1 # item value
<class 'int'> # type(item)
Success # item value
<class 'str'> # type(item)


# 誤ったパスワードで取引口座ログインを実行してlast_error()がどのようになるか確認してみる
# mt5.login(58091308, 'fakepassword')
ログイン結果:  False # Falseは口座接続失敗
# last_error()を取得する
# last_error = mt5.last_error()
# そのまま出力する
(-2, 'Terminal: Invalid params') # last_error

コメント / Comments

タイトルとURLをコピーしました