MT5とPythonの連携がスゴイ!設定手順を画像付きで解説

MT5は拡張機能が充実している点で、他に類を見ない優れたプラットフォーム。AI開発言語で名高いPython(パイソン)とも連携させることが可能で、データサイエンスレベルの高度な分析が実現します。

MT5とPythonで具体的にどんなことができるのでしょうか。今回は、MT5とPythonの連携方法や基礎知識をわかりやすく解説していきます。ぜひ、ご参照下さい。MT5で自動売買や機械学習の可能性を追求したいトレーダーは必見です。

この記事でわかること
  • MT5とPythonは連携できるのか?
  • MT5でPythonを使うメリット
  • MT5とPythonを連携させる方法
  • Pythonを使ったバックテスト分析
  • 機械学習や自動売買の応用事例
目次

MT5にPython(パイソン)が連携できるのか?

MT5にPython(パイソン)が連携できるのか解説するイメージ

MT5はチャートのカスタマイズ性や、豊富なテクニカルツール、MQL5というプログラミング言語で、独自のシグナルやEAが構築できることで有名なプラットフォームです。その他のソフトウェアとも連携させたりと、その拡張性の高さも大きな魅力です。ただ、AI開発言語で人気のPython(パイソン)とも連携できることは、まだあまり知られていません。

Pythonはシンプルで使いやすいうえに、機械学習機能も備えている優れた言語。

初めてのプログラミングに
おすすめの言語だと言われています。

最初にPythonをMT5に連携させる仕組みや、Pythonを使うメリットについて紹介します。

Pythonとは

そもそもPythonとはどのような言語なのでしょうか。

Pythonとは

Pythonは、MicrosoftやDropboxにてエンジニアを務めていたGuido van Rossum(グイド・ヴァン・ロッサム)が開発したプログラミング言語で、1991年に初めて公開されました。シンプルであること、読みやすいことをモットーとしているため、初心者にも扱いやすいことで人気があります。

コーディングが簡潔でライブラリが豊富なため、AIや機械学習に最適な言語でもあり、Amazon・Dropbox・Netflix・YoutubeなどにPythonが使われています。

Python-Guido van Rossum – Github

Pythonとは?- パソナ・エンジニアラボ

MT5ならMT4よりも比較的簡単に連携できる!

MT4でもPythonに連携できていたのですが、MT5では、PythonのAPIが正式に提供されているため、比較的簡単な操作でAPI連携できるようになっています。

大まかに言うと、MT5のデータをPythonに取り込んで、PythonからMT5が操作できるようになる、というものです。Pythonを介すことによって、MT5には備わっていない分析機能が使えるようになるのです。

APIとは

APIとは、”Application Programming Interface/アプリケーション・プログラミング・インターフェース”の略で、異なるアプリケーションをプログラミングして統合するシステムのことを言います。

APIのイメージ1
APIのイメージ1
WikiFX 筆者作成

例えば、一番わかりやすい例がクレジットカードや銀行口座とスマホアプリのAPIです。スマホアプリのサービスで入力したクレジットカード情報で決済が行えるのは、APIで連携されているからです。

APIとは – Red Hat

APIのイメージ2
APIのイメージ2
WikiFX 筆者作成

APIによってMT5はデータをPythonに提供します。このデータとは正確には、すべてのローソク足の4本値(OHLC)のことす。Pythonは受け取ったデータを分析しトレードアイデアを導き出します。

PythonとMT5の連携で、事前に準備しておきたいのがMT5のヒストリカルデータです。

Pythonを有効に使うためには、十分なデータが必要です。ヒストリカルデータの取得方法は、以下の記事でご覧頂けますのでしっかり用意しておきましょう。

Pythonライブラリとは

Pythonでは豊富なライブラリが使えることが魅力の1つです。しかしここで、ライブラリの概念がいまいち理解できない、という方もいるでしょう。プログラミングでいうところのライブラリについて解説します。

Pythonライブラリのイメージ
WikiFX 筆者作成

ライブラリとは、図書館の “Library/ライブラリ”を指す用語で、データの管理ホルダーのようなものです。すでに完成されているアプリケーションのプログラミングデータがライブラリに保管されています。

