MT4のEAはMT5に移植できるか|作り直しになる範囲と費用を開発元が解説

MT4のEAはMT5に移植できるか|作り直しになる範囲と費用を開発元が解説
※免責事項
本記事は情報提供を目的としており、特定の金融商品の購入・売却を推奨するものではありません。FX取引にはリスクが伴い、投資元本を失う可能性があります。投資判断はご自身の責任において行ってください。

MT4のEAは、MT5にファイルを置いても動きません。MT4とMT5は書かれている言語が違い、コンパイル済みのファイルにも互換性がないためです。当社 EA CreatorsLAB は MT4/MT5 のEA制作と既存EAの改修を承っている開発工房で、MT4とMT5の間の移植は25,000円からお受けしています。本記事では、移植で実際に作り直しになる範囲と、成績が同じにならない理由、依頼した場合の費用の考え方を整理します。投資判断はご自身の責任で行ってください。

▦ この記事の結論
  • 移植はファイル変換ではなく書き直し。MQL4とMQL5は別の言語で、ex4をMT5に置いても読み込まれない。
  • 作り直しになるのは主に注文まわり。MT5では注文の出し方も、注文とポジションの数え方も構造が変わる。
  • インジケーターの値の読み方も変わる。MQL5はハンドルを取ってから配列にコピーする2段階になる。
  • 最大の落とし穴はネッティング口座。同じ銘柄でポジションを1つしか持てないため、ナンピンや両建ての設計はそのまま移せない。
  • ロジックが同じでも成績は一致しない。口座方式・約定・ヒストリの質が変わるため。
  • 他人のEAの移植は著作権者の許諾が前提。認証回避や規約違反にあたる依頼はお受けしていない。
目次

MT4のEAがMT5で動かない理由

動かない理由は単純で、MT4とMT5では使われているプログラミング言語が別物だからです。MT4のEAはMQL4、MT5のEAはMQL5で書かれており、文法が似ている部分はあるものの、取引に関わる中核の部分は設計そのものが違います。

ex4とex5は互換性がない

手元にあるEAの拡張子が .ex4 であれば、それはMT4向けにコンパイルされたファイルです。MT5が読み込むのは .ex5 で、形式が違うためフォルダに入れても一覧に出てきません。設定で解決する話ではなく、EAの中身をMQL5で書き直してコンパイルし直す以外に道がありません。

インジケーターも同じ事情です。.ex4 のインジケーターはMT5では読み込まれないため、EAが外部インジケーターを参照している場合は、そのインジケーターの側も併せて用意する必要が出てきます。ここを見落とすと、EA本体だけ移植して動かないという状態になります。開発環境そのものの違いは EA開発環境の構築手順 に整理しています。

「変換」という言葉が誤解を生む

移植は変換と呼ばれることが多いのですが、実態は同じ仕様のEAをMQL5でもう一度作る作業に近くなります。売買のルール、つまりどこで入ってどこで決済するかという考え方は流用できますが、それを実現するコードは書き直しになります。

この認識のずれが、見積りを見たときの「思ったより高い」という感覚につながります。ファイルを通せば終わる作業だと想定していると、実際の工数と噛み合いません。何が流用できて何が書き直しになるのかを先に把握しておくと、判断の材料がそろいます。

MT5で使うための3つのルート

取れる道はMT5版を探す・自動変換ツールを試す・制作を依頼するの3つです。順に費用が上がりますが、扱える範囲と確実性が違うため、単純な安い順の比較にはなりません。

▦ 3ルートの比較
観点 MT5版を探す 自動変換ツール 制作を依頼
費用EA本体の価格のみ無料から数千円当社は25,000円から
必要なもの配布元にMT5版があることmq4のソースコード仕様が説明できること
注文まわりの再現配布元が対応済み手直しが前提設計しなおして再現
ネッティング対応版による基本的に非対応口座方式を確認して対応
向いている場面市販EAを使っている自作の単純なEA実運用に乗せる

MT5版を探すのが最も安く済む

市販EAの場合、配布元がMT5版を用意していることがあります。まず確認したいのはここです。作者が自分で移植したものであれば、仕様のずれが最も小さくなります。購入者向けに無償で配布されている場合もあるため、販売ページやサポート窓口を先に当たると手間が省けます。

自動変換ツールは手直しが前提

MQL4のコードをMQL5向けに書き換える補助ツールは存在します。ただしこれらが機械的に置き換えられるのは、変数の宣言や計算処理といった取引に直接関わらない部分が中心です。注文の発注、ポジションの検索、決済といった中核は構造が違うため、変換後に人手で組み直す作業が残ります。

