【2024年更新】MT5とMT4の徹底比較から見えるMT5のメリット!

5年程前に簡単な比較記事を書いたのですが、MT5のバージョンアップが繰り返され、機能差もさらに大きなものとなってきましたので、改めて情報を整理してみたいと思います。

Contents
目次を全て見る
  1. MT5とMT4の違いを徹底比較!
  2. 前置き:MT4は衰退フェーズに入っている
    1. MT4は既に証券会社向けのライセンス発行が停止されている
    2. MT4に対する機能追加は長年行われていない
    3. MT4のEOL(End of Life = 製品サポート終了)はいつか?
    4. MT4がEOLになると起きる問題
    5. 新規に利用し始めるならMT5を使用しましょう
  3. MT5とMT4の機能比較(一覧表)
    1. プラットフォームとしての機能の違い(MT5 vs MT4)
    2. プログラミング言語としての機能の違い(MQL5 vs MQL4)
  4. MT5 vs MT4:取引環境の違い
    1. 銘柄の違い:MT5とMT4で取り扱い可能な資産クラスの差はない
    2. 銘柄の違い:証券会社によって提供銘柄の差がある
    3. 時間足の違い:選択可能な時間足はMT5の方が多い
  5. MT5 vs MT4:注文方式の違い
    1. MT5は部分決済をサポート
    2. フィルポリシーの違い
      1. フィルポリシーとは
      2. フィルポリシーの一覧と説明
      3. フィルポリシーは証券会社によって異なる
    3. 保留注文のサポートの違い
  6. MT5 vs MT4:取引機能の違い
    1. MT5は標準機能で経済指標カレンダーのデータを活用できる
    2. MT5は利用可能なテクニカルインジケータの種類が多い
    3. MT5はチャートオブジェクトの種類が多い
    4. 機能:MT5は pythonからの操作が可能
      1. Python用MetaTraderパッケージの機能
      2. Python連携の利点
  7. MT5 vs MT4:バックテスト機能の違い
    1. MT5は最適化を高速に実行できる
    2. MT5は複数PCに分散して最適化を実行できる
    3. MT5はクラウド上のリソースを活用して最適化を高速実行できる
    4. MT5は証券会社に紐づくヒストリカルデータを入手できる
    5. MT5のヒストリカルデータは可変スプレッド、MT4は固定スプレッド
    6. MT5のデータモデルはリアルティックが選択できる、MT4は疑似ティックしかない
    7. MT5は複数銘柄を一括してバックテストできるが、MT4は単一銘柄のみ
  8. プログラム言語の違い MQL5 vs MQL4
    1. MQL5はオブジェクト指向に完全対応
    2. MQL5は標準機能でデータベースアクセス(SQLite3)に対応
    3. MQL5は経済指標カレンダーのデータにアクセスできる
    4. MQL5はONNXを使用した機械学習モデルをサポートしている
    5. MT5はOpenCLを活用した高速な並列計算が可能
    6. MQL5は行列とベクトル計算に対応している
  9. まとめ

MT5とMT4の違いを徹底比較!

MT4は2005年にリリースされて以降、長年にわたりトレーディングプラットフォーム市場の主力製品として活躍し、根強い人気を誇っていますが、現在はMT5を使用することが推奨されています。

一方で、MT4で開発した資産(EA、インジケータ)がMT5へ簡単に移行できない問題がありMT4を使い続けているユーザーが多い状態が続いていますが、MT4を使い続けることのデメリットは日増しに大きくなっています。

本記事では改めてMT5とMT4の機能の違いを最新情報を元におさらいすることで、MT4を使い続けることのデメリット、MT5を使用するメリットそれぞれについて情報をまとめてみたいと思います。

前置き:MT4は衰退フェーズに入っている

製品を比較する前の大前提として、MT4は既に衰退フェーズに入っている製品のため、いまから新規に使い始めることは推奨されていないことを理解する必要があります。

MT4は既に証券会社向けのライセンス発行が停止されている

metaquotes_ceo_message

MetaTraderの開発を行っている MetaQuotes社 CEO Renat Fatkhullin 氏が、MQL5.comコミュニティ内MT4ライセンスが既にブローカー向けに販売されていないことについて言及しています。

 

念のため、MT4プラットフォームも提供している証券会社HFMのビジネスディベロップメントチームにも照会してみましたが、

  • MT4ライセンスが証券会社向けに販売停止されていることは事実である。
  • 既にライセンスを保有している証券会社はMT4を継続的に利用することができる。個人投資家が今すぐMT4の利用ができなくなることとは直接の関係はない。
  • 万が一MT4の製品サポートまで終了されることになった場合は、代替プラットフォームへの移行を速やかに行うだけの体制があるため安心してほしい。

という趣旨の回答がありました。 MT4のライセンスが証券会社向けに販売終了されていることは間違いないと思われます。

個人投資家が今すぐに現在の証券会社でMT4が利用できなくなるわけではありませんが、今後MT4の利用が拡大する見込みが無いことは確実です。

MT4に対する機能追加は長年行われていない