ライブラリの中に、1つのアプリケーションの主軸となる複数のパッケージが保管されています。パッケージはさらにモジュール単位に細分化することが可能で、モジュールの中に具体的なコーディングであるクラスや関数が記録されています。

グラフや映像を作成するライブラリ、データ分析や計算機能のライブラリ、情報収集のライブラリなど、新たなアプリケーションの作成にも、既存のライブラリを組み合わせて使えるので1から作成する必要がないのです。

すでに内臓されているライブラリと、外部からインポートできるライブラリの数が多いため、Pythonでは最短で手間をかけずにプログラミングが行えます。

Pythonのライブラリの種類はこちらから

MT5でPythonを使うメリット

Pythonが使えるだけで数多くのメリットがあります。

  • Windows、Mac、LinuxとほとんどのメジャーなOSに対応 →書き換えなしで使える
  • オープンソースで無料で使える
  • プログラミング初心者にも扱いやすい
  • 汎用性・拡張性が高い付加機能で自分仕様に展開できる
  • AI・機械学習、数値解析の機能に優れている

※WSLのUbuntu経由ではダイレクトに利用できないことが報告されています。

MT5を使ってできること

Pythonの機能を活かしてMT5でできることは以下のとおりです。

  • 長期のティックデータを取得して分析が可能
  • Pythonからトレードの指示を出すことが可能
  • PandasNumPyなどを使った高度なデータ解析が実現する
  • DjangoFlaskなどを使って自動売買やシグナルが作成できる

PythonのAI解析・機械学習機能を、MT5のトレード分析・相場分析、EA・インジケーター・シグナルの作成、バックテストに使えるのです。

Flaskとは:Flask Users Guide

Pandasとは:Pandas User Guide

【超簡単!】MT5とPythonを連携させる方法

MT5とPythonを連携させる方法について解説するイメージ

では次に、どのようにMT5とPythonを連携させるのかを画像つきで解説していきます。

まずはMT5のインストール、
次にPythonをインストールして
連携させていきます。

          

MT5インストール

MT5のインストールは、MetaTrader 5 の公式サイトから行えます。デモ版はFX業者がなくとも利用できますので、早速試してみましょう。

MT5インストールするイメージ

MetaTrader 5ダウンロードはこちら

MT5は簡単にダウンロードできますが、
Pythonを使う準備が結構大変かもです。
一緒に頑張っていきましょう!

Pythonインストール

次にPythonをダウンロードします。2024年1月時点の、Python最新バージョンは「Python3.12」です。10月以降は「Python 3.13」がリリース予定です。

現時点では日本語版がありませんので、英語版公式サイトからダウンロードできます。

Pythonインストールするイメージ

Python 公式サイト ダウンロードページはこちら

「Install Now」をクリックしてファイルをダウンロードします。

Pythonインストール手順1

ファイルをクリックすると「PCに許可しますか?」と英語で出てきますので「YES」を選択します。

Pythonインストール手順2

インストーラーが出てきますので、完了するまで待ちます。

Pythonインストール手順3

「Setup was successful」の画面が出てきたら、「Close」をクリックしてインストール完了です。

インストール方法は詳しくはこちらから

Pythonターミナルを表示

Pythonがインストールされているかは、PC画面左下にあるWindowsマークの「Windowsメニュー」から確認できます。

Pythonターミナルを表示させる手順1

メニューから「Python3.12」をクリックすると「Python3.12」のターミナルが表示されます。

Pythonターミナルを表示させる手順2

メニューに表示されない時は、Windows検索から「コマンドプロンプト」を開いて、「python–version」でエンターを押すと「Python3.12」と表示されればインストールは完了しています。

Pythonターミナルを表示させる手順3

コーディングターミナルとして、つねにPythonのターミナルを表示させたい時は「VS Code」をインストールする方法があります。

VS CodeでPythonコーディング・プラットフォームを作成

VS Codeとは、Visual Studio Codeのことで、さまざまなタイプのプログラミングに使えるプラットフォームです。

VS CodeにPythonをインポートしておけば、今後便利に使っていけます。

