MT4とMT5の違い|EAは互換性がない・ヘッジ口座とネッティング口座の見分け方
MT4用のEAやインジケーターは、MT5ではそのまま動きません。プログラミング言語がMQL4とMQL5で別で、関数名や事前定義変数が違うため、ソースコード(.mq4)をMQL5に書き換えて、MT5でコンパイル(.ex5)し直す必要があります。逆方向も同じです。実行ファイルだけ(.ex4)を持っていても、MT5用に変換する方法は、MQL5のフォーラムでも「ソースコードが必要」と回答されています。
この記事では、MT4とMT5の違い、EAが動かない理由、ヘッジ口座とネッティング口座の違いと見分け方、どちらを選ぶかの考え方をまとめます。Titan FXの公式ページに書かれた対応状況も例に使います。
この記事について:MT5の使い方と、公式資料の確認方法の解説です。Titan FXの口座開設を勧めるものではありません。Titan FXは、金融庁の「無登録で金融商品取引業を行う者の名称等について」に掲載があります(確認日:2026年10月7日)。経緯と調べ方は海外FX業者が金融庁に登録されているか調べる方法とTitan FXでMT5を使う前に確認する6項目にまとめています。
(確認:MetaQuotes「MetaTrader 5とMetaTrader 4の比較」、MQL5リファレンス「MQL4からの移行」「口座情報」、MetaTrader 5ヘルプ、Titan FXヘルプセンター。確認日:2026年10月7日。サンプルコードはMetaEditorでコンパイル確認。ログインした口座での実行結果は、この記事では確認していません。.ex4が動かないことについて、MQL5リファレンスやMT5ヘルプに直接の記述は見つけられず、フォーラムの回答と、言語の違いの記述にもとづいています)
MT4とMT5の違い(MetaQuotesの比較ページ)
| 項目 | MT5 | MT4 |
|---|---|---|
| 時間軸 | 21 | 9 |
| 未決注文のタイプ | 6 | 4 |
| テクニカルインディケータ(標準) | 38 | 30 |
| グラフィックオブジェクト | 44 | 31 |
| ストラテジーテスター | マルチスレッド、多通貨、実際のティック | シングルスレッド |
プログラミング言語もMT5が「MQL5」、MT4が「MQL4」です。MQL5リファレンスは、MQL5を「MQL4が進化したもの」と説明し、前の世代との互換性を最大限保つものの、言語の間にはいくつかの違いがあり、移行する時は注意が必要だと書いています。
EAやインジケーターが動かない理由(MQL4からの移行)
MQL5リファレンス「MQL4からの移行」には、次のような違いが挙げられています。
| MQL4 | MQL5 |
|---|---|
init/start/deinitの3つの特別関数 |
OnInit/OnStart(スクリプトのみ)/OnDeinit。EAはOnTick、インジケーターはOnCalculateが主な処理の入り口 |
事前定義変数Ask・Bid・Barsなど |
これらの変数はない。Digits・Pointは_Digits・_Pointとつづりが違う |
時系列Open[]・High[]・Low[]・Close[]・Time[]など |
定義済みの時系列はない。必要な深さを、時系列にアクセスする関数で指定する |
| — | EAはOnTickを必須としない(複数のイベントのハンドラを持てる) |
つまり、MT4のコードをそのままMT5のMetaEditorに貼って、コンパイルが通るとは限りません。OnCalculateがないインジケーターは、コンパイルもできません。MT5でのコンパイルエラーの見方はMQL5のコンパイルエラーが消えないにまとめています。
EAの導入手順はMT5にEAを入れる方法、インジケーターはMT5にインジケーターを追加する方法にあります。ファイルがMT5用(.ex5)かどうかは、ここで確かめられます。
ヘッジ口座とネッティング口座
MT5には、ポジションの持ち方が2種類あり、どちらになるかは口座ごとに業者が決めます(MT5ヘルプ)。
| ネッティング | ヘッジ | |
|---|---|---|
| ポジション | 1つの銘柄に、1つの共通ポジションだけ | 1つの銘柄に、反対方向を含めて複数のポジション |
| 同じ方向の追加注文 | 既存のポジションの数量が増える | 新しいポジションが別に開く |
| 反対方向の注文 | 既存のポジションが減る・決済される・反転する | 反対方向の新しいポジションが開く(両建て) |
| 決済の方法 | 同じ銘柄・同じ数量で、反対方向の取引をする | ポジションを指定して「ポジション決済」を選ぶ |
EAのコードにも影響します。ネッティングの口座で、ヘッジ口座の前提で書かれたEAを動かすと、注文が思い通りに積み上がらないことがあります。決済の方法はMT5の決済方法とMQL5でポジションを決済する方法にあります。
口座がどちらかを確かめる
次のスクリプトで、いまログインしている口座の方式を表示できます。MetaEditorで0エラー・0警告でコンパイルできることを確認しています。ログインした口座での表示は、この記事では確認していません。
void OnStart()
{
ENUM_ACCOUNT_MARGIN_MODE mode = (ENUM_ACCOUNT_MARGIN_MODE)AccountInfoInteger(ACCOUNT_MARGIN_MODE);
switch(mode)
{
case ACCOUNT_MARGIN_MODE_RETAIL_NETTING:
Print("ネッティング口座です(1つの銘柄に1つのポジション)");
break;
case ACCOUNT_MARGIN_MODE_RETAIL_HEDGING:
Print("ヘッジ口座です(1つの銘柄に複数のポジション)");
break;
case ACCOUNT_MARGIN_MODE_EXCHANGE:
Print("エクスチェンジ方式の口座です(株式市場向け)");
break;
}
}
Titan FXのヘルプセンターには、同社が提供する口座はMT4・MT5ともヘッジ口座のみで、画面の左上に「Netting」と出る時は、正しくログインできていない可能性がある、と書かれています。また、デモ口座の申請時の「取引時にヘッジを使用する」は選べない、とも書かれています(MT5でデモ口座を開く方法)。
どちらを使うか
- 手持ちのEA・インジケーターが、MT4用かMT5用かを先に確かめる。ソースコード(.mq4/.mq5)があるかどうかも見る
- ソースがなければ、EAを使う側のプラットフォームに合わせる。MT4用の.ex4なら、MT4の口座を選ぶ
- ソースがあれば、書き換えて移すこともできる。ただし、書き換えは、単なるコピーでなく、動作の確認が必要な作業です
- EAを試すなら、デモ口座で、同じ口座の種類・同じ契約サイズで確かめる(MT5でデモ口座を開く方法)
業者が両方に対応しているかも確かめます。Titan FXの公式ページには、口座タイプ3種類ともMT4とMT5の両方に対応と書かれています(Titan FXでMT5を使う前に確認する6項目)。ただし、それぞれ別の口座として開設します。同じ口座でMT4とMT5を切り替えられるという記述は、確認した資料では見つかりませんでした。
まとめ
- MT4用のEA・インジケーターは、MT5ではそのまま動かない。MQL4とMQL5は別の言語で、関数や変数が違う
- .ex4は、MT5用に変換できない。ソースコード(.mq4)を書き換えて、MT5でコンパイルし直す
- MT5にはネッティングとヘッジの2つの方式があり、業者が口座ごとに決める。スクリプトで確かめられる
- 使うEAがどちら向けかを先に決めてから、口座のプラットフォームを選ぶと、手戻りが少ない
金融庁への登録状況の確認は海外FX業者が金融庁に登録されているか調べる方法にまとめています。
免責事項
この記事は情報提供を目的としたもので、投資助言ではありません。特定の業者・口座・取引を勧めるものではなく、売買のタイミングや金額を示すものでもありません。
外国為替証拠金取引は、為替変動により元本を割り込む可能性があります。レバレッジをかけた取引では、証拠金を上回る速度で損失が拡大する場合があります。過去の実績や記載された条件は、将来の結果を保証しません。
記載した取引条件は確認日時点の公式ページ・ヘルプの内容であり、その後変更される場合があります。取引に関する判断は、読者自身の責任で行ってください。