MT4のリリースノートを遡ると、2015年前後までは何かしらの機能改善が行われていますが、それ以降は更新の頻度が下がり、セキュリティアップデートや不具合対応と思われるリリースしかされていないことが分かります。

リリースノート(MT4)

一方、MT5のリリースノートを見ると、おおよそ3ヶ月サイクルで大幅な機能追加、改善が繰り返されています。

リリースノート(MT5)

MT4は10年近く機能追加が行われていないことになり、時間の経過とともにMT5とMT4の機能差は大きく広がっています。

MT4のEOL(End of Life = 製品サポート終了)はいつか?

Renat Fatkhullin 氏の上記発言の中で、「2023年中のサポート停止」という趣旨の発言があったものの、現時点ではサポート終了の発表には至っていないようです。

しかし、遅かれ早かれMT5よりも先にMT4がEOLに至ることは避けられないと考えられます。

MT4がEOLになると起きる問題

製品のサポートが終了になると、WindowOSの最新バージョンとの互換性が保証されなくなったり、セキュリティ対策等のメンテナンスも行われなくなることから、MT4を安定して利用することが難しくなることが予想されます。

MT4ユーザーはこの事実を理解した上で、リスクを理解して使い続けるか、早めに移行準備を進めるかについて真剣に検討すべきと考えられます。

新規に利用し始めるならMT5を使用しましょう

これらの理由から、新たにトレーディングプラットフォームを利用し始める場合は、MetaTrader 5(MT5)を選択することを強くお勧めします。

MT5は、既にMT4に比べて多くの点で優れています。MT5を選択することが最適な選択肢と言えるでしょう。

 

MT5とMT4の機能比較(一覧表)

具体的にどのような機能の違いがあるのかを一覧にまとめました。 尚、根拠については公式ドキュメント、リリースノートを中心に情報を整理しました。

各行ごとの詳細な比較は、次の章以降に説明しています。 非常に長いため、必要な箇所のみ目次からジャンプして頂くなどしてご参照ください。

https://www.metatrader5.com/en/trading-platform/comparison-mt5-mt4

https://www.metatrader5.com/ja/releasenotes

プラットフォームとしての機能の違い(MT5 vs MT4)

分類 項目 MT5 MT4
取引環境サポートする市場為替、先物、オプション、株式、債権為替(、先物、オプション、株式、債権)
時間足21種類9種類
注文方式部分決済可能不可能
フィルポリシーFOK | IOC | ReturnFOK
保留注文の種類6種類4種類
機能経済指標カレンダーの利用可能不可能
チャートオブジェクトの種類4431
テクニカルインジケータ10951
python統合可能不可能
バックテストアーキテクチャマルチスレッドシングルスレッド
複数通貨取引可能不可能
データモデルリアルティックありリアルティックなし
マルチプロセス対応対応未対応
複数PCでの分散処理対応未対応
クラウドリソース活用対応未対応
ヒストリカルデータ証券会社データ(口座タイプ別)MetaQuotes社レート
スプレッドリアルデータ固定値

プログラミング言語としての機能の違い(MQL5 vs MQL4)

分類項目MQL5MQL4
言語仕様オブジェクト指向プログラミング対応一部対応
機能データベースアクセスSQLite3をサポート未対応
Python統合pythonライブラリを使用しpythonからMT5操作が可能未対応
機械学習モデル組み込みONNX形式をサポート未対応
OpenCL対応対応未対応
行列・ベクトル計算用関数対応未対応

 

MT5 vs MT4:取引環境の違い

銘柄の違い:MT5とMT4で取り扱い可能な資産クラスの差はない

MetaQuotes公式の比較表には「MT5は 為替、先物、オプション、株式、債権に対応し、MT4は為替のみ」と書かれているようですが、実際に同一証券会社で銘柄比較をして見るとMT4でも株式、債権のレートが取引可能な状態で配信されるケースもあることが分かりました。

例として、証券会社HFMにおける、MT5(Premium口座)とMT4(Premium口座)の提供銘柄の差を比較してみました。

分類HFM(Premium) MT5 HFM(Premium) MT4
Forex6059
Metals & Energies 88
Futures & Indices2727
Commodities77
Stock19394
ETFs 230
Crypto1920
合計337215

銘柄の総数は、MT5が337件、MT4が215件となり、MT5の方が多いことが分かります。

FXトレーダーが普段よく見ている為替銘柄(Forex)は差がほとんどないものの、株式個別銘柄(Stock)、ETF(ETFs)を中心にMT5の方が選択肢が豊富になっています。

MT5やMT4は自動売買ツールを実行できることが大きな魅力の一つですが、株式指標、個別株式、セクター別ETF、コモディティ等に対しても自動売買が出来るのはとても魅力的で、トレードの選択肢が大きく広がります。

普段FX銘柄しか見ていない方々は、これだけ多くの銘柄に対してトレードできる機会があるので、手持ちのロジックが機能する銘柄がないか、広範囲にスキャンしてみるのも面白そうですね。

銘柄の違い:証券会社によって提供銘柄の差がある

次に、MT5でも証券会社によって銘柄の違いがあるのかを見てみます。 HFM(Premium口座)と、XM(Standard口座)で比較を行いました。

