MetaTrader5 のための”Pythonのパッケージ”がリリースされました。
今回はPythonのAPIを利用して、MT5と連携してみましょう。
Pythonでのパッケージを使用することで、 PythonからMT5のプログラムを呼び出すことができるようになりました。
※今回はMQLではなくPythonのプログラム例の紹介となります。
Pythonの実行環境の準備 |
まずPythonを使用する環境を構築します。
1.最新バージョンのPython 3.7をダウンロードします。 https://www.python.org/downloads/windows
2.Pythonをインストールする際には「Add Python 3.7 to PATH%」をチェックしてPythonスクリプトをコマンドラインから実行できるようにします。
3.コマンドプロンプトを起動し、MetraTrader 5モジュールをコマンドラインからインストールします。
参考:Python公式サイト MT5パッケージ本体についてhttps://pypi.org/project/MetaTrader5/#description
4.続いて今回使用する pytz(時間関連処理) パッケージををインストールします。
1 2 |
pip install pytz |
1. Pythonの実行プログラムファイルの作成 |
続いてPythonの実行プログラムファイルを作成します。
1.実行ファイルの作成
お使いのパソコンのテキストエディタ―(もしくはメモ帳)を開き 、Pythonの実行ファイルの拡張子である、”.py”の拡張子で保存します。
後ほど紹介するコードを今回作成したファイルにコピー&貼り付けを行い保存します。
2.Pythonのプログラムの中身について
PythonからMT5に連携するプログラムとして、複数の方法でバー情報、Tick情報を取得する方法を紹介します。
実際のプログラムの一連の処理としては次のような構成で作成します。
1.MT5を起動
2.データを取得
3.MT5とのセッションをクローズ
これから紹介するコードは全て同じファイルに記載します。
2.1 使用するパッケージを設定
1 2 3 4 |
# 使用するパッケージをインポート from MetaTrader5 import * from datetime import datetime from pytz import timezone |
2.2 MT5への接続およびデータ取得
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
utc_tz = timezone('UTC') # MetaTrader 5に接続する MT5Initialize() # MetaTrader5が取引サーバに接続するのを待って、環境を同期する MT5WaitForTerminal() # 接続状態とパラメータをリクエストする print(MT5TerminalInfo()) # MetaTrader 5バージョンについてのデータを取得する print(MT5Version()) # EURJPYから1,000ティックをリクエストする EURJPY_ticks = MT5CopyTicksFrom("EURJPY", datetime(2019,4,1,0), 1000, MT5_COPY_TICKS_ALL) print('EURJPY_ticks(', len(EURJPY_ticks), ')') # Tick data for val in EURJPY_ticks[:10]: print(val) # MetaTrader 5への接続をシャットダウンする MT5Shutdown() |
MQL5:Python 関数仕様
https://www.mql5.com/ja/docs/integration/python_metatrader5
2. Python ファイルプログラムの実行 |
コマンドプロンプトを起動して、python + “作成した実行ファイルのパス” とコマンドを入力して実行します。
実行前の注意事項:
事前にMT5がご利用いただける取引サーバーに1度ログインをしている必要があります。また接続先の証券会社が下記のコード内に記載したFXの取引銘柄を提供している必要があります。
本プログラムの実行結果は下記の情報を出力します。
Tick データ(コマンドプロンプト)
- 投稿タグ
- MQL5