コンテンツにスキップ

【コラム】MT5×Python #1 — 役割分担と接続の確認

こんにちは、FXおもしろラボ管理人です。

この記事は MT5 × Python 連載の入口です。最後まで読むと「Python と MT5 をどう分けて考えるか」と「とりあえず接続できたか」を確認できます。出口#8 で「自動化の限界」と別媒体でのまとめ、途中の山場として #7大量パラメータ試行(最適化 XML → Python)があります。全体の地図は 連載マップ をどうぞ。

この記事の3行まとめ

  • 公式の MetaTrader5 は、ターミナルと連携してヒストリカル取得などができる(テスター起動 API はない
  • Windows で 仮想環境を作り、pip install MetaTrader5 まで進める
  • test_mt5.py で USDJPY 等の足が取れれば、接続は成功

正直なところ

プロフィールにも書いた通り、管理人の Python はまだまだです。コードを美しく書けるほどではありません。

検証の記録を公開する以上嘘をつかないのがこのサイトのスタンスです。

  • MT5 のストラテジーテスターで「EA の挙動に近い検証」をしたい → MT5 側が主役
  • チャートを CSV にしたり、表計算やグラフで眺めたい → Python 側が得意

「Python さえあればテスターを無限に回せる」——そうはいきません。公式パッケージに テスターを外から起動する API は載っていない、というのが最初の落とし穴です。だからこの連載では、MT5 で試す → 結果を Python が拾うという筋を大事にします。


1. なぜ役割を分けるのか

ざっくり表にするとこうです。

やりたいこと だいたいどちら
ヒストリカル足の取得、口座情報の読み取り Python(公式 MetaTrader5
ストラテジーテスターでのバックテスト、最適化 MT5 の GUI(手動操作)
テスターをスクリプトだけで何万回も起動 公式では想定外(#8 で触れる)

検証が好きな人ほど、「全部 Python で自動化したい」病になりがちです。
でも 公式の線引きを知らないと、期待だけが先に走ります。

本サイトでは MT5 のテスター/最適化を「正」に近いところに置き、Python は 集計・レポート・後処理に寄せていきます。全体の整理は 連載マップ#6 もあわせて参照してください。


2. 仮想環境を作る(Windows 想定)

グローバルに pip install しすぎると、いつか地獄を見ます。作業フォルダで 仮想環境(venv) を切りましょう。

以降の連載では、各記事の ダウンロードボタン からスクリプトを取得し、以下のようなフォルダ構成で手元に置く前提で進めます。

Text Only
作業フォルダ/            ← ここが「プロジェクトのルート」
├── .venv/              ← 仮想環境(この記事で作成)
└── scripts/
    └── research/
        └── test_mt5.py ← ↓のボタンでダウンロード

test_mt5.py をダウンロード

ダウンロードしたファイルを scripts\research\ フォルダに配置してください。プロジェクトのルートで:

Batchfile
python -m venv .venv
.venv\Scripts\activate
pip install MetaTrader5

3. test_mt5.py で「つながったか」を見る

MT5 ターミナルは起動したままにしておいてください。ログインできる口座が開いている状態が前提です。

Batchfile
python scripts\research\test_mt5.py

バー本数や時刻、スクリプト内で出している指標などが表示されれば、まずは 接続成功です。

仮想環境を有効化したうえで test_mt5.py を実行した例(表示内容は環境・スクリプトで異なります)

ちょい足しの心得

  • 時刻は UTC で出ることが多いです。日本時間に直すなら、自分で +9 時間するなどの変換が必要になります。
  • 週末はヒストリカルが取れない・薄い、など 市場の休みの影響を受けます。うまくいかないときは「土日か?」を疑ってください。

4. 手順の検証チェックリスト(#1 まで)

記事どおりに進めたあと、次を満たせていれば #2 に進めます

  • スクリプト配置 — 上記のダウンロードボタンから test_mt5.py を取得し、scripts\research\ に配置している。コマンドプロンプトの カレントディレクトリscripts フォルダの親(プロジェクトのルート)になっている
  • Pythonpython --version が通る(3.8 以上を推奨)
  • venv.venv\Scripts\activate のあと、プロンプトに (.venv) が付く
  • パッケージ — 仮想環境内で pip install MetaTrader5 済み
  • MT5 — ターミナル起動・口座ログイン済み(ヒストリカル取得に必要なら Market Watch に対象銘柄)
  • 接続確認 — ルートで python scripts\research\test_mt5.py を実行し、エラー終了せずヒストリカル等の表示がある

ここで詰まるときは、いまのフォルダがルートかdir scriptsresearch が見えるか)、MT5 が起動しているかを先に確認してください。#2 以降では pandas / matplotlib など、回ごとに追加入力があります(各記事の冒頭・本文を参照)。


次回予告

#2 では、取得した足を pandas の DataFrame に載せ、CSV と matplotlib の PNG まで一気に出す流れ(mt5_rates_to_dataframe.py)に進みます。


免責の一文

本記事は 検証・学習用の技術メモであり、投資助言ではありません。FX には損失リスクがあります。最終判断はご自身の責任でお願いします。


連載マップ #2 へ

— SPONSORED —