分類HFM(Premium) MT5 XM(Standard) MT5
Forex6057
Metals & Energies 80
Futures & Indices2741
Commodities70
Stock1930
ETFs 230
Crypto1931
合計337129

XMはHFMと比較すると200銘柄もの差があり、数だけ見るとかなり少ないことがわかります。

銘柄が属するグループは各社独自の名称で管理され統一感がないため個別に名寄せを行いましたので、意図しないところに分類されているかもしれませんが、件数が大きく違うことは明らかです。

特に個別株式やETFの提供がないことは大きな差となっていますので、既にXMを利用している投資家も、複数の証券会社を並行して利用する、または乗り換えることで新たなトレード機会が広がるかもしれません。

時間足の違い:選択可能な時間足はMT5の方が多い

時間足時間足(プログラム上の表記)MT5MT4
1分PERIOD_M1
2分PERIOD_M2
3分PERIOD_M3
4分PERIOD_M4
5分PERIOD_M5
6分PERIOD_M6
10分PERIOD_M10
12分PERIOD_M12
15分PERIOD_M15
20分PERIOD_M20
30分PERIOD_M30
1時間PERIOD_H1
2時間PERIOD_H2
3時間PERIOD_H3
4時間PERIOD_H4
6時間PERIOD_H6
8時間PERIOD_H8
12時間PERIOD_H12
1日PERIOD_D1
1週間PERIOD_W1
1ヶ月PERIOD_MN1

MT5は21種類、MT4は9種類となっており、MT5はMT4に比べて多くの時間足をサポートしています。これにより、トレーダーはより詳細かつ柔軟な市場分析が可能となります。

  • より多くの時間足を利用することで、トレーダーは市場の微細な動きを捉えやすくなり、短期および中期のトレンドをより正確に把握できます。
  • スキャルピングを行うトレーダーは2分や3分の時間足を使用することで、エントリーやエグジットのタイミングをより柔軟に調整できます。
  • 長時間の足でも6時間足、8時間足、12時間足はMT5のみに存在します。 マルチタイムフレームを使用して上位足の挙動を確認する場合も、選択する足の種類が豊富にあることで柔軟な調整が可能になります。

 

MT5 vs MT4:注文方式の違い

MT5は部分決済をサポート

MT5では、部分決済をサポートしています。これは、トレーダーが保有するポジションの一部を特定の価格で決済し、残りのポジションを維持することができる機能です。部分決済は、リスク管理や利益確定のための柔軟なツールとして非常に有用です。

例えば、あるポジションが目標価格に達した際に、その一部を決済して利益を確定し、残りのポジションでさらなる価格上昇を狙うことができます。これにより、トレーダーは利益を確保しつつ、市場の動向に応じて戦略を調整することが可能となります。

フィルポリシーの違い

フィルポリシーとは

フィルポリシーは、市場の流動性が低い場合、高速かつ大量の取引を行う場合等において、全ての約定が通らない場合にどのように対応するのか、その方式を定めるものです。

FX銘柄を一般的なロット数で取引している範囲ではあまり意識することがないものですが、上記に該当する場合に注文が通らない場合や、自動売買ツールから取引を行う場合に明示する必要があるなど、一部の利用者には関係する内容です。

フィルポリシーの一覧と説明

フィルポリシー説明MT5 MT4
FOK(Fill or Kill)注文が指定された数量ですぐに完全に執行されるか、まったく執行されないかのいずれかです。部分的な執行は許されません。
ICO(Immediate or Cancel)注文ができるだけ多くの数量で直ちに執行され、残りの数量はキャンセルされます。部分的な執行が可能です。
Return注文ができるだけ多くの数量で直ちに執行され、残りの数量も継続して注文を行います。

MT5の方が、複数のフィルポリシーをサポートしていることが分かります。

フィルポリシーは証券会社によって異なる

プラットフォームの差があることは分かりまりましたが、実際のところはユーザーが自由に指定できるものではなく、各証券会社が定めたものを固定で使用することになります。

これは、各銘柄の「仕様」を確認すると記述されているため、ご自身で確認頂くことができます。 HFMはFOK、XMはIOCが使用されているようです。

HFM XM
fill_policy_xm

 

保留注文のサポートの違い

以下の表は、MT4とMT5でサポートされる保留注文の種類とその説明を比較したものです。

保留注文の種類日本語表記説明MT5 MT4
Buy Limit買い指値現在の市場価格より低い価格で買い注文を設定します。価格が指定価格まで下がった場合に注文が実行されます。
Sell Limit売り指値現在の市場価格より高い価格で売り注文を設定します。価格が指定価格まで上がった場合に注文が実行されます。
Buy Stop買い逆指値注文現在の市場価格より高い価格で買い注文を設定します。価格が指定価格まで上がった場合に注文が実行されます。
Sell Stop売り逆指値注文現在の市場価格より低い価格で売り注文を設定します。価格が指定価格まで下がった場合に注文が実行されます。
Buy Stop Limit買いストップリミット注文Buy StopとBuy Limitを組み合わせた注文方式です。価格がBuy Stopまで上がったら、あらかじめ指定した買い指値注文が有効化されます。
Sell Stop Limit売りストップリミット注文Sell StopとSell Limitを組み合わせた注文方式です。価格がSell Stopまで下がったら、あらかじめ指定した売り指値注文が有効化されます。

