2024.05
林貴晴/AMSER Inc.
MetaTrader 5(MT5)とPythonを連携させるために、専用のPythonパッケージが用意されています。このパッケージを利用することで、MT5サーバーへの接続、各種情報の取得、価格データの抽出、そして取引操作を行うことが可能です。Pythonを用いてMT5を操作する最大の利点は、Pythonが豊富なライブラリを持っていることです。これらのライブラリを活用することで、取引データの処理、統計的分析、さらに機械学習モデルの開発など、複雑なタスクを簡単に実行できます。本記事では、初期設定、MT5との接続方法、マーケット情報の取得とその切断プロセスについて詳しく説明します。
PythonとMT5を連携させるには、まずPython用MetaTraderパッケージをインストールする必要があります。このパッケージは、MT5の各機能へのアクセスを可能にします。
インストール
pip install MetaTrader5
もし不具合が発生する場合や、しばらく使用していなかった場合は、インストールされているパッケージのバージョンを確認してください。
バージョンの確認
import MetaTrader5 as mt5 print("MetaTrader5 version:", mt5.__version__)
最新バージョンにアップグレード
pip install --upgrade MetaTrader5
MT5に接続することで、各種情報の取得が可能になります。接続は、起動しているMT5に接続されます。複数のMT5が起動している場合は、最後に起動したMT5に接続されます。MT5が起動していない場合は、最後にインストールしたMT5に自動で接続されます。
接続
import MetaTrader5 as mt5 mt5.initialize()
接続が成功した場合はTrueが返ってきます。
特定のMT5に接続したい場合は、インストールパスを指定することができます。パスはフォワードスラッシュ「/」を使用してフルパスで指定します。
パスを指定した接続
import MetaTrader5 as mt5 mt5.initialize('C:/Program Files/Phillip Securities MT5 Terminal/terminal64.exe')
接続先のパスはterminal_infoから取得できます。
接続したMT5の確認
print(mt5.terminal_info().path)
マーケットデータの取得
MT5に接続した後、特定の通貨ペアの価格データを取得することができます。以下の例では、EUR/USDの最新の価格データを取得します。
マーケット情報の取得例
# EUR/USDのシンボル サフィックスが必要です。 symbol = "EURUSD.ps01" # マーケット情報を取得 quote = mt5.symbol_info_tick(symbol) # 取得したBid価格とAsk価格を表示 print(f"EUR/USDのBid価格: {quote.bid}, Ask価格: {quote.ask}")
各通貨ペアには、取引プラットフォームに応じたサフィックスが必要です。例えば、フィリップ証券を使用している場合、EUR/USDは「EURUSD.ps01」として指定します。
切断
作業を終了する際には、MT5からの切断を忘れずに行います。
切断
mt5.shutdown()
この記事で紹介したコードは基本的なものですが、MT5とPythonを使用することで、さらに複雑なトレーディング戦略や自動化スクリプトを実装することが可能です。
林 貴晴(AMSER株式会社代表取締役)
内資系薬品会社で約10年勤務の後、
外資系製薬会社(現IQVIA及びGSK)で合計約10年を勤務
その後EA AMSERを開発し、その成績を評価され、株式会社ゴゴジャンの部長として抜擢。
現在はAMSER株式会社代表取締役。