そもそも変換ツールを使うには .mq4 のソースコードが要ります。ex4しか手元にない場合、このルートは選べません。ソースが無い状態でできること・できないことは mq4ファイルがないEAは改造できるか に整理しています。

MQL4とMQL5で作り直しになる4つの部分

当社が実際に移植を手がけて工数の大半を占めるのは、注文の出し方・ポジションの数え方・インジケーターの読み方・銘柄情報の取り方の4つです。売買ルールの中身ではなく、その周辺の作法が変わることが工数の正体になります。

▦ 移植で書き直しになる箇所
1 発注 …….. 引数の羅列から構造体へ
2 保有の確認 .. 注文とポジションが別管理に
3 インジ参照 .. ハンドル取得と配列コピーの2段階に
4 銘柄情報 …. 小数点桁数や最小変動幅の取り方
売買条件そのものは流用できます。変わるのはその外側です。

発注は構造体を組み立てる形になる

MQL4では、通貨ペアや売買種別、ロット、価格などを引数として並べて注文関数を呼び、戻り値としてチケット番号を受け取る形でした。MQL5では、注文の内容を MqlTradeRequest という構造体に詰め、結果を MqlTradeResult で受け取る形に変わっています。

戻り値の意味も変わります。MQL5の発注関数が返すのは成否を表す真偽値で、これが真であっても注文が約定したことを意味しません。取引システムに受け付けられたところまでを表すため、実際の結果は結果構造体の応答コードを見て判定します。MQL4の感覚のまま移すと、注文が通っていないのに通ったものとして次の処理へ進む不具合になります。

注文とポジションが別々に数えられる

ここが移植で最も間違いが起きやすい部分です。MQL5ではまだ約定していない待機注文と、すでに建っているポジションが別の概念として管理されます。保有中のポジション数を数える関数と、未決の注文数を数える関数が分かれており、それぞれ別の一覧を見に行きます。

MQL4では両方が同じ一覧に並んでいたため、同じつもりで移すと保有本数の判定がずれます。指値やストップ注文を併用するEAでは、待機注文をポジションとして数えてしまい、上限に達したと誤判定して新規が止まる、といった形で表面化します。エラーが出ないぶん気づきにくい種類の不具合です。

インジケーターの値は2段階で読む

MQL4では、移動平均やRSIの値は関数を呼べばその場で返ってきました。MQL5では、まずインジケーターのハンドルを取得し、そのハンドルを指定して配列へ値をコピーしてから読むという2段階になります。呼び出しのたびに計算するのではなく、用意された指標から必要な範囲を取り出す考え方です。

この違いは、外部インジケーターを参照するEAで特に効いてきます。ハンドルの取得は起動時に一度だけ行い、以降は使い回すのが基本形になるため、呼び出しの位置そのものを設計しなおすことになります。値がまだ用意されていない場合の扱いも考慮が必要です。サインを読んで発注する仕組みの考え方は サインツールはEA化できるか にまとめています。

MQL5そのものの書き方や、注文を扱いやすくする仕組みについては MQL5 EA開発入門 で扱っています。自分で書き直す場合は、こちらを先に読むと全体像がつかめます。

移植を承れる案件とお断りする案件

結論から書くと、ご自身が権利を持つEA、または著作権者の許諾があるEAであればお受けできます。許諾のない他人のEAの移植、認証の回避にあたる依頼、配布元の利用規約に違反する依頼はお断りしています。

▦ お受けできない依頼
  • 著作権者の許諾がない他人のEAをMT5向けに作り直す依頼
  • 口座認証や期間制限を回避する目的の依頼
  • 配布元の利用規約が改変や移植を禁じているEAの依頼
  • 入手経路が説明できないEAの依頼

判断に迷う場合は、販売ページの記載や同梱の規約をあわせてお知らせいただければ確認します。

自分で発注したEAなら問題になりにくい

制作を依頼して作られたEAは、契約の内容によって権利の所在が決まります。当社の場合は納品後のお客様側での利用範囲を事前に明示していますが、他社に依頼したEAを別の業者が移植してよいかは、その契約しだいです。契約書や取引時の記載を確認しておくと安心です。権利まわりの考え方は 依頼で作ったEAの著作権はどうなるか に整理しています。

ソースコードが無い場合の扱い

ex4しか手元にない場合、当社では中身を取り出す方法での移植はお受けしていません。取れる道は、配布元にMT5版とソースの有無を問い合わせるか、ご自身が把握している売買ルールを仕様として書き起こし、それをもとにMQL5で新しく作るかのどちらかになります。