MT5は標準でストップリミット注文が使用できるようになっています。

各保留注文の取引イメージと、実際の注文画面の入力項目との対応関係を図にまとめました。

買い指値
売り指値
買い逆指値注文
売り逆指値注文
買いストップリミット注文
売りストップリミット注文


MT5 vs MT4:取引機能の違い

MT5は標準機能で経済指標カレンダーのデータを活用できる

MT5は、標準機能として経済指標カレンダーのデータを統合しています。これは、トレーダーが重要な経済イベントや指標の発表を追跡し、取引決定に反映させるための強力なツールです。

この機能はEAからもデータにアクセス可能なため、当日の指標発表時刻やイベント名、重要度を取得し、トレードに活用する(指標前のエントリを見送る、他)こともできます

重要な指標発表前後は相場が荒れることが予想されるため、自動化するにしても経済指標カレンダーの情報の活用し、トレードを世業することは必要不可欠です。

この機能を使用するためだけでもMT5を利用するメリットがあると言えるほど、大きな機能ですね。

尚、指標発表の予想値、結果も取得が可能ではありますが、 経済指標の結果は各国が公開するWebページのデータを自動収集する仕組みとなっているようで、指標発表後はそれらのデータがコンマ数秒の遅延もなく速やかに入手できるものではないようです。

ある程度の遅延も起きることから、経済指標の発表値を元にしたトレードは実現が困難です。

※元々イベント発表直後の取引(特にハイレバ、大口ロットでの取引)は、証券会社の利用規約によって制限されている場合もありますので、仮に実施する場合は十分に確認を行ってから取引するようにしましょう。

MT5は利用可能なテクニカルインジケータの種類が多い

以下の表は、MT4とMT5で標準提供されるテクニカルインジケータを分類して比較したものです。

分類インジケータMT5 MT4
トレンド系 Adaptive Moving Average
Average Directional Movement Index
Average Directional Movement Index Wilder
Bollinger Bands
Double Exponential Moving Average
Envelopes
Fractal Adaptive Moving Average
Ichimoku Kinko Hyo
Moving Average
Parabolic SAR
Standard Deviation
Triple Exponential Moving Average
Variable Index Dynamic Average
オシレーター Average True Range
Bears Power
Bulls Power
Chaikin Oscillator
Commodity Channel Index
DeMarker
Force Index
MACD
Momentum
Moving Average of Oscillator
Relative Strength Index
Relative Vigor Index
Stochastic Oscillator
Triple Exponential Average
Williams' Percent Range
ボリューム系 Accumulation/Distribution
Money Flow Index
On Balance Volume
Volumes
ビル・ウィリアムズ Accelerator Oscillator
Alligator
Awesome Oscillator
Fractals
Gator Oscillator
Market Facilitation Index
Examples FlameChart
ChartPanel
SimplePanel
Accelerator
AD
ADX
ADXW
Alligator
AMA
ASI
ATR
Awesome
BB
Bears
Bulls
BW‐ZoneTrade
CCI
CHO
CHV
ColorBars
ColorCandlesDaily
ColorLine
Custom Moving Average
DEMA
DeMarker
DPO
Envelopes
Force_Index
Fractals
FrAMA
Gator
Gator_2
Heiken_Ashi
Ichimoku
iExposure
MACD
MarketFacilitationIndex
MFI
MI
Momentum
OBV
OsMA
ParabolicSAR
Price_Channel
PVT
ROC
RSI
RVI
StdDev
Stochastic
TEMA
TRIX
Ultimate_Oscillator
VIDYA
Volumes
VROC
WPR
W_AD
ZigZag
ZigZagColor
Free Indicators Camarilla Channel
DeMark Channel
Donchian Channel
Fibonacci Channel
Keltner Channel
MarketProfile Canvas
MarketProfile
MurreyMath Channel
NRTR Channel
Parabolic Channel
Pivot Channel

MT5は109件、MT4は51種類のインジケータが標準機能として配置されていることが分かりました。 ※公式の比較ページではMT5が38件、MT4が30件と書かれていますが、単純にツリーに表示されているものを全件カウントした結果、左記の通りとなりました。

MT5のインジケータのExample 配下のインジケータは、その他のグループ配下のものと重複するものがあるようですが、(Example配下は単にインジケータそのものの提供だけでなくサンプルソースコードの提供もあるため、同一インジケータが存在するようです)

その重複を差し引いてもMT5の方が非常に多くのインジケータがすぐに使える状態になっています。

 

標準機能として備わっているものは市場参加者がよく使用するもの(=結果的によく見られ、機能しやすいもの)と考えられますので、まずはこの範囲のインジケータを中心に使用してみることをお勧めします。

どうしても標準機能で満たせない要件がある場合は、MT5、MT4共にカスタムインジケータを使用すれば独自のルールを機能化することができます。

