「1つのMTですべてのEAを動かせたら楽になるのに」と考えたことがあるかと思いませんか?
EAごとにMTを変えるのって正直、手間ですが……MTの乗り換えはおすすめできません。
なぜなら、MT4EAからMT5EAの乗り換えはうまくいく保証がないからです。MTの乗り換え作業がうまくいかなければ、不利益を被ってしまいます。
EAごとにMTを変えるのが面倒でも「乗り換え非推奨」の理由
- 互換性がなく、MT4用EAはMT5でそのまま使えない仕様になっているため
- 移行中にエラーが発生するリスクがあり、大切な資金に影響を及ぼす可能性も
- プログラム言語が異なるため、EAの改修や変換には高度な専門知識が必要
- 一度MT5に乗り換えると、MT4に戻すのが難しくなるケースもある
- 相場やEAごとの相性が異なり、MTを変えるとパフォーマンスが落ちることも
この記事では、
- MTの乗り換えで生じるデメリット
- 相場状況に合わせたMT4とMT5の使い分け
- MTごとのEAとの組み合わせ方
について解説します。
【関連記事】FX初心者必見!MT4とMT5の違いを徹底比較EA運用を最大化のコツには使い分け?
【関連記事】無料MT5EAおすすめ10選!EAの特徴・運用ヒントも合わせて紹介
完全無料!EA-BANKなら
100種類以上のEAが使い放題
EA-BANKに無料登録すると、100種類以上の優良なEAが無料で使い放題になります。
毎月のフォワードテストで、ランキングも表示され、優良なEAが丸わかり!
EA-BANKの無料会員登録はこちら
↓↓↓↓
MT4のEAはなぜMT5で使えない?初心者が押さえるべき5つのポイント
MT5でMT4対応EAは動きません。その理由は、MT4とMT5を動かしているプログラム言語が異なるからです。
MTは「EAから売買許可の信号が送られてきたら通貨Aを売る」などの命令文に基づいて動いていますが、MT4を動かすプログラム言語MQL4と、MT5を動かすMQL5では文法や単語が違います。
MT4とMT5のプログラム言語の違い
- MQL4とMQL5は異なるプログラム言語で構築されている
- MQL4は単純な命令処理に特化し、複雑な分析には不向きである
- MQL5は複数通貨や複雑な処理を同時に扱える高機能仕様である
- MQL4とMQL5の関数や記述ルールに互換性がないため、そのまま移植できない
- MT4用に作られたEAはMT5では動作しない仕組みとなっている
たとえるならMT4は日本語、MT5はアラビア語のようなもの。
日本語で「EAから売買許可の信号が送られてきたら通貨Aを売る」と書かれていれば理解できますが、アラビア語で同じことが書いてあってもなかなか理解できないですよね。
MTとEAにも同じことが言えます。EAからアラビア語で「今、通貨Aが買いどき」と言われても、MTは理解できません。つまり、MQL4で書かれたEAをMT5にそのままコピーしても、エラーが出て動作しないんです。
MT4とMT5に互換性がない理由はPC環境とトレーダーのニーズが関係している
- 当時はPCや回線が非力だったため、軽量で安定したMT4が開発された。
- MT4は1通貨ペア監視や9種類の時間足など必要最小限の機能を搭載した。
- 単純処理向きのMQL4で構築され、扱いやすさを重視した。
- 普及に伴い「複数通貨を同時監視したい」という要望が増えた。
- その対応にはMQL5が必要となり、MT5が誕生したが互換性はなかった。
2000年代前半、FXの自動売買に対する需要はすでに高まっていましたが、当時は現在のようにインターネット回線が速くないし、PCスペックも今より高くありませんでした。
つまり、MTの産みの親であるMetaQuest社は「どんなPCで稼働させても止まらない、かつ、誰でも使いやすいMT」の開発に着手します。
具体的には、MT4に1つの通貨ペアを監視できる機能を搭載。時間足を9種類するなど、ローソク足とインジケーターの数を厳選し「自動売買をするのに必要最小限の機能」だけを実装しました。
機能を必要最小限に留めたため、MT4は単純命令の処理が得意なMQL4での開発が最適だったのです。
MQL5はトレーダーが求めるEA運用を実現!
MT4とともに歩み始めた自動売買市場ですが、EA運用が普及するに連れて、トレーダーから「同時に複数の通貨ペアを監視したい」「通貨ペアの値動きをもっと詳しく見たい」と言った要望があがります。
MetaQuest社はトレーダーの声に応えるべく、複数通貨ペアの監視機能を実装しますが、前述のMQL4でそれを実装させると、MT自体の挙動が不安定になってしまうため、同社はMQL5を使って新たにMT5を開発しました。
MTを動かすプログラム言語が異なるために、MT4とMT5には互換性がありません。
しかし、MT5がリリースされた後も、利便性の良さを背景に一部トレーダーから「MT5でMT4対応EAを動かしたい」という声が上がり続けていました。
【関連記事】MT4EAとMT5EAの機能面の差を徹底比較!何が違って、何ができるのかを徹底解説!
MT4のEAをMT5で動かす方法はある…けれど便利とは言えない
MT5でMT4対応EAを動かすことを目的に一部トレーダーによって考案されたのが「コンバーター」と呼ばれるプログラムを使って、MT4対応EAをMT5上で動かす方法でした。
MT4・MT5とEAに互換性がないのはそれぞれを動かしているプログラム言語が異なるからです。
言い換えれば、EAのプログラム言語を変換してしまえば、 MT5で MT4対応EAを動かせるようになります。
しかし、変換は決しておすすめできません。
目的 | MQL4コード | MQL5コード | 注意点 |
成行の買い注文を出す | OrderSend(Symbol(), OP_BUY, 0.10, Ask, 3, 0, 0, “buy”, 0, 0, clrBlue); | #include <Trade/Trade.mqh>CTrade trade;trade.Buy(0.10, Symbol()); | MT5はトレードAPIが刷新されている。MqlTradeRequest/OrderSend()の低レベル実装か、CTradeクラスの高レベルAPIを使う。引数や戻り値の扱いが異なる。 |
移動平均の値を取得する | double ma = iMA(Symbol(), 0, 20, 0, MODE_SMA, PRICE_CLOSE, 0); | int h = iMA(Symbol(), PERIOD_CURRENT, 20, 0, MODE_SMA, PRICE_CLOSE);double buf[];CopyBuffer(h, 0, 0, 1, buf);double ma = buf[0]; | MT5はインジケータはハンドル方式。CopyBufferでバッファを読み出す。呼び出し回数やタイミングに注意。ハンドルはOnDeinitで解放する。 |
現在ポジションの情報を取得する | if (OrderSelect(0, SELECT_BY_POS, MODE_TRADES)) { string sym = OrderSymbol(); double vol = OrderLots();} | if (PositionSelect(Symbol())) { string sym; double vol; PositionGetString(POSITION_SYMBOL, sym); PositionGetDouble(POSITION_VOLUME, vol);} | 注文(Order)とポジション(Position)の概念が分離している。MT5はOrder*/Deal*/Position*の各APIを使い分ける。列挙体や取得関数も別物。 |
(コンバーターを使った変換例)
コンバーターを使った変換をおすすめしないのは、変換に失敗したらEAが動かなくなったり、トレードで損失を被ったりするからです。
EAの変換自体はコンバーターを使えば、概ね自動で行われますが、その精度は決して高くありません。
どんなに高スペックのPCを使ったとしても、ほぼ必ず上の表にあるようなエラーが出ます。
コンバーターで変換されていない箇所は手動で変換する必要がありますが、そのときには、スペルだけでなく、半角スペースの有無、括弧やイコールの半角全角も正確に書き直さなければなりません。
スペルや括弧が1文字でも間違えていれば、EAが動かなかったり、バックテストと真逆の動きをしたりします。EAが止まれば「おかしい」と異常に気がつけますが、EAが稼働したままバックテストやEA本来のロジックと逆の動きをしていた場合、損失がどんどん膨らみ続けます。
かつ、コンバーターを使った変換は一部トレーダーによって考案されたもの。MetaQuest社が公式に推奨している方法ではないんです。
つまり、MQL4→MQL5の変換はそもそもうまくいく保証がありません。
不要な損失を避けるため、ご自身のMT、MT・EAを守るため、MT4対応のEAは MT4で。MT5対応EAはMT5で稼働させましょう。
必要なのはMTごとのEAの乗り換えよりも、目的に合わせたMTとEAの使い分け!
MT4とMT5を比べると、性能はMT5のほうが上ですが実取引では必ずしも「高性能のほうが便利」とは言えません。
上述の通り、MT4でEAを稼働させたほうがいい場合もあれば、MT5を使うほうがいい場面もあります。
MTはリリース年や機能だけで一概に「MT5=最新で便利、MT4=古いからダメ」とは言えません。
自動売買で稼ぐために必要なのは、運用目的に合わせたMTと EAの使い分けです。
自分が使うべきEAを絞り込むために、「毎日コツコツ稼ぐならデイトレード」。
1ヵ月で腰を据えて稼ぐなら「長期運用」といったように自動売買で目指す稼ぎ方を具体化させる作業が重要になります。
EABANKならMT4もMT5もフル対応!選べるEAで収益を作る
「MT4対応EAはMT4で、MT5対応はMT5で」使うのがEA運用の基本です。
その上で、自動売買の稼ぎを左右するのがMTとEAの組み合わせです。
EABANKでは、「少額運用」「コツコツ稼ぐ(安定運用)」など、稼ぎ方別にランキング形式でおすすめのEAを紹介。すべてのEAのバックテストと過去取引を公開していますので、より実践向きのEAを選べるようになっています。
MT4にも、MT5にも、それぞれのEAにあった運用の良さがあります。ただ、それは実際にEAを使ってみないとわかりません。
だからこそ登録無料で100種類以上のMT4のEAとMT5EAが使い放題のEABANKをぜひ、ご活用ください!
EABANKなら最新のMTの5EAを自分に合ったEAを使い比べながら、安心して運用を始められます。
「最新のMT5EAを使ってFXに挑戦してみたい」
「自分のトレードをMT5EAでレベルアップさせたい」
そう思った方は、今すぐEABANKに無料登録して一歩を踏み出しましょう!
完全無料!EA-BANKなら
100種類以上のEAが使い放題
EA-BANKに無料登録すると、100種類以上の優良なEAが無料で使い放題になります。
毎月のフォワードテストで、ランキングも表示され、優良なEAが丸わかり!
EA-BANKの無料会員登録はこちら
↓↓↓↓