後者は移植ではなく新規制作の扱いになりますが、売買ルールそのものは著作権の保護対象ではありません。エントリー条件や決済条件を言葉で説明できるのであれば、それをもとに別のコードとして作ることは可能です。ここは実務上よく相談を受ける部分です。

移植しても成績が同じにならない理由

コードを正しく書き直しても、MT4での成績とMT5での成績は一致しません。理由は口座の方式、約定の仕組み、検証データの質という3つの層に分かれています。この点を先に把握しておかないと、移植後に「壊れているのではないか」という疑いに時間を使うことになります。

ネッティング口座では複数ポジションが持てない

MT5の口座には、同じ銘柄でポジションを1つしか持てない方式と、複数持てる方式の2種類があります。前者はネッティングと呼ばれ、同じ銘柄で追加の注文を出すと既存のポジションと合算されます。買い1ロットを持っている状態で売り1ロットを出すと、両建てにならずポジションが消えるという挙動になります。

この方式では、ナンピンや分割エントリー、両建てを前提としたEAは設計をそのまま移せません。1本ずつの損切り位置や利確位置を個別に管理していた部分が成立しなくなるためです。ヘッジング方式の口座であればMT4と同じように複数ポジションを持てるため、移植を検討する段階で口座がどちらなのかを先に確認しておくと手戻りがありません。

当社で移植のご相談を受けたとき、最初に伺うのがこの点です。ナンピン系のEAでネッティング口座を使う予定であれば、移植ではなく合算された1つのポジションを前提とした作り直しになり、工数の見立てが変わります。ナンピン設計そのものの考え方は ナンピンEAの仕組みとリスク で扱っています。

検証データの前提が変わる

MT5のバックテストは、MT4より細かい価格の動きを再現できる仕組みを備えています。精度が上がるのは利点ですが、同じ期間を検証しても結果は変わります。MT4で良好だった成績がMT5で落ちる場合、EAが壊れたのではなく、より現実に近い条件で測り直された結果であることがあります。

逆に、MT4側の検証がもともと粗い前提で行われていた場合、その成績を基準に移植の成否を判断すると誤った結論になります。検証精度の差については TDSバックテストと通常テストの精度差 に、バックテストだけで判断する危うさは バックテスト成績だけのEAを信用してはいけない理由 にまとめています。

約定と銘柄名の違い

同じ業者でも、MT4口座とMT5口座でスプレッドや約定の速さが違うことがあります。加えて銘柄名の末尾に記号が付く口座もあり、通貨ペア名を固定で書いているEAはそこで止まります。移植時には、稼働させる口座の銘柄名をそのまま使う形に直しておくのが確実です。

小数点以下の桁数や最小変動幅の扱いも、MT5では取得の作法が変わります。損切り幅を数値で指定しているEAでは、この取り違えがそのまま損切り位置のずれになります。細かい部分ですが、実運用では成績に直結します。

移植を依頼した場合の費用と納期

当社の料金は改造の基本料金に項目を加算する方式で、移植は基本料金10,000円にMT4とMT5の間の移植15,000円を加えた25,000円からです。売買ルールから作り直す扱いになる場合はEA制作として20,000円からとなり、どちらになるかは元のEAの構造と口座方式によって変わります。相談の段階で費用はかかりません。

工数を決める4つの要素

見積りが動くのは、ソースコードの有無、ポジション管理の複雑さ、外部インジケーターの参照有無、口座方式の4つです。単一ポジションで完結するシンプルなEAは軽く、複数ポジションを個別管理するEAは重くなります。外部インジケーターを参照している場合は、そのインジケーターの移植も必要になるため別途になります。

▦ 移植を依頼した場合の料金
改造の基本料金 10,000円
MT4とMT5の間の移植 +15,000円
合計 25,000円から

ロジックの解析を伴う場合は10,000円、改造後のMQLソース公開は5,000円、2〜3日の特急対応は3,000円がそれぞれ加算されます。売買ルールから作り直す場合はEAの新規制作として20,000円からです。確定金額は見積りでご確認ください。

依頼時に渡していただくもの

お渡しいただきたいのは、元のEAのソースコード、パラメータの一覧、稼働させる予定の口座の情報です。ソースが無い場合は、売買ルールを言葉で説明していただければ新規制作として進められます。口座については、業者名とMT5の口座方式が分かれば十分です。