尚、カスタムインジケータを作成する場合は、MT5を使用した方が圧倒的に有利です。 これはMT5で使用されるプログラミング言語(MQL5)と、MT4で使用されるプログラミング言語(MQL4)の違いによるものですが、 言語の機能差異についても大きな違いがあるため、言語の違いについては後述します。

MT5はチャートオブジェクトの種類が多い

以下の表は、MT4とMT5で利用可能なチャートオブジェクトの種類を比較したものです。

チャートオブジェクトの種類説明MT5MT4
垂直線チャート上の特定の時間を示す垂直線
水平線チャート上の特定の価格レベルを示す水平線
トレンドライントレンドの方向を示すための斜めの線
アングルトレンド一定の角度を持つトレンドラインで、価格の変動角度を示す
サイクルライン一定の周期で繰り返される市場の動きを示すための縦線
矢印線矢印の付いた線で、方向や特定の動きを示す
平行チャネル平行な2本のトレンドラインで構成されるチャネル
標準偏差チャネル移動平均線と価格の標準偏差を基にしたチャネル
回帰チャネル回帰分析に基づいたチャネル
アンドリューピッチフォーク3つのポイントを基に描かれるトレンドチャネル
ギャンラインギャン理論に基づく価格と時間の関係を示す
ギャンファン価格のサポートとレジスタンスレベルを示す
ギャングリッド価格と時間のバランスを視覚化する。
フィボナッチリトレースメント価格の反転ポイントを示すためのフィボナッチリトレースメント
フィボナッチタイムゾーン時間の経過に基づくフィボナッチレベルを示す
フィボナッチファン価格のサポートとレジスタンスレベルを示す
フィボナッチアーク価格の戻りとサポート・レジスタンスレベルを示す
フィボナッチチャネルフィボナッチ比率に基づいたチャネル
フィボナッチエクスパンション価格の戻りとサポート・レジスタンスレベルを示す
エリオット推進波価格が主要トレンドに沿って5つの波動で動くことを示す
エリオット修正波価格が主要トレンドに対して修正される際に3つの波動で動くことを示す
長方形特定の価格範囲を囲むために使用される長方形
三角形価格の収束や拡散を示すために使用される三角形
楕円形特定の価格範囲や注目する領域を強調するために使用される楕円形
サムズアップ特定のポイントを強調するために使用されるアイコンで、一般的には肯定的なシグナルを示す
サムズダウン特定のポイントを強調するために使用されるアイコンで、一般的には否定的なシグナルを示す
上向き矢印価格の上昇を示すために使用される矢印
下向き矢印価格の下降を示すために使用される矢印
ストップサイン特定のアクションを停止する必要があるポイントを示すアイコン
チェックサイン特定のポイントを確認するために使用されるアイコン
左プライスラベルチャートの左側に価格情報を表示するためのラベル
右プライスラベルチャートの右側に価格情報を表示するためのラベル
買いサインチャート上で買いシグナルを示すアイコン
売りサインチャート上で売りシグナルを示すアイコン
矢印チャート上で特定の方向やポイントを示すための基本的なアイコン
テキストチャート上に任意のテキストを追加
テキストラベル特定のポイントにラベルを付けるためのテキストオブジェクト
ボタンチャート上にインタラクティブなボタンを追加するオブジェクト
チャートデータの視覚化に使用されるグラフィカルな表示オブジェクト
ビットマップチャート上に画像を表示するオブジェクト
ビットマップレベル画像とテキストを組み合わせたラベルで、チャート上の特定のポイントに固定される
編集チャート上にテキスト入力フィールドを追加するオブジェクト
イベント特定のイベントをトリガーするためのオブジェクト
長方形ラベル長方形の背景を持つテキストラベル

MT5は44種類、MT4は31種類のオブジェクトが使用可能です。

これらの機能の違いは手作業でチャートの設定を行う場合だけでなく、カスタムインジケータを作成する場合に使用可能なオブジェクトの幅も広いことを意味します。

よりグラフィカルで操作性の高いインジケータを開発するうえでは、MT5を使用した方が大幅に有利です。

 

機能:MT5は pythonからの操作が可能

MT5は汎用的なプログラミング言語であるPythonとの連携が可能です。Pythonはデータサイエンスや機械学習の分野でも広く使用されている言語であり、その強力なライブラリとツールを活用することで、MT5単体では開発が難しいような機能を作成し連携する等することで、大幅に機能を拡張することができます。

Python用MetaTraderパッケージの機能

以下は、Python用MetaTraderパッケージを使用して、pythonからMT5の操作を自動に実行するための関数一覧です。

https://www.mql5.com/ja/docs/python_metatrader5

