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

MQL5サンプルコード

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

スポンサーリンク

MT5(MQL5) Python用MetaTrader関数のlogin

概要

取引口座に接続(ログイン)します。

呼び出し

取引口座「12345」のみを指定して接続する。この方法を使うにはMetaTraderにトレード口座のログイン情報(パスワードなど)を保存するように設定している必要があります。

login(12345)

MetaQuotes-Demoサーバ(MT5のデモ口座サーバ)の取引口座「12345」にパスワード「hogehoge」で接続する。

login(12345, password='hogehoge', server='MetaQuotes-Demo')

パラメータ

login(
  login,                    // 口座番号
  password="PASSWORD",      // パスワード
  server="SERVER",          // ターミナルで指定されたサーバ名
  timeout=TIMEOUT           // タイムアウト
  )
  • login
    [必須] 取引口座番号。名前なし必須パラメータ。
  • password
    [任意] 取引口座のパスワード。名前付きオプションパラメータ。パスワードが設定されていない場合、ターミナルデータベースに保存されているパスワードが自動的に適用されます。
  • server
    [任意] 取引サーバ名。名前付きオプションパラメータ。サーバが設定されていない場合、最後に使用されたサーバが自動的に適用されます。
  • timeout=TIMEOUT
    [任意] ミリ秒単位の接続タイムアウトです。名前付きオプションパラメータ。指定されていない場合、60,000ミリ秒 (60秒)の値が適用されます。指定された時間内に接続が確立されない場合、呼び出しは強制的に終了され、例外が生成されます。

戻り値

取引口座に接続できた場合はtrue、それ以外の場合はfalseが返されます。

サンプルコード

取引口座にログインするサンプルコードです。接続に成功した場合は口座情報を、失敗した場合はlast_error()を使ってエラー情報を出力します。

import MetaTrader5 as mt5

mt5.initialize()

account=58091308
password='fakepassword'
server='MetaQuotes-Demo'

print(f'# サーバ{server}の取引口座{account}に接続')
print(f'# mt5.login({account}, server={server})')
authorized=mt5.login(account, server=server)

if authorized:
  print(f'# 取引口座{account}に接続成功')
  print(f'# 口座情報: ', mt5.account_info())
else:
  print(f'# 取引口座{account}に接続失敗')
  print(f'# エラー情報: ', mt5.last_error())

print('\n')

print(f'# 取引口座{account}にパスワード{password}で接続')
print(f'# mt5.login({account}, password={password})')
authorized=mt5.login(account, password=password)

if authorized:
  print(f'# 取引口座{account}に接続成功')
  print(f'# 口座情報: ', mt5.account_info())
else:
  print(f'# 取引口座{account}に接続失敗')
  print(f'# エラー情報: ', mt5.last_error())

mt5.shutdown()

結果

前半は取引口座へのログインに成功したケース、後半は失敗したケースをそれぞれ出力しています。失敗ケースでは意図的に誤ったパスワードを指定して、接続失敗時のエラー情報を出力しています。

# サーバMetaQuotes-Demoの取引口座58091308に接続
# mt5.login(58091308, server=MetaQuotes-Demo)
# 取引口座58091308に接続成功
# 口座情報:  AccountInfo(login=58091308, trade_mode=0, leverage=100, limit_orders=200, margin_so_mode=0, trade_allowed=True, trade_expert=True, margin_mode=2, currency_digits=0, fifo_close=False, balance=100000.0, credit=0.0, profit=0.0, equity=100000.0, margin=0.0, margin_free=100000.0, margin_level=0.0, margin_so_call=50.0, margin_so_so=30.0, margin_initial=0.0, margin_maintenance=0.0, assets=0.0, liabilities=0.0, commission_blocked=0.0, name='demo demo', server='MetaQuotes-Demo', currency='JPY', 
company='MetaQuotes Software Corp.')


# 取引口座58091308にパスワードfakepasswordで接続
# mt5.login(58091308, password=fakepassword)
# 取引口座58091308に接続失敗
# エラー情報:  (-2, 'Terminal: Invalid params')

コメント

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