あわせて、移植後にどこまで同じ動きを求めるかを伝えていただけると精度が上がります。完全に同一の挙動を求めるのか、実運用で成立すればよいのかで、詰める範囲が変わるためです。伝え方の型は EA制作の仕様書はどう書くか に、費用の内訳は EAの制作依頼はいくらか に掲載しています。

移植するかMT4のまま使うかの判断基準

移植が常に正解というわけではありません。MT4のまま使い続けるほうが合理的な場面もあります。判断の分かれ目は、MT5でなければ困る理由が具体的にあるかどうかです。

MT4のまま使うほうがよい場面

今のEAが安定して動いており、使っている業者がMT4を提供し続けているのであれば、急いで移す理由は薄くなります。移植には費用がかかるうえ、成績が変わる可能性を抱えることになるためです。当社が販売しているEAもMT4専用として提供しており、MT4での運用を前提に設計しています。

ナンピンや両建てを前提としたEAで、稼働先の口座がネッティング方式しか選べない場合も、移植の効果は限定的です。設計そのものが成立しなくなるため、別のEAを検討したほうが早いことがあります。

移植を検討したほうがよい場面

逆に、使いたい業者や口座タイプがMT5しか提供していない、取引したい銘柄がMT5側にしかない、といった事情があるなら移植の意味があります。MT5でしか実現できない条件が先にある場合は、費用をかける根拠がはっきりします。

細かい価格の動きを踏まえた検証をやり直したい、という動機もあります。MT4で作った戦略をより現実に近い条件で測り直す目的であれば、移植は投資として説明がつきます。自作と外注の比較そのものは EAは自作・外注・既製品どれがよいか で整理しています。

MT4からMT5への移植でよくある質問

MT4のEAをMT5のフォルダに入れれば動きますか?
動きません。MT4のEAは .ex4、MT5のEAは .ex5 という別形式で、MT5はex4を読み込みません。設定で解決する話ではなく、中身をMQL5で書き直してコンパイルしなおす作業が要ります。インジケーターも同様です。
自動変換ツールを使えば移植できますか?
部分的には可能ですが、手直しが前提です。機械的に置き換えられるのは計算処理など取引に直接関わらない部分が中心で、発注やポジション管理の中核は構造が違うため人手で組み直す必要があります。加えて、変換ツールを使うには mq4 のソースコードが要ります。
mq4ファイルが無くても移植してもらえますか?
当社では中身を取り出す方法での移植はお受けしていません。取れる道は、配布元にMT5版とソースの有無を問い合わせるか、把握している売買ルールを仕様として書き起こし、それをもとにMQL5で新しく作るかのどちらかです。売買ルール自体は著作権の保護対象ではないため、後者は成立します。
購入した市販EAを移植してもらえますか?
著作権者の許諾があればお受けできます。許諾のない移植、認証の回避にあたる依頼、配布元の利用規約が改変を禁じているEAの依頼はお断りしています。まず配布元にMT5版の有無を確認していただくと、費用をかけずに解決することがあります。
移植すれば成績も同じになりますか?
同じにはなりません。口座方式、約定条件、検証データの精度がそれぞれ違うためです。特にネッティング方式の口座では同じ銘柄で1つしかポジションを持てないため、ナンピンや両建てを前提としたEAは挙動そのものが変わります。稼働予定の口座方式を先に確認してください。
移植の費用と納期はどのくらいですか?
当社の場合、改造の基本料金10,000円にMT4とMT5の間の移植15,000円を加えた25,000円からです。ロジックの解析を伴う場合や特急対応は加算になります。売買ルールから作り直す扱いであればEA制作として20,000円からです。納期は規模により数日からで、見積り時にお伝えします。
MT4はいつまで使えますか?
現時点で提供終了の時期は公表されていません。使っている業者がMT4を提供し続けているのであれば、慌てて移す必要は薄いと考えています。MT5でなければ困る理由が具体的にあるかどうかを先に確認すると、判断がぶれません。
▦ NEXT ACTION

まず配布元にMT5版があるか稼働予定の口座がネッティングかヘッジングかの2点を確認してください。前者が見つかれば移植そのものが不要になり、後者が分かれば工数の見立てが決まります。当社 EA CreatorsLAB では可否の相談に費用はかかりません。ご依頼はココナラ経由で承っています。

※ 本記事は情報提供を目的としており、特定の金融商品の購入・売却を推奨するものではありません。FX取引にはリスクが伴い、投資元本を失う可能性があります。投資判断はご自身の責任において行ってください。記載の料金は当社のものであり、内容により変わります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次