関数 アクション
initializeMetaTrader 5ターミナルとの接続を確立します
login指定されたパラメータを使用して取引口座に接続します
shutdownMetaTrader 5ターミナルへの以前に確立された接続を閉じます
versionMetaTrader 5ターミナルバージョンを返します
last_error最後に発生したエラーのデータを返します
account_info現在の口座に関する情報を取得します
terminal_info接続されているMetaTrader 5ターミナルのステータスとパラメータを取得します
symbols_totalMetaTrader 5ターミナルのすべての金融商品の数を取得します
symbols_getMetaTrader 5ターミナルのすべての金融商品を取得します
symbol_info指定した金融商品のデータを取得します
symbol_info_tick指定した金融商品の最後のティックを取得します
symbol_select気配値表示ウィンドウで銘柄を選択したり、ウィンドウから銘柄を削除したりします
market_book_add指定された銘柄の市場深度変更イベントにサブスクライブします
market_book_get指定された銘柄のMarketDepthエントリを特徴とするBookInfoからタプルを返します
market_book_release指定された銘柄の板情報変更イベントへの購読をキャンセルします
copy_rates_from指定された日以降のバーをMetaTrader 5ターミナルから取得します
copy_rates_from_pos指定されたインデックス以降のバーをMetaTrader 5ターミナルから取得します
copy_rates_range指定された期間のバーをMetaTrader 5ターミナルから取得します
copy_ticks_from指定された日以降のティックをMetaTrader 5ターミナルから取得します
copy_ticks_range指定された期間のティックをMetaTrader 5ターミナルから取得します
orders_totalアクティブな注文の数を取得します
orders_getアクティブな注文を取得します(銘柄またはチケットでフィルターする機能あり)
order_calc_margin指定された取引操作を実行するための証拠金を口座通貨で返します
order_calc_profit指定された取引操作の利益を口座通貨で返します
order_check必要な取引操作を実行するために充分な資金があるかを確認します
order_send取引操作を実行するリクエストを送信します
positions_totalポジションの数を取得します
positions_getポジションを取得します(銘柄またはチケットでフィルターする機能あり)
history_orders_total指定された期間内の取引履歴の注文数を取得します
history_orders_get取引履歴から注文を取得します(チケットまたはポジションでフィルターする機能あり)
history_deals_total指定された期間内の取引履歴の取引数を取得します
history_deals_get取引履歴から取引を取得します(チケットまたはポジションでフィルターする機能あり)

Python連携の利点

  1. MT5からのデータ収集自動化: MT5からレートや取引履歴データを自動収集し、Pythonの強力なデータ分析ライブラリ(Pandas、NumPy等)を利用して、収集データの加工、整形が可能です。
  2. 機械学習の活用: Scikit-learnやTensorFlow、Kerasなどの機械学習ライブラリを利用して、事前に収集したデータを元に取引戦略の予測モデルを構築できます。これにより、より高度なアルゴリズムトレードが可能になります。
  3. 売買処理の実装: Pythonから口座情報の取得、取引注文を行うことができます。MQL5に馴染みがないユーザーでもPythonから自動売買処理を作成することが出来ます。

 

MT5 vs MT4:バックテスト機能の違い

MT5は最適化を高速に実行できる

MT5は、取引戦略のバックテストと最適化を実行する際にマルチプロセス処理をサポートしています。これにより、複数のコアやプロセッサを同時に利用して計算を分担することが可能となり、最適化のスピードが大幅に向上します。マルチプロセス処理は、高度な計算能力を必要とする複雑な取引戦略の最適化において特に有効です。

MT5は複数PCに分散して最適化を実行できる

MT5は、複数のローカルネットワーク内にあるPCに分散してバックテストと最適化を実行する機能も提供しています。これにより、大規模なデータセットや複雑な戦略のテストを迅速に行うことができます。単一PC内でのマルチプロセスによる高速化に加え、ローカルネットワーク上の複数のコンピュータを利用して計算負荷を分散させることで、最適化の効率をさらに高めることができます。

MT5はクラウド上のリソースを活用して最適化を高速実行できる

MQL5クラウドネットワークというサービスを活用し、クラウドコンピューティングのリソースを活用してバックテストと最適化を高速で実行することができます。MetaTrader 5のクラウドネットワークを利用することで、トレーダーは個人のハードウェア制約を超えた計算能力を得ることができ、より迅速に最適化を完了することが可能となります。これにより、戦略の検証と調整にかかる時間を大幅に短縮できます。

MT5は証券会社に紐づくヒストリカルデータを入手できる

MT5は、証券会社と口座タイプに紐づくヒストリカルデータを取得することができます。これにより、トレーダーは実際の取引環境に基づいた正確なバックテストを実施したり、スプレッドやレートの傾向を正確に分析することで、より有利なトレード環境をデータに基づいて比較検討が出来るようになります。

尚、MT4もヒストリカルデータをダウンロードする機能はありますが、提供されるレートはログインしている証券会社のレートではなく、MetaQuotes社が用意したレートとなるため、取引を検討している証券会社のレートの品質を調べることは出来ません(証券会社によってはヒストリカルデータのをWebサイトからダウンロードできる場合もあるようです)。

MT4の場合は Tick Data Suite等のヒストリカルデータ(=Dukascopy社提供レート)を用意するサービスを通じて、信頼性の高いヒストリカルデータを入手し検証するケースが多いようです。

※MT5の場合でも、証券会社から提供されるヒストリカルデータの期間が十分でないこともあるため、Tick Data Suite 等のデータを活用することがあります。