VS CodeでPythonコーディング・プラットフォームの作成手順1

VS Codeのダウンロードはこちらから

VS CodeでPythonコーディング・プラットフォームの作成手順2

ダウンロードしたファイルを開いたら、「I accept the agreement」にチェックを入れて、「Next」を4回押すとインストール画面になり完了です。

インストールが完了したら、VS Codeを開いてWellcome画面から「Get Started with Python Development」を選択すると、VS CodeにてPythonが使えるようになります。

VS CodeでPythonコーディング・プラットフォームの作成手順3

Marketplaceから「ms-python」で検索してインストールすることも可能です。

VS CodeでPythonコーディング・プラットフォームの作成手順4

コーディングの画面に行くには、メニュー「File」→「New Text File」→「Select a Language」→「Python」で表示できます。

VS CodeでPythonコーディング・プラットフォームの作成手順5

Pythonのコーディング画面に簡単に行けるように、空ファイルに名前をつけて保存しておくと簡単に開けるようになります。

VS CodeでPythonコーディング・プラットフォームの作成手順6

例えば「Python File.py」と名前を付けて保存しておけば、メニュー「ファイル」からダイレクトに「Python File」の画面に行けるようになるのです。

VS CodeでPythonコーディング・プラットフォームの作成手順7

「.py」はPythonの拡張子になり、普通に保存しても自動的に付加されます。

VSCodeの日本語設定

VSCodeの日本語設定は、メニュー「View」→「Command Pallet」→「Configure Display Language」から「日本語」が選択できます。

VSCodeの日本語設定のイメージ

色々やりすぎると混乱するかもですから、
VSCodeも使えると覚えておいて下さい。

VSCodeにPythonをインストールする方法はこちらから

MT5にPythonで使えるよう設定しておく

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

PythonをMT5で使えるようにする設定の手順1

「アルゴリズム取引を許可」にチェックを入れて、後の項目はチェックなしにして下さい。

「外部Python APIを介したアルゴリズム取引を無効にする」にチェックを入れるとPythonが使えなくなりますので注意。

PythonをMT5で使えるようにする設定の手順2

MQL5 MetaEditorにPythonをインストール

MetaEditorのメニュー「ツール」→「オプション」を開きます。

PythonをMT5で使えるようにする設定の手順3

オプションのメニュー「コンパイラ」を選択して、すでにPythonのアドレスが入力されていますので、「インストール」ボタンをクリックしてインストールしておきます。

PythonをMT5で使えるようにする設定の手順4

ここで、あらかじめ入力されているPythonのバージョンが「Python3.9」となるケースが多いようです。その場合は、「Python3.9」を再度インストールするか、新たに「Python3.12」のファイルアドレスを入力し直す必要があります。

PythonにMT5のライブラリを追加

準備が整ったら、MT5のライブラリ(モジュール)をPythonに追加します。

pip install MetaTrader5

pipは、外部からモジュールをインストールする時に使うコマンドです。以下のように、PythonにMT5がインストールされます。

PythonにMT5のライブラリを追加するイメージ

これで、PythonへのMT5ライブラリの追加が完了です。

MT5に連携するPythonのファイルアドレスをインストールしておかないと、エラーになります。

PythonでMT5に接続する

では、いよいよPythonとMT5を接続します。MQL5を開いて、以下の手順でPythonを開きます。

メニュー「ファイル」→「新しいファイル」を選択して「Pythonスクリプト」にチェックを入れます。

MT5にPythonを接続する手順1

次に、ファイル名「名前」に任意の名称を入力して「Next」です。

MT5にPythonを接続する手順2

以下のように、Python Script にてMT5の情報が出てきたら、これで接続が問題なく完了です。PythonスクリプトからMT5にアクセスできるようになります。

MT5にPythonを接続する手順3

MetaEditorのPythonスクリプトで作成するプログラムは、MQL5ではなくPythonです。従って、Pythonのルールに沿って作成していきます。メニュー「コンパイル」のクリックで実行です。

Command Prompt、MetaEditorやVSCode、あるいは各自で利用するターミナルを使ってPythonのコーディングが行えます。

PythonでMT5が操作できるか確認

