MetaTrader 5は強力なトレーディングプラットフォームで、トレードの自動化が可能です。一方、Pythonは柔軟で様々なデータ解析や自動化のツールをサポートするプログラミング言語です。この二つを連携させることで、Pythonの豊富なライブラリー(Pandas, NumPy, Matplotlibなど)を使った高度なデータ解析が可能です。また、自動トレードも外部から行うよりも簡潔に処理できます。そのため、市場データを監視し、即座に反応するシステムの構築が可能となります。
必要なツールのインストール

これまでは、PythonからMT5に入っていたのね。今度は、MT5のMEでPythonを動かすわけね。

そういう事だチュー。
MetaTrader 5のインストール
MetaTrader 5の公式サイトからインストーラーをダウンロードし、インストールします。

未来は、XMのメタトレーダー5を使っているから、それを使っていいのね。

その通り、すでにインストールしている人は、それを使ってチュー。
Pythonのインストール
Pythonの公式サイトから最新のPythonをダウンロードし、インストールします。

未来は、Pythonもインストールして使っているから、それを使っていいのね。

その通り、すでにインストールしている人は、それを使ってチュー。
MQL5 MetaEditorの設定
1. MetaEditorの起動
MetaTrader 5の「ツール」タブから「MetaQuotes Language Editor」を選択して、MetaEditorを起動します。

MetaEditorのメインメニューから「ツール」→「オプション」を選択します。

「オプション」ウインドウが開いたら、「ディレクトリ」タブを選択し、MQL5のスクリプト、エキスパート、およびインディケータの保存先ディレクトリが正しいことを確認します。

私は、FXEA開発用にのフォルダのPythonを使うわね。

MQL5では、パス指定されたフォルダのpython.exeと連携するから、フォルダ名は好みでいいけど、exe ファイル名はそのままで使うチュー。


これで、基本的な環境準備は大丈夫ね。

Pythonで自動売買に挑戦でインストールしたMetaTrader5パッケージもコンパイルするPythonに、インストールをわすれないでチュー。
MetaTrader 5用のPythonパッケージのインストール
PythonではMetaTrader 5用のMetaTrader5パッケージを使用します。以下のコマンドでインストールします。
pip install MetaTrader5

私は、複数のPythonを使っているから、
python.exe -m pip install MetaTrader5
とインストールしたわ。
MetaTrader 5の準備
MetaTrader 5のアルゴリズム取引を許可する
- MT5のメニューバーから「ツール」→「オプション」を選択します。
- 「エキスパートアドバイザ」タブを開きます。
- 「アルゴリズム取引を許可する」にチェックを入れ、その下の4つには✓がないことを確認して「OK」をクリックします。

Pythonスクリプトを作る

いよいよ、PythonでEAを作ることができるのね。

もう少しだチュー。
MetaEditorの連携手順
MQL5とPythonを連携するためには、以下のような手順が必要です。
パイプ通信の設定
パイプ通信を使うことで、MQL5とPythonの間でデータをやり取りすることができます。
MetaEditorの新規作成を開きます。


Pythonで自動売買で作った口座の情報をえるPythonプログラムを使います。
名前を適当につけます。(python-2bai)「著作者」「リンク」はなくてもOK

必要なライブラリのインストールを選びます。今回は、MetaTrader5だけで大丈夫。

完了を押すと、Scriptのフォルダにpython-2baiのファイルができています。

Pythonでプログラムミング
いよいよPythonでのプログラミングですが、前回使った口座情報を取得するプログラムを使います。

この中の、下の部分にPythonのプログラムを書いていきます。
# you code here
#
前回のプログラムをコピーします。
重複している部分を削除します。アカウント等も要らないので削除します。
import MetaTrader5 as mt5
mt5.initialize()
import os
import MetaTrader5 as mt5
from dotenv import load_dotenv
# .envファイルの読み込み
load_dotenv()
# アカウント、パスワード、サーバー情報を設定(あなたのブローカーの情報を使用)
account_id = os.environ.get("MT5_ACCOUNT_ID") # あなたのアカウントIDを取得
password = os.environ.get("MT5_PASSWORD") # あなたのパスワードを取得
server = os.environ.get("MT5_SERVER") # あなたのサーバー名を取得
# MetaTrader 5 の初期化
if not mt5.initialize():
print("MetaTrader 5 の初期化に失敗しました")
mt5.shutdown()
exit()
# アカウントにログイン
login_success = mt5.login(int(account_id), password, server)
if login_success:
print("ログインに成功しましたチュー")
else:
print("ログインに失敗しましたチュー")
# 接続を確認するために口座情報を取得
account_info = mt5.account_info()
if account_info is None:
print("口座情報の取得に失敗しましたチュー")
else:
# 口座情報を表示
print(f"口座番号: {account_info.login}")
print(f"残高: {account_info.balance}")
print(f"証拠金: {account_info.margin}")
# MetaTrader 5からの切断
mt5.shutdown()#
mt5.shutdown()
整理すると、すでに口座にログインしていますので、口座情報だけを表示するプログラムです。
import MetaTrader5 as mt5
mt5.initialize()
import os
# MetaTrader 5 の初期化
if not mt5.initialize():
print("MetaTrader 5 の初期化に失敗しました")
mt5.shutdown()
exit()
# 接続を確認するために口座情報を取得
account_info = mt5.account_info()
if account_info is None:
print("口座情報の取得に失敗しましたチュー")
else:
# 口座情報を表示
print(f"口座番号: {account_info.login}")
print(f"残高: {account_info.balance}")
print(f"証拠金: {account_info.margin}")
# MetaTrader 5からの切断
mt5.shutdown()#
ファイルを保存しておきます。

Pythonプログラムの実行
MetaTrader5上でPythonプログラムを実行してみます。実行したいpyファイルを選び、MetaEditorのコンパイルをクリックします。

成功すると、下の「ジャーナル」に口座番号と残高、証拠金が表示されます。


こんなに簡単に、MetaEditorでPythonプログラムを使うことができるのね。


コメント