MT5のヒストリカルデータは可変スプレッド、MT4は固定スプレッド

MT5のヒストリカルデータは、可変スプレッドをサポートしています。これにより、過去の市場データを使用したバックテストがより現実に近い形で実行できます。可変スプレッドは、実際の取引環境で見られるスプレッドの変動を反映するため、戦略の実行可能性をより正確に評価することができます。

一方、MT4はバックテストを実行する際に一律固定のスプレッド値を指定します。

スプレッドは指標発表前後や各市場の開閉タイミング、流動性の低下など様々な要因によって常に変化します。

一律のスプレッドでテストをすることは実体とズレたデータで評価していることになります。

よくヒストリカルデータの品質を語っているケースがありますが、ティックデータの欠損の有無について評価しているものでしかありません。

MT4でヒストリカルデータの品質が良いと言っても、スプレッドの影響を十分に考慮できていないことには注意が必要です。

MT5のデータモデルはリアルティックが選択できる、MT4は疑似ティックしかない

MT5のバックテスト環境では、リアルティック、全ティック(=疑似ティック)を使用することができますが、MT4は全ティック(=疑似ティック)のみ提供されています。

スキャルピングのようなティック毎のレートを重視する取引戦略の場合は、リアルティックによる検証が不可欠です。

前述の証券会社からの配信レートが使用できるかどうか、という点も大きく影響するため、これらを考慮した場合、MT4でスキャルピングのような処理を開発した場合、精度の高い検証が難しいと考えられます。

https://www.mql5.com/en/articles/75

MT5は複数銘柄を一括してバックテストできるが、MT4は単一銘柄のみ

MT5は、1つのバックテストの中で複数の銘柄に対して同時にバックテストする機能を提供しています。これにより、複数の市場や銘柄に対する戦略の効果を一括で検証することができます。この機能は、複数の通貨ペアや異なる資産クラスを対象とした戦略を持つトレーダーにとって非常に有用です。

 

プログラム言語の違い MQL5 vs MQL4

MQL5はオブジェクト指向に完全対応

プログラム言語としてのMQL4とMQL5の最大の違いの一つは、MQL5がオブジェクト指向プログラミング(OOP)に完全対応している点です。これは、より複雑で効率的なコードを書くことができるため、開発者にとって非常に大きな利点となります。

MQL5は、C++に近い構文を持ち、オブジェクト指向プログラミングに完全対応しています。これにより、以下のような品質の差異が生まれます。

項目MQL5(オブジェクト指向型プログラミング)MQL4(手続き型プログラミング)
再利用性 クラスとオブジェクトを使用してコードをモジュール化できるため、一度作成したコードを他のプロジェクトでも再利用できる コードの再利用が難しい。同じ機能を複数の場所で繰り返し実装する必要になる場合がある
保守性 コードが論理的に整理されるため、保守や拡張がしやすくなります。これにより、バグの修正や新機能の追加が簡単になります。 コードが複雑化しやすく、バグの発見と修正が難しくなる
可読性クラスとオブジェクトを使用することで、コードがより直感的に理解しやすく、チーム開発に向いている ロジックが分散しやすく、大規模なプログラム開発に向かない
高度な機能の実装 複雑なアルゴリズムやデザインパターンを実装することが可能。 より高度な取引戦略を構築することができる クラスやオブジェクトを使用した高度な機能の実装が難しく、複雑な取引戦略を構築する際には制約が多く困難

非常に簡単なロジックを作るだけならばMQL5, MQL4の差は大きくありませんが、 一度リリースした後にも継続して追加開発をした結果として規模が大きくなる可能性は十分にありますし、複雑な要件に対応していくためにはMQL5を使用した方が開発効率が圧倒的に高く、また保守もしやすくなります。

また、現在普及しているプログラミング言語の多くはオブジェクト指向をサポートしており、一般的なプログラム開発者にとって馴染みやすいのはMQL5となります。

「プログラム言語はMQL4しか書いたことがない」というような一部のレアな開発者からするとMQL5は馴染みにくいものですが、一般的なプログラム開発者であれば、MQL5を使用した方が直感的にコーディングが出来ることもあり、メリットが大きいと言えます。

MQL5は標準機能でデータベースアクセス(SQLite3)に対応

https://www.mql5.com/ja/docs/database

MQL5は標準機能でSQLite3データベースにアクセスすることが可能であり、取引データの管理や分析において多くの利点を提供します。一方、MQL4では標準でデータベースアクセス機能が提供されていないため、どうしても必要な場合は外部ライブラリやカスタムDLLを別途調達(独自開発、購入等)して利用する必要があります。

データベースアクセスが出来ることのメリット

  1. 高度なクエリ機能:
    • SQLを使用して複雑なクエリを実行することで、特定の条件に基づくデータの抽出や統計分析が容易に行えます。これにより、より高度なデータ分析が可能になります。
  2. データの永続性:
    • データベースを利用することで、取引履歴や分析結果を永続的に保存することができ、再起動後もデータが保持されます。これにより、過去の取引データを基にした継続的な分析が可能になります。
  3. 外部データの活用
    • MQL5からアクセスするデータベースに対して、 python等の外部アプリケーションを介して収集したデータを連携、蓄積することで、MT5の中では入手できないデータを元に取引判断をすることが出来ます。ニューストレード(感情分析)を実施したい場合などは、python経由でWeb上のデータを収集し、判定アルゴリズムを介してトレードを行う、といった戦略も考えられます。