きちんと操作できるかどうか、試しに「Print()」で何でもいいので入力してみます。

スクリプトの確認例

print(“MetaTrader5 Author “,mt5.__author__)

print(“MetaTrader5 Version “,mt5.__version__)

ジャーナルにMT5の名称、バージョン名が確認できたら接続OKです。

MT5にPythonを接続する手順4

慣れないと結構大変かも。
でも、あきらめないで休憩しながら頑張る!

※PythonとMT5の連携はMQL5でも詳しく解説しています。

Pythonと統合するコーディング – MQL5

※Pythonのチュートリアルが日本語でも公開されています。詳しく勉強したい方はぜひご利用下さい。

Python チュートリアル(日本語版)はこちら

Pythonを使ってティックデータを取得しよう

Pythonを使ってティックデータを取得するイメージ

さて、これでPythonとMT5のの連携プレーを活用する準備が完了しました。早速、Pythonの本領を発揮してもらうために、ティックデータを挿入してデータ分析を行ってみましょう。

特定の期間におけるデータ分析方法と
EAバックテストを分析する方法を解説します。

データ分析ツールPandasをインストール

まず、数値・データを読み込む分析ツールPandasをインストールします。

pip install pandas

データ分析ツールPandasをインストールするイメージ

これでPandasがPythonに実装されました。

グラフ・描画ツールのMatoplotlibをインストール

次に、グラフや表、描画機能を持つMatoplotlibをインストールするコードの入力です。

pip install matplotlib

グラフ・描画ツールのMatoplotlibをインストールするイメージ

Matoplotlibのインストールが完了したので、分析結果のグラフ化も可能。

ティックデータを取得する

ティックデータやチャートの取得方法には、MQL5のコード・テンプレートが使えます。

MQL5のコード・テンプレートはこちら

MQL5のコード・テンプレートの一部
ティックデータを取得するイメージ
https://www.mql5.com/ja/docs/python_metatrader5

上記はコードの一部です。MQL5のテンプレートの一部を臨機応変に使用・変更することで、各自で必要なデータが取得できます。

例えば、通貨ペアEURAUDをUSDJPY、期間を2020年1月から2024年1月に変更してみましょう。

通貨ペアと期間の変更例
ティックデータで通貨ペアと期間を設定するイメージ

EURAUDの記載をすべてUSDJPYに変更。取得する期間をすべて2024年1月に変更。通貨ペアや期間が出てくるのはこの箇所だけではありませんので、全体をチェックしてすべて変更します。

USDJPY Tickデータ(pips表示)
USDJPYのティックデータ

通貨ペアや期間を変更して、「コンパイル」をクリックするとティックチャートが表示できます。1分足チャートなどと合わせて分析に使えます。

表示チャートの変更例

表示するチャートを変更したい時は、コードの一番最後の方にあるTicksFrameの通貨ペアを変更します。合わせてヘッダも変更してチャートの表示名を変えておきましょう。

ティックデータの表示チャートを変更するイメージ
AUDUSDティックチャート(1年)
AUDUSDティックチャート
取得したデータを見る
AUDUSDティックチャートのデータ詳細イメージ

取得したデータは、ジャーナルから確認できます。ファイルでの出力も可能です。

様々なタイプの通貨ペアや期間を設定して、細かいデータ・チャートで分析に使えるのです。

MT5とPythonでEA分析や機械学習もできる!

MT5とPythonでEA分析や機械学習もできるイメージ

では、最後にPythonとMT5で、市場分析からトレードレポート・EA分析や機械学習など、どんなことができるのかを紹介しておきます。

基本操作を覚えたら、
いくらでも展開していけるんです!

Quantstats:裁量トレード・EAバックテストを分析

Quantstatsはディープラーニングを基盤にしたデータ分析機能。Pythonのライブラリーの1つ。pipコマンドでQuantstatsをインストールして無料で使えます。

MT5のHTMLレポートをPandasで読み取って、HTMLに変換できる情報であれば、株式や仮想通貨・CFDなども分析可能です。比較チャートや月間/年間の損益データ・ドローダウンデータ・リターン率、などを計算してくれます。

MT5の裁量トレード・EAレポート

