最終更新: 2026年6月
MT5とPythonを組み合わせてAI自動売買を始めたい——。そう考えたときに最初の壁になるのが環境構築だ。「どのPythonバージョンを使えばいいか」「VPSは必要か」「MT5側でどんな設定が必要か」といった疑問が次々と出てくる。
本記事では、MT5 × Python環境を一から構築するための手順を整理する。コーディングそのものより環境の準備に時間がかかるのがシステムトレードの常なので、ここを丁寧に押さえておくことが後々の開発速度を左右する。環境構築で躓くと、本来やりたいはずの戦略実装やバックテストに着手するまでに数日を費やすこともある。逆に言えば、ここをスムーズに通過できれば、その後の開発体験は大きく改善される。
免責事項: 本記事は技術情報の提供を目的としています。FX取引には元本割れのリスクがあります。投資判断は自己責任でお願いします。
環境構築の全体像
MT5 × Python環境は以下のコンポーネントで構成される。
[Pythonスクリプト]
↕(MetaTrader5ライブラリ経由)
[MT5ターミナル(Windows上)]
↕(ブローカーのサーバーに接続)
[FXブローカー]
重要な制約として、MetaTrader5 PythonライブラリはWindowsにのみ対応している。macOSやLinux(WSL含む)では動作しないため、Windows環境が前提となる。開発用マシンがMacの場合はクラウドのWindowsサーバー(VPS)を使う方法が現実的だ。
この3層構造を理解しておくことは重要だ。PythonスクリプトはMT5ターミナルを介してブローカーのサーバーと通信する。つまり、MT5が起動していなければPythonスクリプトは何もできない。ローカルPC上で開発するときも、VPS上で本番稼働させるときも、この原則は変わらない。
環境構築で多くの人が躓くのは「Pythonはインストールしたが、MT5の設定を忘れていた」「仮想環境を使わずにライブラリを入れたらバージョン競合した」という2点だ。それぞれStep 2とStep 4で詳しく対処法を解説する。
Step 1: Pythonのインストール
公式サイト(https://www.python.org/)からPythonをダウンロードする。バージョンは3.10〜3.11系が安定しており、MetaTrader5ライブラリとの互換性も確認が取れている。
インストール時の注意点:
- 「Add Python to PATH」のチェックを必ず入れる(後でコマンドプロンプトからpythonコマンドが使えなくなる)
- インストール先にスペースや日本語を含むパスは避ける
インストール確認:
python --version
# Python 3.11.x と表示されればOK
pip --version
# pip 24.x.x と表示されればOK
Pythonのインストール先は C:\Python311\ のようなシンプルなパスが望ましい。C:\Users\ユーザー名\AppData\... のような深い階層にインストールすると、後からVSCodeなどのエディターが認識しにくくなることがある。また、Windowsの「Pythonバージョン管理」機能(Microsoft Store版Python)がインストールされている場合は、コマンドプロンプトでのpythonコマンドがStore版に向いてしまうことがあるため、設定を確認しておくと良い。
Step 2: MT5本体のインストールとブローカー接続
MetaTrader5のインストーラーは、利用するブローカーのサイトからダウンロードするのが基本だ(MetaQuotes社の公式版もあるが、ブローカー版はそのまま口座接続が設定されている)。
インストール後、MT5を起動してブローカーの口座にログイン。デモ口座で動作確認を行ってから本番口座に移行することを強く推奨する。
MT5側でPython連携を有効にするための設定:
- MT5メニュー →「ツール」→「オプション」 2.「EA」タブを開く 3.「自動売買を許可する」にチェック 4.「外部Python APIを介したアルゴリズム取引を無効にする」のチェックを外す(無効化しない)
この設定をせずにPythonから接続しようとすると、mt5.initialize() が False を返すことがある。
この設定ミスは環境構築において最も多い躓きポイントのひとつだ。MT5のUIは直感的でない部分があるため、上記の手順を画面を見ながら一つひとつ確認することを推奨する。また、ブローカーによってはデモ口座とリアル口座でサーバーが異なる場合があり、接続先のサーバー名も確認しておく必要がある。
ブローカー選びの観点でも注意が必要だ。MT5に対応しているブローカーでも、Python API経由での自動注文を制限しているケースがまれにある。利用を検討しているブローカーのサポートに事前確認するか、デモ口座で動作を確かめてから本番口座を開設するのが安全だ。
Step 3: 必要なPythonライブラリのインストール
pip install MetaTrader5 pandas numpy scikit-learn matplotlib pytz
各ライブラリの役割:
| ライブラリ | 役割 | |---|---| | MetaTrader5 | MT5との接続・データ取得・注文送信 | | pandas | 時系列データの操作 | | numpy | 数値計算 | | scikit-learn | 機械学習モデルの実装 | | matplotlib | チャート・グラフの描画 | | pytz | タイムゾーン変換 |
インストール後の動作確認:
import MetaTrader5 as mt5
# MT5への接続テスト
if mt5.initialize():
print("MT5接続成功")
print("バージョン:", mt5.version())
account_info = mt5.account_info()
print("口座残高:", account_info.balance)
mt5.shutdown()
else:
print("接続失敗:", mt5.last_error())
mt5.initialize() が True を返せば環境構築は成功だ。
上記の接続テストを実行する際は、MT5ターミナルが起動済みでブローカー口座にログインしている状態であることが前提だ。MT5が起動していない状態でPythonスクリプトを実行しても initialize() は False を返す。この仕様を知らないと「ライブラリのインストールが失敗した」と誤解しがちなので注意が必要だ。
ライブラリのバージョンについては、MetaTrader5ライブラリ自体のバージョンと、それを使うPythonのバージョンの組み合わせに注意が必要だ。基本的には pip install MetaTrader5 で最新版がインストールされるが、scikit-learnやpandasのバージョン依存関係で競合が発生することがある。そのような場合のために、Step 4で解説する仮想環境の利用が効果的だ。
Step 4: 仮想環境の作成(推奨)
プロジェクトごとにPythonの仮想環境を作るのが開発の定石だ。ライブラリのバージョン競合を防ぎ、環境の再現性を高める。
# 仮想環境の作成
python -m venv mt5_env
# 仮想環境の有効化(Windows)
mt5_env\Scripts\activate
# 有効化後にライブラリをインストール
pip install MetaTrader5 pandas numpy scikit-learn
仮想環境を使っている場合、MT5本体はシステムにインストールされているものを参照する(仮想環境内にMT5本体をインストールするわけではない)。
仮想環境を使う最大のメリットは、プロジェクトごとにライブラリのバージョンを独立管理できることだ。たとえば、MT5自動売買プロジェクトでは scikit-learn 1.3 を使い、別のデータ分析プロジェクトでは scikit-learn 1.5 を使う、といった使い分けが可能になる。仮想環境なしでグローバルにインストールすると、一方のプロジェクトを更新したときに他方が壊れるリスクがある。
仮想環境の作成場所は、プロジェクトのルートフォルダ内(C:\fx_project\mt5_env\ など)にするのが管理しやすい。VSCodeを使っている場合は、仮想環境を作成後にコマンドパレット(Ctrl+Shift+P)から「Python: インタープリターを選択」で仮想環境のPythonを指定すると、VSCode上でも仮想環境が使われるようになる。
また、依存関係を記録しておく習慣として pip freeze > requirements.txt を定期的に実行しておくと、VPSへの環境移植やチームでの環境共有が容易になる。
Step 5: VPSの設定(本番稼働に必須)
ローカルPCでPython × MT5を動かすと、PCをシャットダウンするたびに自動売買が止まる。24時間連続稼働させるにはVPS(Virtual Private Server)が必要だ。
VPS選定の基準:
| 条件 | 推奨スペック | |---|---| | OS | Windows Server 2019/2022 | | メモリ | 2GB以上(MT5 + Python同時起動) | | CPU | 2コア以上 | | 稼働率保証 | 99.9%以上 | | 月額目安 | 1,500〜3,000円 |
FX専用VPSとして国内ではお名前.com VPS、Winserverなどが知られている。ブローカーによってはMT5向けのVPS割引プランを提供している場合もある。
VPSへの環境構築手順:
- VPSにリモートデスクトップで接続
- Windows上でPythonをインストール(Step 1と同手順)
- MT5ブローカー版をインストールしてログイン
- 必要なPythonライブラリをインストール
- Pythonスクリプトをタスクスケジューラーで自動起動設定
VPSを選ぶ際は、**ブローカーのサーバーとの物理的な距離(レイテンシ)**も考慮すると良い。スキャルピング戦略を使う場合は数ミリ秒の差が影響することがあるが、スイング系の戦略であれば国内VPSで十分だ。多くの国内ブローカーは東京のサーバーを使っているため、国内VPSのほうが接続品質が安定しやすい傾向がある。
タスクスケジューラーによる自動起動設定は、VPSが予期せず再起動した場合のリカバリーとして重要だ。「ログオン時」と「システム起動時」の両方をトリガーに設定し、MT5とPythonスクリプトが順番に起動するよう設定しておくと、手動での復旧作業が不要になる。
よくあるエラーと対処法
環境構築段階で遭遇しやすいエラーをまとめる。
エラー1: ModuleNotFoundError: No module named 'MetaTrader5'
- 原因: Pythonのバージョンが複数ある場合に、pip installした環境と実行環境が異なる
- 対処:
where pythonでどのPythonが使われているか確認し、python -m pip install MetaTrader5で明示的にインストール
エラー2: mt5.initialize() が False を返す
- 原因1: MT5ターミナルが起動していない → MT5を先に起動する
- 原因2: MT5のオプション設定で自動売買が無効になっている → Step 2の設定を確認
- 原因3: MT5がログインしていない → 口座にログイン済みか確認
エラー3: 注文が通らない
- 原因: 口座の証拠金不足、または銘柄が取引時間外
- 対処:
mt5.last_error()でエラーコードを確認してから対応
エラー4: pip install MetaTrader5 がエラーになる
- 原因: Pythonのビット数(32bit/64bit)の問題。MetaTrader5ライブラリは64bit Python専用
- 対処:
python -c "import struct; print(struct.calcsize('P') * 8)"で64bitであることを確認してから再インストール
エラー5: MT5のデータ取得で None が返ってくる
- 原因: 指定した銘柄がブローカーのサーバーに存在しない、または取引時間外
- 対処: MT5のマーケットウォッチで銘柄が表示されているか確認する。
mt5.symbols_get()で利用可能な銘柄一覧を取得できる
エラー対処の基本姿勢として、mt5.last_error() の戻り値は必ず確認する習慣をつけることが重要だ。エラーコードと対応するメッセージはMetaQuotesの公式ドキュメントに記載されており、エラー番号でそのまま検索することができる。
開発環境のおすすめ構成
以下の構成を参考として紹介する。
ローカルマシン(Windows 11)
├── VSCode(コードエディター)
├── Python 3.11(仮想環境)
└── MT5ターミナル(デモ口座で開発・テスト)
VPS(Windows Server 2022)
├── Python 3.11(本番用)
└── MT5ターミナル(リアル口座・本番稼働)
ローカルで開発・テストし、動作が確認できたスクリプトをVPSにデプロイするというフローが安全だ。いきなりVPSで本番コードを書き始めると、デバッグが面倒になる。
VSCodeの拡張機能として「Python」「Pylance」を入れておくと、コード補完・型チェック・デバッグが快適になる。また、MT5のデータ取得やインジケーター計算の検証には、JupyterNotebook(VSCode上で動作する)を活用すると、対話的にコードを試せて開発効率が上がる。
ローカル開発環境の整備という観点では、Claudeと会話しながらインジケーター設計やコードレビューができるhedgrow-fxも参考になる。複雑な条件式や特徴量の設計など、コーディング中の壁をAIとの対話で乗り越えやすくなる。
まとめ
MT5 × Python環境構築のポイント:
- Windows環境が必須(macOS・Linuxは非対応)
- MT5のオプションで「自動売買許可」と「Python API有効化」を設定する
- 仮想環境を使ってプロジェクトごとに依存関係を管理する
- 本番稼働にはWindowsのVPSが必要
- ローカルデモで十分に検証してからVPS本番移行
環境構築はシステムトレードの出発点であり、ここをしっかり固めることで後の開発が大幅にスムーズになる。各Stepで躓いたときは、本記事の「よくあるエラーと対処法」セクションを参照してほしい。環境が整ったら、次のステップは価格データの取得と特徴量設計だ。MT5のティックデータや分足データをPandasのDataFrameに変換する処理から始め、機械学習モデルの入力となる特徴量を少しずつ設計していくのが典型的な流れだ。
FX取引はリスクを伴う。どれだけ精巧なAIモデルを組んでも、相場の予測には本質的な不確実性が残る。デモ口座での十分な検証と小額スタートの原則を忘れずに進めてほしい。
よくある質問(FAQ)
Q: macOSでMT5 × Pythonの環境を作ることはできますか? A: MetaTrader5 PythonライブラリはWindowsのみ対応です。macOSではParallels等のVM、またはクラウドのWindowsサーバー(VPS)を経由する方法があります。
Q: MT5はどのブローカーでもPython連携できますか? A: MetaTrader5ライブラリを使ったPython連携はMT5対応のブローカーであれば基本的に可能ですが、ブローカーのサーバー設定によって一部機能に制限がある場合があります。
Q: Pythonのバージョンは最新を使うべきですか? A: MetaTrader5ライブラリは最新Pythonに追随しているため最新版で概ね動作しますが、安定性を重視するなら一つ前のマイナーバージョン(3.11系等)が無難です。
Q: VPSとローカルPCの両方でMT5を動かしていい? A: 同一口座で複数のMT5クライアントが注文を出すと、意図しない重複注文や注文の競合が起きるリスクがあります。開発時はデモ口座のみ、本番はVPSのみという使い分けを推奨します。
Q: Python × MT5の自動売買で稼げる保証はありますか? A: ありません。機械学習モデルを使っても相場の予測には本質的な不確実性があります。デモ検証で十分な実績を確認してから本番口座で少額から始めることを推奨します。
Q: VPSを契約する前にローカルPCで本番稼働させてはいけませんか? A: 技術的には可能ですが、PCのシャットダウン・再起動・スリープで自動売買が停止します。スキャルピングや日またぎのポジション管理が必要な戦略では、稼働停止が致命的な損失につながるケースがあります。本番運用にはVPSの使用を推奨します。
Q: 仮想環境を使わずにライブラリをグローバルインストールしても問題ありませんか? A: MT5自動売買だけに使うPCであれば当面は問題ありませんが、複数プロジェクトを並行管理する場合はライブラリのバージョン競合が発生しやすくなります。初めから仮想環境を使う習慣をつけることを推奨します。
Q: MT5のデータ取得量に制限はありますか?
A: mt5.copy_rates_from_pos() などのデータ取得関数では1回のリクエストで最大99,999本のバーデータを取得できます。大量の過去データが必要な場合は複数回に分けてリクエストする実装が必要です。
著者: 金融工学出身システムトレーダー