MQL5は経済指標カレンダーのデータにアクセスできる

https://www.mql5.com/ja/docs/calendar

MT5に経済指標カレンダーを閲覧するための機能が統合されているように、MQL5からこれらのデータにアクセスすることも可能です。

これによって、EAの処理の中で該当通貨ペアの国に関連する経済指標の一覧を取得したり、その発表日時や重要度を元にエントリを抑制したり、ロットサイズや逆指値を調整するなど、高度な制御が可能になります。

但し、注意が必要なのは、この経済指標カレンダーのデータを取得する処理は内部的にはWebリクエストを使用しているようで、Webリクエストの実行が禁止されているバックテスト内でこれらの関数を使用するとMT5の内部仕様に違反し該当関数からの処理結果が得られない問題が起きてしまいます。

この問題を回避しつつ、経済指標データを活用するためには、前述のデータベースアクセスの機能も併せて活用すれば対応できます。

MQL5スクリプト等から経済指標データを事前に収集、SQLite3に蓄積しておき、バックテスト実行時にEAから該当データを読み込むことで過去の経済指標データも活用したロジックの検証が可能になります。

MQL5はONNXを使用した機械学習モデルをサポートしている

https://www.mql5.com/ja/docs/onnx

MQL5は機械学習モデルのオープンソース形式であるONNX(Open Neural Network Exchange)に対応した機械学習モデルを使用することができます。これは、取引戦略の精度向上や高度なデータ分析を行う上で大きなメリットとなります。

MQL5言語も行列計算等の機能拡張を受けて機械学習相当の機能を実装するハードルが下がっては来たものの、やはり豊富なライブラリが整備されているpython等と比較すると、開発効率はよろしくありません。

広く普及している開発方法で効率よく機械学習モデルを仕上げ、それをONNXモデルを介してMT5から参照すれば、全てMQL5で記述するよりも圧倒的に早く機械学習モデルをトレードに組み込むことが出来るようになります。

MT5はOpenCLを活用した高速な並列計算が可能

https://www.mql5.com/ja/docs/opencl

MQL5はOpenCL(Open Computing Language)を活用した高速な並列計算をサポートしています。これにより、取引戦略のパフォーマンスと効率性が大幅に向上します。一方、MetaTrader 4(MT4)はOpenCLをサポートしていません。

OpenCL(Open Computing Language)とは、異なるハードウェアプラットフォーム(CPU、GPU、FPGAなど)上で並列計算を実行するためのオープンスタンダードです。OpenCLは、計算集約型のタスクを複数のCPUプロセスに分散させることで、計算速度を向上させることができます。

ただ、処理速度が大幅に上がるという大きなメリットがある一方で、

  • 計算の高速化に必要なGPUを搭載したホストの用意が必要
  • OpenCLを使用するためのミドルウェアインストールなどの環境整備が必要
  • OpenCL独自の言語に対する理解が必要
  • ONNXモデル対応の影響で、無理にMQL5内で高速並列演算させる必要性が低下した

等のデメリットもあります。

広く配布する目的で作成するEAとは相性が悪いですが、 シグナル配信用EAや自分自身しか使用しないEAのような、特定の環境でのみ高速に動作するEAを作る場合には重宝しそうです。

MQL5は行列とベクトル計算に対応している

https://www.mql5.com/ja/docs/matrix

MQL5は行列(2次元配列)とベクトル(1次元配列)に格納したデータを直感的に計算するための関数群がサポートされています。複雑な数学的アルゴリズムや統計モデルを簡単に実装できるようになり、開発の効率が向上します。

また、機会学習等の高度な分析を行う際には多くの場合で行列計算を多用することからも分かる通り、従来別の言語で実装していた機械学習処理をMQL5に移植したい場合等に、これらの関数を活用し実装することが出来ます。

 

まとめ

改めて整理をしてみましたが、プラットフォームそのものとしての差も大きくなり、またプログラム言語としての差も大きく開いてきたことが分かりました。

新たに利用を検討される場合はMT5の利用を強くお勧めします。

また、同じMT5を使用するにしても、証券会社によって銘柄や提供スプレッドの差等の条件も大きく違うことが明らかになりましたので、MT5を使用する場合の証券会社も比較検討してみましょう。

 

比較に当たってはMetaQuotes社公式ヘルプを中心に事実確認を行いつつ自身の過去の経験も踏まえ整理しましたが、MT4は既に5年以上まともに触っていないので、もしかしたら認識違いや、何らかのTIPSでクリアできている問題があるかもしれません。もしお気づきの店があれば、ぜひコメント等でご指摘頂けますと幸いです。

SHARE:
この記事が気に入ったら
フォローしよう
最新情報をお届けします
あなたへのおすすめ

Smart Trading Strategyをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む