MT5の裁量トレード・EAレポートのイメージ
QuantStatsの分析イメージ
QuantStatsの分析イメージ

詳しい使い方・コーディングMT5ストラテジーテスターレポートをPython「QuantStats」ライブラリで

QuantStatsコード情報:QuantStats – Github

Jupyter Notebook:データ解析からEA開発まで

Pythonするなら、ぜひ覚えておきたいのがJupyter Notebook(ジュピター・ノートブック)です。

ジュピターとは木星のことで、本来なら「Jupiter」と書くところですが、開発者のPythonへの思い入れからPython拡張子の「py」が採り入れられています。それほどに、Pythonが前提にあるデータ解析ツールなのです。

40以上の言語に対応、Webブラウザーでも気軽に使えて、優れた機能が豊富に搭載されていても無料で使えるのが嬉しい。

Jupyter Notebookの機能

Jupyter Notebookの機能イメージ
  • Jupyter Lab → コンピュータサイエンスを基盤にした開発・分析インターフェース
  • Jupitae Notebook → Pythonのほとんどのライブラリと連携可能なプログラミングノート
  • Jupyter Lite → GitHubに直結のコミュニティサイト
  • Jupyter Wedgets → HTMLウィジェット
  • Voila → すべてのデータや開発状況が管理できるプラットフォーム
Jupyterデータ分析のイメージ
Jupyterデータ分析のイメージ

Jupyter Notebookは、全く基礎的なことから高度な開発プロジェクトまで総合的に使っていけるツールです。

EA開発にもよく使われていて、データの入手から分析・機械学習、ストラテジーの作成まで行えます。

Jupyter Notebook 公式サイトはこちらから

Pythonで自動売買コーディング

では、最後にPythonをきっかけに自動売買コーディングをする始めるコツをご紹介しておきましょう。

FX自動売買の基本設計

EAのプログラミング設計は以下の概要から構築されます。

  • 4本値(OHLC)のデータを取得(ティックチャートのデータ)
  • 4本値を基盤にテクニカル指標を計算
  • テクニカル指標を基盤に売買条件を設定
  • 売買条件を満たした場合の注文方式を設定
  • 利確・損切ポイントを設定
  • 上記を1つのループとして処理する

詳細は、トレーダーの戦略ごとに異なりますが、大まかな設計は以上のようになります。

ロジックの組み立て方

シンプルに自動売買のロジックを組み立ててみましょう。

  1. テクニカル指標を用いて売買条件を作成する
  2. 売買条件を満たす場合の「Buy」「Sell」の注文執行を組み込む
  3. 利確と損切の値幅を設定する

となり、これらの設定条件にPythonを使うことでEAの精度を高めていけます。Pythonの使い方や分析方法、自動売買の作成方法などはMQL5から豊富な情報が探せます。下記リンクを参考にしてみて下さい。

MQL5の参照リンク

Pythontとの統合のためのMetaTrader 

アルゴリズム取引におけるPython

MQL5言語での自動売買ロボットのプログラミング

MT5とPythonでトレードの可能性がグッと広がる!

MT5とPythonを組み合わせることで、情報収集や市場分析、機械学習にバックテスト分析、EA・シグナルの作成など、それぞれのトレード手法を深堀りしていくことが可能です。

ハードルは決して低いとは言えませんが、トレードの可能性がグッと広がることは間違えありません。興味がある方は、ぜひこの機会にチャレンジして見てください!

この記事をシェアする
  • URLをコピーしました!

この記事を書いた人

MI001YOU ライター

投資家、デイトレーダー、ライター、アナリスト
NY移住歴5年、ロンドン1年、海外移住中に為替取引を開始。国内、海外と徹底したリサーチと最新のニュース情報が強み。毎日3社ほどのニュースメディアの情報を追っている。
FX、CFD、株式、エネルギー、貴金属、仮想通貨、国内・海外業者にて幅広い分散投資を行っている。

投資歴8年、ライター歴6年
前職:IT商材・太陽光発電・蓄電池等の営業、エネルギー関連も得意

Twitterにて投資・金融・エネルギー系の情報を発信している。

コメント コメント 0

コメントする