技術講座

MT4からMT5への技術移行完全ガイド|MQL4資産・EA・インジケーター作り直しの考え方

MT4からMT5への技術移行完全ガイド|MQL4資産・EA・インジケーター作り直しの考え方の内容を表す、MQL4資産・EA・インジの確認用アイキャッチ画像
EAファンクラブ

MT4で使っていたEA、インジケーター、スクリプト、MQL4ソース、setファイル、検証結果を、MT5へ移行したいと考える場面があります。

ただし、MT4のEAやインジケーターを、そのままMT5へ入れて動かすことはできません。MT4とMT5では、対応する実行ファイル、MQL言語、注文管理、インジケーターバッファ、バックテスト環境、外部連携の扱いが異なるためです。

この記事では、MT4からMT5へ移行する前に確認したい、MQL4資産、EX4 / MQ4、EAの注文管理、インジケーターのバッファ、外部連携、setファイル、バックテスト条件、作り直し時の仕様整理についてまとめます。

このページは、MT4 / MT5 / MQL4 / MQL5の技術学習記事です。投資判断、売買タイミング、利益保証、勝率保証、推奨ロット、推奨銘柄、推奨エントリー、特定ブローカー誘導を目的とした内容ではありません。

MT4からMT5への移行で最初に確認すること

MT4からMT5へ移行したい場合、最初に確認するべきことは「同じものをそのまま動かせるか」ではなく、「どの資産を、どの目的で、MT5向けに作り直すのか」です。

MT4用のEAやインジケーターは、基本的にMT4専用です。MT5で使うには、MQL5向けに再設計または作り直しが必要になります。

確認項目内容最初に確認すること
対象ファイルEA、インジケーター、スクリプト、ライブラリEX4だけか、MQ4ソースがあるか
移行目的同等再現、機能整理、通知追加、外部連携追加など完全再現を目指すか、仕様を見直すか
注文管理MT4の注文管理とMT5のポジション・約定管理EAが何を管理しているか
インジケーター値矢印、ライン、サイン、バッファ値EAから読む必要があるか
検証条件MT4バックテスト、MT5バックテスト、デモ確認同じ結果になる前提にしない

MT4からMT5への移行は、単純な変換作業ではなく、既存仕様を確認して、MT5の構造に合わせて再設計する作業と考える方が安全です。

MT4とMT5の違いを技術面から見る

MT4とMT5は、画面の見た目が似ている部分もありますが、技術的には別のプラットフォームです。

EAやインジケーターの移行では、取引管理、イベント関数、バックテスト、時間足、板情報、外部連携、ファイル配置などの違いを確認する必要があります。

項目MT4MT5移行時の確認
開発言語MQL4MQL5ソースの書き換え・作り直しが必要
実行ファイルEX4EX5EX4はMT5でそのまま使えない
ソースファイルMQ4MQ5自動変換ではなく再設計が必要な場合がある
注文管理Order中心の設計が多いOrder / Deal / Positionを分ける決済・履歴・損益集計の考え方を見直す
インジケーターMQL4バッファ設計MQL5バッファ・handle・CopyBuffer設計EA連携時はiCustom / CopyBufferを確認する
バックテストMT4テスターMT5 Strategy Tester同一条件の再現が必要

MT4とMT5の違いは、単に画面や操作の違いではありません。EAやインジケーターの内部構造にも影響します。

MQL4とMQL5の違い

MQL4資産をMQL5へ移す際は、ファイル拡張子の変更だけで完了とは扱いません。イベント関数、注文・ポジション管理、時間足やインジケーター参照などの実装差を洗い出し、MQL5側のAPIと実行モデルに合わせて適応します。

MQL4とMQL5は、どちらもMetaTrader向けの開発言語ですが、同じコードをそのまま共通利用できるものではありません。

特にEAでは、注文処理、ポジション管理、履歴取得、イベント処理、標準ライブラリ、構造体の扱いが異なります。

比較項目MQL4側MQL5側作り直し時の確認
注文処理OrderSend、OrderSelectなどを使う設計が多いOrderSend、MqlTradeRequest、CTradeなどを使う注文、決済、変更の責務を整理する
保有管理注文単位で扱う設計が多いPosition、Order、Dealを分けて扱うMagic Number、symbol、ticket管理を見直す
履歴取得注文履歴を参照する設計が多いHistorySelect、Deal、Order履歴を使う損益集計や再エントリー条件を確認する
インジ連携iCustomの戻り値を直接扱う設計が多いhandle作成後にCopyBufferで取得するバッファ番号とshiftを確認する
構文・型MQL4の書き方MQL5の型や構造体に合わせるコンパイルエラーを前提に確認する

MQL4からMQL5への移行では、見た目の関数名が似ていても、内部の考え方が変わる場合があります。

MQL5開発の入口は、MQL5開発入門も参考にしてください。

MT4側の言語・機能と学習範囲を確認する

MT4とMT5の基本的な違い

対応する開発言語の違い

MT4では主にMQL4、MT5では主にMQL5を使ってEAやインジケーターを作成します。

MQL4とMQL5は似ている部分もありますが、同じ言語としてそのまま扱えるわけではありません。発注・決済、注文・ポジション管理、イベント処理、標準ライブラリ、インジケーターバッファなどに違いがあります。

項目MT4MT5
主な開発言語MQL4MQL5
EAソースmq4mq5
EA実行ファイルex4ex5
インジケーターmq4 / ex4mq5 / ex5
設定値保存setファイルsetファイル
主なログ確認Experts / JournalExperts / Journal / Tester関連ログ

EA・インジケーターのファイル形式の違い

MT4用のEAやインジケーターは主に .mq4 / .ex4、MT5用は主に .mq5 / .ex5 形式です。

拡張子が違うだけではなく、内部で使用する言語やAPI、注文・ポジション処理なども異なるため、MT4用ファイルをMT5へそのまま配置して使用することは基本的にできません。

ファイル形式対象環境意味改修時の扱い
.mq4MT4MQL4ソース内容・権利を確認して改修検討
.ex4MT4コンパイル済みファイル内部ロジックの直接改修は原則困難
.mq5MT5MQL5ソース内容・権利を確認して改修検討
.ex5MT5コンパイル済みファイル内部ロジックの直接改修は原則困難
.mqhMT4 / MT5include・共通部品依存ファイルとして確認が必要
.setMT4 / MT5Inputs設定現在設定や検証条件の確認に使用

バックテスト環境の違い

MT4にもMT5にもEAを検証するためのテスト機能がありますが、テスト環境や内部の実装前提が同一ではありません。

MT4からMT5へEAを再構築した場合、MT4側のバックテスト結果とMT5側の結果を、条件を確認せず単純比較しないことが重要です。銘柄、時間足、期間、スプレッド、初期証拠金、Inputs、setファイルなどを分けて記録してください。

  • どちらのプラットフォームで検証したか
  • 対象EAのバージョンが一致しているか
  • 銘柄名・サフィックスが一致しているか
  • 時間足・期間が一致しているか
  • Inputs・setファイルがどの設定か
  • スプレッドなどの検証条件が一致しているか
  • ログにエラーや注文失敗が出ていないか

操作画面・設定画面の違い

MT4とMT5は画面構成が似ていますが、ナビゲーター、テスター、注文画面、設定項目、ログ画面などには違いがあります。

不具合相談や導入確認では、「MT4かMT5か」を必ず明示し、EA・インジケーター名、バージョン、対象銘柄、時間足、Inputs、ログとあわせて整理してください。

確認項目確認する内容相談時に整理する情報
利用環境MT4またはMT5現在使っているプラットフォーム
対象ファイルExperts / Indicators等mq4、mq5、ex4、ex5、mqhの有無
設定Inputs、setファイル現在値、変更希望、使用set
ログExperts、Journal発生時刻前後の内容
画像チャート、設定、エラー表示機密情報を伏せたスクリーンショット

EA開発で見たMT4とMT5の違い

発注・決済処理の考え方

EA開発では、発注、決済、注文変更、エラー処理の違いが特に重要です。

MT4とMT5では注文やポジションを扱う仕組みが異なるため、MT4用EAをMT5へ移行する場合、発注・決済部分だけを機械的に置き換える方法では不足することがあります。

  • 新規注文を出す条件
  • 発注前チェック
  • 注文結果の確認方法
  • 決済対象の識別方法
  • SL / TPの設定・変更
  • 注文失敗時のログ
  • 必要に応じた再試行処理

ポジション管理の考え方

EAでは、現在保有している注文・ポジションをどう認識し、どこまでを自分の管理対象にするかが重要です。

MT4からMT5へ移行する場合は、MT4側で使用していた注文識別や履歴検索の考え方を、そのまま移せるとは限りません。ナンピンEA、複数ロジックEA、コピーEA、半裁量EAなどでは特に慎重な仕様確認が必要です。

また、MT5側では利用する口座構成によってポジション管理の前提も確認する必要があります。既存MT4 EAのポジション管理仕様をそのまま前提にせず、対象口座で必要な管理方法を仕様として整理します。

確認項目確認する内容移行・改修前に整理すること
管理対象どの注文・ポジションをEAが管理するか手動注文を含めるか、EA注文のみか
マジックナンバーEAやロジックを識別する番号現在使用中のマジック一覧
銘柄対象銘柄・サフィックス端末上の正式な銘柄名
方向BUY / SELLの管理範囲両方向を独立して扱うか
複数ロジックロジックごとの独立管理ロジック別設定・識別方法
既存ポジションEA起動前から存在するポジション管理対象にするかどうか

マジックナンバー管理

マジックナンバーは、EAが自分の注文・ポジションを識別するために使われる情報です。

MT4/MT5どちらでも、複数EAや複数ロジックを使う場合は識別方法の整理が重要です。移行や改修時に管理範囲が曖昧だと、対象外のポジションを管理したり、管理すべきポジションを見落としたりする原因になります。

  • EAごとのマジックナンバー
  • ロジックごとの識別
  • BUY / SELLの管理範囲
  • 手動注文の扱い
  • 既存ポジションの扱い
  • 他EAとの重複有無

ログ確認と不具合調査

EAが動かない、注文しない、決済しない、設定が反映されない場合は、画面だけでなくログを確認します。

MT4/MT5のどちらでも、ExpertsログとJournalログは重要です。相談時には、発生時刻前後のログ、EA名、バージョン、銘柄、時間足、使用したsetファイル、再現手順を整理してください。

ログ主に確認すること使う場面
ExpertsログEA側の初期化、条件判定、注文・決済、通知EAが何を判断したか確認する時
Journalログ端末側の接続、取引許可、注文結果等注文・接続・端末側の問題を確認する時
テスト時のログ初期化、注文、エラー、設定値検証環境で再現する時
外部連携ログ通知、WebRequest、レスポンス、失敗理由Discord・API等を確認する時

インジケーター開発で見たMT4とMT5の違い

表示系の違い

インジケーターは、チャート上にライン、矢印、サイン、数値、パネル、サブウィンドウなどを表示する補助ツールです。

MT4用インジケーターとMT5用インジケーターでは、計算・描画・バッファ処理などの実装が異なる場合があるため、MT4用ファイルをMT5へ配置するだけでは利用できません。

  • メインチャート表示か
  • サブウィンドウ表示か
  • ライン表示か
  • 矢印・サイン表示か
  • パネル・ラベル表示か
  • アラート・通知を含むか
  • EAから値を参照しているか

バッファ・描画・通知の違い

インジケーターでは、計算した値をチャートへ表示したり、EAから参照したりするためにバッファや描画設定を使用します。

MT4からMT5へ移行する場合は、見た目だけでなく、値の計算、バッファ、サイン位置、通知タイミング、リペイントの有無などを確認する必要があります。

確認項目表示中心通知・EA連携あり
ライン・矢印表示位置、色、太さ、条件表示条件と判定条件を分けて確認
サブウィンドウ表示範囲、値、描画方法EA等から参照する値も確認
アラート必要性を確認通知タイミング、重複防止を確認
外部通知通常は不要な場合が多いWebRequest、Webhook等を確認
EA連携なしの場合もある取得する値・サイン・確定タイミングを確認

MT4インジケーターをMT5へ移行する場合

MT4用インジケーターは、MT5へそのまま移して利用することは基本的にできません。

mq4ソースがある場合は、現在の計算・描画・通知仕様を確認したうえでMQL5向けに再実装を検討できます。ex4しかない場合は内部ロジックを直接確認できないため、画面、設定、仕様資料などをもとに必要な機能を整理します。

ソースコードがある場合とない場合

手元にあるファイル確認できること基本的な扱い
mq4MT4用ソースを確認できる権利確認後、MT4改修またはMT5再構築を検討
ex4内部ロジックは直接確認できない仕様や画面から再構築範囲を整理
mq5MT5用ソースを確認できるMT5内で改修可否を確認
ex5内部ロジックは直接確認できない仕様説明や資料が必要

MQL4とMQL5の違い

MQL4とは

MQL4は、主にMT4向けのEA、インジケーター、スクリプト等を作成するために使われる言語です。ソースファイルは主にmq4形式で保存されます。

MQL5とは

MQL5は、主にMT5向けのEA、インジケーター、スクリプト等を作成するために使われる言語です。ソースファイルは主にmq5形式で保存されます。

MQL4からMQL5は単純変換ではない

MQL4からMQL5へ移行する場合、単純な文字置換や拡張子変更だけで対応できるとは限りません。

特に、発注・決済、ポジション管理、インジケーターバッファ、イベント処理、オブジェクト描画、外部連携、ファイル操作、ログ出力などを含む場合は、MT5側の仕様に合わせた見直しが必要になります。

機能移行時の主な確認確認する内容
表示中心のインジ計算・描画の再確認表示条件、バッファ、色、位置
サイン通知付きインジ通知処理まで確認サイン条件、重複防止、WebRequest
単純なEA発注・決済を再確認注文条件、決済条件、ロット
複数ロジックEA管理設計を再確認ロジック識別、ポジション、ログ
ナンピン・グリッドEAポジション単位の管理を再確認段数、追加条件、ロット、決済
外部連携付きEA通信・認証・失敗処理を確認WebRequest、送信先、認証、ログ

MT4からMT5への移行時に照合する主な項目

MT4からMT5へ移行する場合は、「コンパイルできるか」だけでなく、元の製品が持っている仕様を機能単位で照合します。

分類確認内容
EntryBUY / SELL条件、判定足、判定タイミング、再エントリー
Execution発注、ロット、スプレッド制限、注文失敗時の処理
Position管理対象、マジック、方向、複数ポジション、既存ポジション
ExitTP / SL、条件決済、時間決済、トレーリング、一括決済
Indicator計算方法、バッファ、サイン、確定足、リペイント
UIパネル、ボタン、ラベル、ライン、表示位置
Notificationアラート、Discord等、通知タイミング、重複防止
ExternalWebRequest、API、CSV、外部設定、認証
Log初期化、条件未達、注文結果、エラー、通知結果
Validation銘柄、時間足、期間、set、検証方法、期待動作

MQL4とは何か

MT4向けの開発言語

MQL4は、MetaTrader 4、つまりMT4向けの開発言語です。

MT4上で動くEA、インジケーター、スクリプト、補助ツールなどを作るために使われます。MT4のチャート、価格データ、注文情報、口座情報、インジケーター値などを参照し、条件に応じて表示、通知、注文、決済、集計などを行うプログラムを作成できます。

用語意味確認すること
MT4取引プラットフォームEAやインジを動かす環境
MQL4MT4向けの開発言語EA・インジ・スクリプトを作る言語
mq4MQL4のソースファイル改修や内容確認に重要
ex4コンパイル済みファイルMT4で実行するファイル
setInputs設定ファイル現在設定の確認に使用

EA・インジ・スクリプトの作成に使う

MQL4では、主にEA、カスタムインジケーター、スクリプトを作成できます。

EAは、条件に応じて注文や決済、ポジション管理、通知などを行うプログラムです。インジケーターは、チャート上にライン、矢印、サイン、数値、アラートなどを表示する補助プログラムです。スクリプトは、1回だけ実行する処理や、操作補助に使われることがあります。

種類主な役割相談時に確認すること
EA注文、決済、管理、通知、操作補助売買実行の有無、条件、ロット、ログ
インジケーター表示、サイン、アラート、集計表示条件、通知条件、色、時間足
スクリプト一度だけ実行する処理実行内容、対象、誤操作防止
補助ツールログ、通知、集計、確認補助対象データ、出力先、通知先

MQL5との違いを簡単に確認する

MQL4はMT4向け、MQL5はMT5向けの開発言語です。

名前は似ていますが、完全な互換性があるわけではありません。MQL4で作られたEAやインジケーターをMT5で使いたい場合、MQL5用に作り直しが必要になることがあります。

特に、発注・決済処理、ポジション管理、インジケーターバッファ、イベント処理、外部連携、ファイル操作などを含む場合は、単純変換ではなく仕様確認が必要です。

MQL4で作れる主なもの

EA

MQL4では、MT4上で動くEAを作成できます。

EAは、条件に応じて注文や決済を行うものだけでなく、既存ポジションの管理、通知、操作パネル、ログ出力、取引補助などを行うものもあります。

カスタムインジケーター

MQL4では、MT4用のカスタムインジケーターを作成できます。

チャート上にライン、矢印、サイン、ラベル、数値、サブウィンドウ表示などを行うことができます。アラートやメール通知、外部通知を組み合わせる場合もあります。

スクリプト

スクリプトは、MT4上で一度だけ実行する処理に使われます。

たとえば、チャート上のオブジェクト整理、ファイル出力、確認用の処理、手動操作の補助などが考えられます。ただし、注文や決済に関わる処理を行う場合は、誤操作防止やログ確認が重要です。

通知・集計補助

MQL4では、アラート、メール、プッシュ通知、ログ出力、CSV出力、状態表示などの補助機能を作成できます。

通知や集計は、取引結果を保証するものではなく、状態確認や記録を補助するための機能です。通知が届かない場合は、通知設定、MT4本体設定、Expertsログ、外部連携設定を分けて確認します。

操作補助ツール

MQL4では、チャート上にボタンやラベルを表示し、操作を補助するツールを作ることもできます。

ただし、ボタン操作で注文や決済を行う場合は、誤操作防止、確認ログ、対象ポジション、マジックナンバー、銘柄名を明確にする必要があります。

作れるもの主な用途確認するポイント
EA注文、決済、管理、通知条件、ロット、マジック、ログ
インジケーター表示、サイン、アラート表示条件、色、時間足、通知
スクリプト一回実行の操作補助実行内容、対象、誤操作防止
通知ツール条件成立や状態変化の通知通知先、通知条件、ログ
集計補助損益、履歴、状態の整理集計対象、期間、出力形式

MQL4 EAでできること

エントリー条件

MQL4 EAでは、価格、インジケーター値、時間、スプレッド、ポジション状態などを条件にして、新規エントリー判定を作ることがあります。

ただし、条件を作ることと、利益や勝率を保証することは別です。開発相談では、売買結果ではなく、どの条件で処理を実行するかを機能仕様として整理してください。

決済条件

EAでは、利確、損切り、時間決済、条件反転、トレーリング、建値移動などの決済条件を作ることがあります。

決済条件を相談する場合は、どのポジションを対象にするのか、BUY/SELLで同じ条件か、マジックナンバーで分けるのか、手動ポジションを含めるのかを整理してください。

ロット管理

EAでは、固定ロット、入力ロット、倍率、段階ロットなどのロット管理を行う場合があります。

ロットに関する相談では、推奨ロットではなく、EAがどの値を参照し、どのように注文ロットを計算するかという仕様として整理します。

マジックナンバー

マジックナンバーは、EAが自分の注文やポジションを識別するための番号です。

複数EA、複数ロジック、手動注文が混在する場合は、マジックナンバーの整理が重要です。改修や不具合調査では、どのマジックを対象にするのかを明確にしてください。

時間制御

MQL4 EAでは、稼働時間、曜日、サーバー時間、停止時間、ニュース時間帯などを条件にする場合があります。

時間制御を相談する場合は、PC時間なのか、MT4サーバー時間なのか、何時から何時まで有効なのかを整理してください。

通知

EAでは、起動、停止、注文、決済、エラー、状態変化などを通知する機能を作ることがあります。

通知機能を使う場合は、通知条件、通知先、重複通知防止、通知ログを確認してください。外部通知を使う場合は、Webhook URLやAPIキーなどの実値を公開場所へ貼らないよう注意が必要です。

EA機能整理する内容相談時の注意点
エントリー条件どの条件で注文判定するか売買助言ではなく仕様として整理する
決済条件どの条件で決済するか対象ポジションを明確にする
ロット管理固定、入力、倍率、段階など推奨ロットではなく計算仕様として扱う
マジック管理EA・ロジック・手動注文の区別他EAとの重複に注意する
時間制御稼働時間、曜日、停止条件サーバー時間かPC時間か確認する
通知通知条件、通知先、ログ認証情報やURLの扱いに注意する

MQL4インジケーターでできること

サイン表示

MQL4インジケーターでは、条件に応じて矢印、マーク、ラベルなどを表示できます。

サイン表示を依頼する場合は、BUY条件、SELL条件、表示位置、確定足か未確定足か、サインの再描画やリペイントの扱いを整理してください。

ライン表示

ライン表示では、移動平均線、バンド、水平線、トレンドライン、独自計算ラインなどを表示できます。

表示されない場合は、色、太さ、表示対象、計算期間、チャート背景との同化、ローソク足数を確認します。

アラート

インジケーターにアラート機能を追加すると、条件成立時にポップアップや音で知らせることができます。

アラートが鳴らない場合は、インジケーター側の通知ON/OFF、通知条件、重複防止、Expertsログを確認してください。

メール通知

MT4本体のメール設定を使って、インジケーターからメール通知を行う場合があります。

メール通知を使う場合は、MT4本体の設定、インジケーター側の通知設定、通知条件、送信ログを分けて確認してください。

集計表示

インジケーターでは、損益、ポジション数、スプレッド、時間、サイン履歴、検証用の統計などを表示することがあります。

集計表示は、状態確認や検証補助を目的としたものです。表示結果が利益や損失回避を保証するものではありません。

チャート補助

チャート補助として、背景色変更、セッション表示、時間帯表示、価格ライン、注釈、ラベルなどを作ることもあります。

表示系の相談では、スクリーンショットが重要です。現在の表示と変更したい表示を、画像やメモで整理してください。

MQL4とは何を作るための言語か

MT4用EA

MQL4では、MT4用のEAを作成できます。

EAは、条件判定だけでなく、注文、決済、ロット、MagicNumber、ポジション管理、エラー確認、ログ出力などを扱います。チャート上に表示するだけではなく、MT4上で実際に売買処理を実行するため、確認範囲が広くなります。

EAを学ぶ場合は、いきなり複雑なロジックを作るのではなく、まずは条件判定、ログ出力、注文処理、決済処理、エラー処理を分けて理解することが重要です。

カスタムインジケーター

MQL4では、チャート上にライン、矢印、文字、サブウィンドウ表示などを出すカスタムインジケーターも作成できます。

インジケーターは、主に表示や通知を担当します。売買実行は行わず、チャート上に情報を表示したり、条件成立時にアラートを出したりする用途に向いています。

初心者がMQL4を学ぶ場合、まずは売買実行を伴わない表示系インジケーターから始めると、エラー確認やデータ取得を整理しやすくなります。

スクリプト

MQL4では、1回実行型のスクリプトも作成できます。

スクリプトは、チャートへ適用したタイミングで処理を実行する用途に使われます。たとえば、チャート情報を確認する、ログを出す、ファイルへ簡単な情報を保存するなど、学習用の小さな処理に向いています。

EAやインジケーターより処理の流れを把握しやすいため、MQL4の基本文法やログ確認の練習にも使えます。

補助ツール

MQL4では、売買ロジック以外の補助ツールも作成できます。

たとえば、ログ確認補助、チャート上の情報表示、通知補助、ファイル出力、検証結果の整理などです。これらは売買判断ではなく、MT4上の確認作業を補助する目的で使います。

作れるもの主な役割学習時の確認ポイント
EA注文、決済、ポジション管理注文処理、エラー処理、MagicNumber
インジケーター表示、通知、サイン表示バッファ、描画、リペイント
スクリプト1回実行の処理基本文法、ログ出力、ファイル確認
補助ツール確認・記録・通知の補助ログ、画面表示、外部連携

MQL4を学ぶ前に決めること

EAを作りたいのか

まず、作りたいものがEAなのかを確認してください。

EAは、エントリー条件、決済条件、ロット、MagicNumber、最大ポジション、取引時間、通知、ログ、注文エラー処理まで扱います。学習範囲が広いため、表示系から始める場合よりも検証項目が増えます。

EAを作りたい場合は、「どの条件で注文するか」だけでなく、「注文しない条件」「注文に失敗した時のログ」「既存ポジションの扱い」まで整理してください。

インジを作りたいのか

インジケーターを作りたい場合は、表示したい内容を整理します。

ラインを出すのか、矢印を出すのか、サブウィンドウに表示するのか、アラートを出すのか、通知を送るのかによって、必要な学習内容が変わります。

インジケーターでは、バッファ、オブジェクト描画、チャート更新、リペイントの有無、確定足の扱いを確認することが重要です。

既存改修か新規作成か

MQL4を学ぶ目的が、既存EAや既存インジケーターの修正なのか、新規作成なのかも分けてください。

既存改修では、現在のコード構造、Inputs、関数、注文処理、決済処理、ログ、コメントと実装の整合を確認する必要があります。新規作成では、最初から責務を分けて設計できます。

既存コードを修正する場合は、変更前のファイルを必ず保存し、変更箇所と変更理由を記録してください。

表示だけか売買実行か

表示だけの機能と、売買実行を伴う機能は分けて考えます。

表示だけであれば、チャート描画、ラベル、矢印、アラート、ログが中心です。売買実行を伴う場合は、注文、決済、ロット、証拠金、取引時間、エラー処理、MagicNumber管理まで確認する必要があります。

目的最初に決めること確認範囲
EA自作注文・決済を行うかエントリー、決済、ログ、エラー処理
インジ自作何を表示するかバッファ、描画、通知、リペイント
既存改修どこを変えたいか既存仕様、Inputs、ログ、影響範囲
補助ツール何を確認・記録したいかログ、ファイル、画面表示、通知

学習順の考え方

基本文法

最初は、変数、条件分岐、関数、配列、ループ、コメント、ログ出力を確認します。

MQL4はC系の書き方に近い部分があります。まずは小さなスクリプトや表示だけの処理で、コードを書いてコンパイルし、ログに結果を出す練習をすると確認しやすくなります。

チャート情報の取得

次に、チャート情報や価格情報の取得を確認します。

現在の通貨ペア、時間足、Bid、Ask、ローソク足の始値・高値・安値・終値、インジケーター値などを取得し、ログへ出す練習をします。

ここで重要なのは、見た目のチャートと、コードが参照している値を分けて確認することです。

インジケーター作成

表示系を学ぶ場合は、カスタムインジケーターの作成に進みます。

ライン表示、矢印表示、サブウィンドウ表示、バッファ値、アラート通知などを確認します。EA化を考える場合は、インジケーターの表示がEAから参照できる値として整理されているかも確認します。

EAの注文処理

EAを作る場合は、注文処理を慎重に確認します。

OrderSend、OrderClose、OrderModifyなどの注文関連処理は、条件判定だけでなく、ロット、価格、スリッページ、SL/TP、MagicNumber、エラー処理と関係します。

最初から複雑な売買ロジックを作るのではなく、ログで条件成立を確認し、その後に注文処理を分けて確認する流れが安全です。

ログ確認

MQL4学習では、ログ確認を早い段階から習慣化してください。

Expertsログ、Journalログ、MetaEditorのコンパイル結果を見れば、コードがどこで止まっているのか、設定値が正しく読まれているのか、注文エラーが出ているのかを確認できます。

学習段階確認する内容確認方法
基本文法変数、条件分岐、関数、配列小さなコードとコンパイル確認
チャート情報価格、時間足、ローソク足ログ出力で値を確認
表示系ライン、矢印、バッファチャート表示とログを比較
EA処理注文、決済、エラー処理ExpertsログとJournalログを確認
検証バックテスト、動作確認条件、set、ログを保存

初心者がつまずきやすい点

コンパイルエラー

MQL4学習で最初につまずきやすいのが、コンパイルエラーです。

セミコロン抜け、括弧の不足、変数名の間違い、関数名の間違い、型の不一致、ファイルの文字コード、関連ファイル不足などでエラーが出ることがあります。

エラーが出た場合は、MetaEditorのエラー一覧で、ファイル名、行番号、エラー内容を確認してください。複数エラーが出ている場合でも、最初のエラーが原因で後続エラーが連鎖していることがあります。

配列

ローソク足やインジケーター値を扱う場合、配列の向きや参照位置で混乱しやすくなります。

現在足を見ているのか、1本前の確定足を見ているのか、過去の足を見ているのかを整理してください。未確定足を使うと、値が変化する可能性があります。

時間足

MQL4では、チャート時間足と、コード内で参照する時間足を分けて確認する必要があります。

チャートに表示している時間足を使うのか、固定時間足を参照するのか、複数時間足を使うのかによって、結果が変わります。

OrderSend

OrderSendは、EAで新規注文を出す時に使われる代表的な注文処理です。

ただし、OrderSendを使えば必ず注文が通るわけではありません。ロット、価格、スプレッド、取引時間、証拠金、SL/TP距離、自動売買設定、口座状態などにより、注文エラーが出る場合があります。

MagicNumber

MagicNumberは、EAが自分の注文やポジションを識別するための番号です。

複数EAを同じ口座で使う場合、MagicNumberが重複していると、別EAの注文を管理対象にしてしまう場合があります。EA開発では、どの注文を管理対象にするかを明確にする必要があります。

リペイント

インジケーター開発では、リペイントの有無にも注意が必要です。

過去に出ていたサインが後から消える、移動する、色が変わるような挙動がある場合、EA化や通知化ではどのタイミングの値を使うかを慎重に決める必要があります。

既存コードを読む時の注意

関数の役割

既存コードを読む場合は、まず関数ごとの役割を確認してください。

初期化、終了処理、メイン処理、エントリー判定、決済判定、注文処理、通知処理、ログ出力、外部連携がどの関数に分かれているかを整理します。

Inputs

Inputsは、EAやインジケーターの設定項目です。

既存コードを読む場合は、Inputsの名前、初期値、単位、ON/OFF、実際に使われている場所を確認してください。Inputsに項目があっても、コード内で使われていない場合や、コメントと実装が異なる場合があります。

注文処理

EAの既存コードでは、注文処理の場所を確認します。

OrderSend、OrderClose、OrderModifyなどがどこで呼ばれているか、どの条件で実行されるか、注文エラー時にログが出るかを確認してください。

決済処理

決済処理は、EAの挙動確認で重要です。

固定TP/SL、反対サイン、トレーリング、建値移動、時間決済、損益条件、手動決済との関係を整理してください。複数の決済条件がある場合は、優先順位も確認します。

ログ

既存コードを読む時は、ログがどこで出ているかも確認します。

ログが不足していると、条件が成立していないのか、注文で失敗しているのか、外部連携で止まっているのか判断しにくくなります。改修時には、必要なログを追加するかどうかも検討します。

コメントと実装の不一致

既存コードでは、コメントと実装が一致していない場合があります。

コメントには「1回だけ通知」と書かれていても、実装ではティックごとに通知している場合があります。コメントだけで判断せず、実際にどの条件で処理が動くかを確認してください。

読む場所確認すること注意点
Inputs設定名、初期値、使用箇所表示だけで使われていない項目に注意
判定関数エントリー・決済条件コメントと実装の差を確認
注文処理OrderSend、OrderClose、OrderModifyエラー時ログの有無を確認
ログ出力初期化、判定、注文、決済原因追跡に足りるか確認
外部連携WebRequest、通知、ファイル出力URLや認証情報の扱いに注意

MQL4とMQL5は何が違うのか

MT4向けとMT5向けの違い

MQL4は、主にMT4向けのEA、インジケーター、スクリプトを開発するために使われます。

MQL5は、主にMT5向けのEA、インジケーター、スクリプトを開発するために使われます。

どちらもMetaTrader系の言語ですが、対象となるプラットフォームが異なるため、実行ファイル、注文・ポジション管理、イベント処理、インジケーターの取得・描画などを同一仕様として扱うことはできません。

項目MQL4MQL5
主な対象MT4MT5
ソースファイルmq4mq5
実行ファイルex4ex5
主な用途MT4用EA・インジケーター・スクリプトMT5用EA・インジケーター・スクリプト
EAFCの新規開発新規開発は原則対象外基本対象
既存製品の改修ソース・仕様確認後に判断ソース・仕様確認後に判断
MT4→MT5移行移行元として仕様を確認再設計・再実装先として整理

似ている部分があっても別環境として確認する

MQL4とMQL5には、変数、条件分岐、関数、クラスなど、考え方や記述が似ている部分もあります。しかし、既存EAやインジケーターを実際に改修・移行する場合は、対象環境ごとに仕様を確認する必要があります。

特に、注文・決済を行うEA、複数ポジションを管理するEA、ナンピン・グリッドEA、コピーEA、複数ロジックEA、外部通知を持つツール、複数バッファを使うインジケーターでは、単純なコード置換では不足する可能性があります。

新規開発か既存改修かを最初に分ける

開発相談では、最初に「新しく作るもの」なのか「現在使っているものを直すのか」を分けてください。

新規開発の場合、EAFCではMT5 / MQL5を基本とします。既存MT4 / MQL4製品の場合は、現在のソースコード、仕様、ログ、変更内容を確認して、MT4のまま修正するか、MT5へ移行・再構築するかを判断します。

相談内容基本方針最初に確認するもの
新規EA開発MT5 / MQL5を基本仕様、Entry、Exit、表示、ログ、検証条件
新規インジケーター開発MT5 / MQL5を基本計算条件、表示、バッファ、通知
既存MT4製品の修正MQL4ソースと改修範囲を確認mq4、mqh、set、ログ、現在仕様
既存MT5製品の修正MQL5ソースと改修範囲を確認mq5、mqh、set、ログ、現在仕様
MT4からMT5へ移行MQL5向けに再構築範囲を確認mq4、仕様、画面、ログ、残す機能

EA開発でのMQL4とMQL5の違い

発注処理

EA開発では、条件判定だけでなく、発注前チェック、注文送信、結果確認、失敗時の処理までを一連の仕様として確認します。

MQL4とMQL5では注文・取引処理の扱いが異なるため、MQL4側の発注コードをそのままMQL5へ移すだけでは、同じ挙動を再現できない場合があります。

  • 注文条件
  • ロット計算
  • スプレッド・取引時間等の発注前チェック
  • 注文結果の確認
  • SL / TP設定
  • 注文失敗時のログ
  • 必要な場合の再試行処理

Order・Position・Deal・Historyの考え方

MT4からMT5への移行では、注文や保有状態の管理方法を改めて整理する必要があります。

特にMT5側では、注文、約定、保有ポジション、履歴をどのように参照・管理するかを仕様として分けて確認します。MT4側の注文チケット中心の処理を、そのままMT5側のポジション管理へ置き換えられるとは限りません。

ナンピンEA、複数ロジックEA、コピーEA、半裁量EA、既存ポジションを管理するEAなどでは、この違いが移行時の重要な確認点になります。

MT5のポジション管理方式も確認する

MT5向けEAでは、対象口座でどのようにポジションを管理するのかも仕様確認が必要です。

既存MT4 EAが「同一銘柄で複数ポジションを個別管理する」ことを前提としている場合などは、MT5側の対象環境に合わせてポジション識別や決済対象の考え方を確認します。

マジックナンバー

マジックナンバーは、EAやロジックの注文・ポジションを識別するために利用されます。

移行時には、現在使用しているマジック、複数ロジックでの識別方法、手動注文の扱い、他EAとの重複、既存ポジションの扱いなどを整理してください。

決済・保護処理

決済では、対象ポジションの識別、TP / SL、条件決済、時間決済、トレーリング、建値移動、部分決済、一括決済などを個別に確認します。

MT4版と同じ画面上の結果だけを見るのではなく、「どのポジションを、どの条件で、どの順序で処理するか」まで仕様として確認することが重要です。

エラー処理とログ

移行後に「動かない理由」を確認できるようにするため、ログ設計も重要です。

初期化、設定値、条件未達、発注前チェック、注文結果、決済結果、外部連携結果、エラーなど、必要な状態を確認できるログを整理すると、不具合調査や検証を進めやすくなります。

EA項目確認内容MT4→MT5移行時のポイント
EntryBUY / SELL条件、確定足、時間帯判定タイミングを再確認
Execution発注、ロット、SL / TP、注文結果取引処理をMT5向けに確認
Position管理対象、方向、マジック、既存ポジションポジション識別方法を再設計する場合がある
Exit条件決済、時間決済、トレーリング等決済対象と優先順位を確認
Recovery再起動後・既存状態の扱い復元対象と識別方法を整理
Log判定、注文、決済、エラー移行後の比較に必要な情報を残す

インジケーター開発でのMQL4とMQL5の違い

計算・表示バッファ

インジケーターでは、計算した値をチャートへ描画したり、EA等から取得したりするためにバッファを使用する場合があります。

MQL4とMQL5では、インジケーターの構成やバッファの扱いが異なる部分があるため、MT4インジケーターをMT5へ移行する場合は、計算式だけでなく、各バッファの役割や描画方法も確認します。

インジケーターハンドルと値の取得

既存MT4 EAが標準・カスタムインジケーターの値を参照している場合、MT5移行時には値の取得方法も確認対象になります。

「同じインジケーター名を使っているから同じコードでよい」とは限りません。どの値を、どのバーから、どのタイミングで取得するかを明確にします。

チャート描画

ライン、矢印、ラベル、パネル、サブウィンドウなどを表示するインジケーターでは、見た目だけでなく描画更新のタイミングも確認します。

MT4側の表示をMT5側で再現する場合は、表示位置、色、太さ、矢印、ラベル、サブウィンドウ、オブジェクト更新などを分けて整理してください。

確定足・リペイント・通知

サインインジケーターでは、現在足で値が変化するのか、確定足で固定するのか、過去表示が後から変わるのかを確認します。

通知を追加する場合は、表示条件と通知条件を分け、同じ条件で複数回通知しないための制御や、通知タイミングも整理します。

外部通知・外部連携

Discord通知、Webhook、Google Sheets、WebRequest、外部APIなどを含む場合は、MQLコード以外に外部連携仕様も確認します。

送信先、送信内容、認証方法、レスポンス、通信失敗時の処理、ログ、再試行の要否などを整理してください。

インジケーター項目確認する内容移行時の注意点
Calculation計算式、参照バー、初期化同じ値になる条件を確認
Bufferバッファ数、用途、EA参照MQL5側の取得方法も確認
Drawingライン、矢印、ヒストグラム、ラベル表示方法を再確認
Subwindow表示範囲、最小・最大値見た目と値の両方を確認
Signalサイン条件、確定足、リペイント通知・EA連携と同じ基準か確認
Notificationアラート、外部通知、重複防止送信タイミングと失敗時処理を整理

EX4だけの場合とMQ4ソースがある場合

MT4資産の移行で大きな分岐になるのが、EX4だけを持っているのか、MQ4ソースを持っているのかです。

EX4はMT4用の実行ファイルです。MQ4はMQL4のソースファイルです。MT5で作り直す場合、MQ4ソースがある方が仕様確認を進めやすくなります。

ファイル役割MT5移行時の扱い確認ポイント
EX4MT4用の実行ファイルMT5ではそのまま使えないロジック確認には制約がある
MQ4MT4用のソースファイルMT5向け作り直しの資料になる注文処理、条件判定、インジ連携を確認できる
EX5MT5用の実行ファイルMT5で動かす形式MQL5でコンパイルして生成する
MQ5MT5用のソースファイルMT5向け開発・改修の本体MQL5構造に合わせて作成する

EX4しかない場合

EX4しかない場合、内部ロジックを直接確認できないため、完全な移植や再現には制約があります。

ただし、チャート表示、入力パラメータ、動作ログ、スクリーンショット、バックテスト結果、利用時の挙動をもとに、MT5向けに似た仕様として作り直す相談は可能な場合があります。

この場合は、「元のコードを変換する」のではなく、「MT4版の見た目・挙動・設定を参考に、MT5版を新規設計する」考え方になります。

MQ4ソースがある場合

MQ4ソースがある場合は、注文条件、決済条件、フィルター、インジケーター連携、外部連携、ログ出力などを確認できます。

ただし、MQ4ソースがあるからといって、MQL5へ自動変換してそのまま動くとは限りません。

MQL5の注文管理、インジケーターハンドル、履歴取得、型、イベント構造に合わせて、必要な部分を作り直す必要があります。

ソース形式・依存ファイル・権利の確認

ファイル形式の違い

mq4 / ex4

mq4 はMQL4のソースファイルです。既存MT4 EAやインジケーターの修正、仕様確認、MT5への再構築を検討する場合、mq4の有無は重要な確認項目です。

ex4 はMT4で実行するコンパイル済みファイルです。ex4だけでは内部ロジックを直接確認・変更できないため、ソースコードがない場合は現在の動作や仕様資料をもとに別途再構築を検討します。

mq5 / ex5

mq5 はMQL5のソースファイルです。MT5向けEAやインジケーターの改修では、mq5と依存するmqh等が揃っているかを確認します。

ex5 はMT5で実行するコンパイル済みファイルです。ex5のみの場合も、内部ロジックを直接確認・修正することはできません。

mqh・ライブラリ・付属ファイル

EAやインジケーターによっては、本体ソース以外にmqh、ライブラリ、画像、CSV、テンプレート、外部設定ファイルなどへ依存している場合があります。

本体mq4やmq5だけではコンパイル・再現できないこともあるため、既存製品の改修・移行では依存ファイルも含めて確認します。

setファイル

setファイルは、EAやインジケーターのInputs設定を保存したファイルです。

ソースコードそのものではありませんが、現在どの設定で使用しているか、移行後にどの初期値や設定項目を再現したいかを確認する資料として重要です。

ファイル・資料対象意味改修・移行時の扱い
mq4MT4MQL4ソース既存MT4改修・MT5移行判断で重要
ex4MT4コンパイル済みファイル内部ロジックの直接改修は不可
mq5MT5MQL5ソースMT5改修で重要
ex5MT5コンパイル済みファイル内部ロジックの直接改修は不可
mqhMT4 / MT5共通処理・include依存関係を確認
setMT4 / MT5Inputs設定現在設定・検証条件確認に使用
仕様書・マニュアル共通想定動作の資料再構築時の仕様確認に有効
スクリーンショット共通表示・設定・症状UI・動作確認に有効

ソースコードと権利関係を確認する

既存EA・インジケーターの改修や移行では、ソースコードがあるだけでなく、そのソースを改変・移行できる権利があることも重要です。

自作コード、正式に改変権限を持つコード、依頼者が権利を保有するコードなどは、内容を確認して対応可否を判断できます。

一方、第三者が制作・販売・配布したEAやインジケーターについて、利用規約で改変が禁止されている場合や、権利関係が確認できない場合は対応できないことがあります。

EAFCでは、ex4 / ex5などからソースコードを復元するデコンパイル、第三者ファイルの無断解析、リバースエンジニアリングなど、権利侵害につながる作業は行いません。

状態確認すること基本的な扱い
自作ソースmq4 / mq5、依存ファイル改修・移行可否を確認
制作依頼したソース契約・権利範囲改変権限を確認
第三者販売製品販売元規約、改変許可権利確認後に判断
ex4 / ex5のみ現在動作、仕様、資料直接改修は行わない
権利不明入手経緯、利用条件確認できない場合は対応不可

依頼前に整理するファイル

mq4

mq4 はMQL4のソースファイルです。

既存EAやインジケーターの改修では、mq4があるかどうかが重要です。mq4があれば、内部処理を確認しながら改修や移行を検討しやすくなります。

ex4

ex4 はMT4で実行するコンパイル済みファイルです。

ex4だけでは、内部ロジックを直接確認して改修することは基本的に難しくなります。ex4のみの場合は、現在の動作、画面、Inputs、希望仕様をもとに再作成を検討することがあります。

set

set ファイルは、EAやインジケーターのInputs設定を保存したファイルです。

相談時には、現在使っているsetファイル、変更前後のsetファイル、対象銘柄、時間足、用途を整理してください。ただし、Webhook URL、APIキー、認証トークンなどが含まれる場合は、そのまま送らないよう注意してください。

ログ

ExpertsログやJournalログは、EAやインジケーターの動作確認に役立ちます。

エラー、不具合、表示されない、通知が届かない、注文されないといった場合は、発生時刻前後のログを整理してください。

スクリーンショット

スクリーンショットは、表示状態、チャート右上、Inputs、ログ画面、通知設定などを確認するために役立ちます。

ただし、口座番号、Webhook URL、APIキー、GAS URL、認証トークンなどが映り込まないよう注意してください。

仕様メモ

仕様メモでは、作りたい機能、変更したい機能、不要な機能、現在困っている症状を整理します。

「利益が出るように」ではなく、「この条件でアラートを出したい」「この表示を追加したい」「このログを出したい」のように、機能仕様として記載してください。

ファイル・資料意味相談時の使い方
mq4MQL4ソースファイル改修・内容確認・移行検討に使う
ex4コンパイル済みファイル実行確認に使うが内部改修は難しい
setInputs設定ファイル現在設定や変更前後を確認する
ログExperts / Journalの記録不具合や動作確認に使う
スクリーンショット表示状態や設定画面見た目や症状の確認に使う
仕様メモ作りたい内容の整理開発範囲や確認事項を決める

MQL4開発で注意したいこと

ex4のみの限界

ex4のみの場合、内部処理を直接確認して改修することは基本的に難しくなります。

そのため、ex4しかない場合は、現在の動作や表示をもとに、同等機能の再作成や仕様整理を検討する形になります。

利益保証ではない

MQL4でEAやインジケーターを作ることは、利益や勝率を保証することではありません。

開発で扱うのは、条件判定、表示、通知、注文処理、決済処理、ログ、集計、操作補助などのソフトウェア機能です。売買結果や将来の成績を保証するものではありません。

環境差

同じMQL4ツールでも、MT4環境、口座種別、銘柄名、時間足、スプレッド、VPS、自宅PC、通知設定によって動作確認の見え方が変わる場合があります。

不具合調査では、EAやインジケーターだけでなく、設置環境も整理してください。

バックテストとリアル差分

バックテストで確認できることと、リアル環境で確認することは異なります。

バックテストでは、過去データ上の条件判定や注文処理を確認できます。一方、リアル環境では、スプレッド、約定、通信、VPS、通知、取引時間などが関係します。

注意点確認すること相談時の整理
ex4のみソースがないため内部確認が難しい再作成前提で仕様を整理する
環境差口座、銘柄、時間足、VPS動作環境を明記する
外部通知Webhook、メール、通知設定URLや認証情報はマスクする
バックテスト差分テスト条件とリアル条件の違い検証条件を記録する

EAを移行する時の確認ポイント

MT4 EAをMT5へ移行する場合、最初に確認するのは、EAがどの責務を持っているかです。

EAには、signal、execution、risk、exit、notification、external control、authなどの責務があります。すべてを一度に移行しようとすると、確認範囲が広くなります。

責務確認する内容MT5作り直し時の注意
signalエントリー条件、インジ判定、時間条件現在足か確定足かを確認する
execution注文、決済、SL/TP変更MqlTradeRequest、CTrade、retcode確認が必要
riskロット、最大ポジション、損失制限、証拠金確認symbol仕様、volume step、margin modeを確認する
exit利確、損切り、トレール、時間決済Position / Deal / Historyの扱いを確認する
notificationメール、Push、Discord、外部通知WebRequestやWebhook情報の扱いに注意する
external control外部ファイル、シート、API、CSV設定読み込み失敗時の挙動を仕様化する

MT4版EAの動きが分かっている場合でも、MT5で同じ挙動にするには、注文管理と履歴管理の再設計が必要になることがあります。

インジケーターを移行する時の確認ポイント

MT4インジケーターをMT5へ移行する場合、表示の再現だけでなく、バッファ設計とEA連携の有無を確認します。

ラインや矢印を表示するだけなのか、EAからiCustom / CopyBufferで読みたいのかによって、作り直し方が変わります。

確認項目内容MT5作り直し時の注意
表示形式矢印、ライン、ヒストグラム、サブウィンドウ描画方式をMQL5向けに整理する
バッファ番号BUY、SELL、ライン、補助値EA連携する場合は固定管理する
サインなし値EMPTY_VALUE、0、その他CopyBuffer側の判定と合わせる
リペイント過去サインが変わるかEA化前に必ず確認する
input期間、閾値、表示設定などMT5版でも同じ意味で使うか見直す
EA連携EAから値を読むかiCustom / CopyBuffer前提で設計する

MQL5インジケーター開発とEA連携の詳細は、MQL5インジケーター開発・EA連携完全ガイドも確認してください。

MT4インジケーターの表示・判定・通知を移し替える

MT4インジをMT5へ移行する前に

そのまま入れられない場合がある

MT4インジケーターは、通常MT4用のフォルダへ配置して使います。MT5では、MT5用のインジケーターとして作られたファイルが必要です。

MT4用の ex4 や mq4 をMT5へ入れても、MT5インジケーターとしてそのまま動作しない場合があります。これは、MT4とMT5で開発言語、ファイル形式、インジケーター構造が異なるためです。

変換ではなく作り直しになるケース

MT4インジケーターをMT5へ移す場合、単純な変換ではなく、MT5用に作り直しになるケースがあります。

特に、サイン表示、矢印表示、サブウィンドウ、複数バッファ、マルチタイムフレーム、アラート、外部通知、独自ライブラリを含む場合は、表示や通知の仕様を確認しながら再設計が必要になることがあります。

まず確認する資料

移行相談の前に、現在のインジケーターのファイル、表示画面、Inputs設定、通知条件、ログを整理してください。

最も重要なのは、mq4 ソースがあるかどうかです。mq4 があれば内部仕様を確認しやすくなりますが、ex4 のみの場合は、現在の表示や動作をもとに再現作成を検討する形になる場合があります。

最初に確認すること見る場所判断に使う内容
mq4の有無手元のファイル内部ロジックを確認できるか
ex4のみかIndicatorsフォルダ再現作成前提になる可能性
現在の表示チャート画面MT5側で再現したい見た目
Inputsインジ設定画面設定項目、通知ON/OFF、対象時間足
ログExpertsログ初期化エラーや通知エラー

ファイル形式の確認

mq4

mq4 は、MT4向けMQL4のソースファイルです。

MT4インジケーターをMT5へ作り直す場合、mq4があると、計算条件、バッファ、表示処理、通知処理を確認しやすくなります。ただし、mq4がある場合でも、そのままMQL5へ貼り替えるだけで動くとは限りません。

ex4

ex4 は、MT4で実行するコンパイル済みファイルです。

ex4のみの場合、内部ロジックを直接確認して改修・変換することは基本的に難しくなります。この場合は、現在の表示、スクリーンショット、Inputs、サイン条件、通知条件をもとに、MT5用として再現作成を検討する形になります。

mq5

mq5 は、MT5向けMQL5のソースファイルです。

MT5側に既存のmq5がある場合は、その内容を確認して改修できます。MT4版とMT5版の両方を運用したい場合は、mq4とmq5を別々に管理する必要があります。

ex5

ex5 は、MT5で実行するコンパイル済みファイルです。

ex5のみの場合も、内部ロジックを直接確認して改修することは基本的に難しくなります。MT5側で改修したい場合は、mq5ソースがあるかを確認してください。

set

set ファイルは、インジケーターのInputs設定を保存したファイルです。

MT4とMT5で同じ名前の設定項目があっても、内部処理が同じとは限りません。移行相談では、現在使っているsetファイルを保存し、どの設定をMT5側でも再現したいか整理してください。

テンプレート

インジケーターの表示状態は、テンプレートに保存されている場合があります。

チャート背景、色、ライン設定、複数インジケーターの組み合わせなどがある場合は、テンプレートやスクリーンショットも確認資料になります。ただし、テンプレートだけでは内部ロジックは分かりません。

ファイル形式対象環境意味移行相談での扱い
mq4MT4MQL4ソースファイル内部確認・再作成判断に重要
ex4MT4MT4用実行ファイル実行確認は可能だが内部確認は難しい
mq5MT5MQL5ソースファイルMT5側の改修確認に重要
ex5MT5MT5用実行ファイル実行確認は可能だが内部確認は難しい
setMT4/MT5Inputs設定ファイル設定項目の確認に使用
テンプレートMT4/MT5チャート表示設定見た目の確認に有効

表示内容の確認

メインチャート

インジケーターがメインチャート上に表示されるのかを確認してください。

ローソク足上にライン、矢印、サイン、ラベル、価格帯、背景色などを表示する場合、MT5側でも同じ位置や色で再現したいのか、表示を整理したいのかを決めます。

サブウィンドウ

インジケーターによっては、メインチャートではなくサブウィンドウに表示されます。

RSIや独自オシレーターのようにサブウィンドウへ表示する場合、最小値、最大値、基準線、色、ライン数、ヒストグラム表示の有無を確認してください。

ライン

ライン表示では、色、太さ、スタイル、計算期間、表示範囲を確認します。

MT4では表示されていたラインが、MT5側で同じように出るとは限りません。計算条件と描画方式を分けて確認します。

矢印

矢印表示がある場合は、BUYサイン、SELLサイン、表示位置、矢印の種類、サイズ、色を整理してください。

ローソク足の上に出るのか、下に出るのか、確定足で出るのか、未確定足で出るのかも重要です。

サイン

サイン表示では、どの条件でサインが出るかを確認します。

単に「矢印が出る」だけではなく、どのインジケーター値、どのクロス、どの時間足、どの足で判定するのかを整理する必要があります。

文字表示

チャート上に文字、数値、状態表示、パネルを出すインジケーターでは、表示位置や更新タイミングを確認します。

文字表示は、画面サイズやチャート縮尺によって見え方が変わる場合があります。MT5側では、表示位置を再設計した方がよい場合もあります。

表示内容確認する項目相談時にあるとよい資料
メインチャート表示ライン、矢印、ラベル、背景チャート全体のスクリーンショット
サブウィンドウ表示最小値、最大値、基準線、ライン数サブウィンドウ部分の画像
ライン色、太さ、計算期間、表示範囲Inputsと表示画面
矢印BUY/SELL、位置、色、サイズサインが出た場面の画像
文字表示表示位置、内容、更新タイミング表示パネルやラベルの画像

判定条件の確認

サイン条件

サインインジケーターをMT5へ移行する場合は、サイン条件を文章で整理してください。

BUY条件とSELL条件を分け、どの値がどうなった時にサインを出すのかを確認します。条件が不明な場合、MT5側では見た目を参考にした再現作成になることがあります。

アラート条件

アラート付きインジケーターでは、表示条件と通知条件が同じかどうかを確認します。

矢印が出た時に通知するのか、足確定後だけ通知するのか、同じ足では1回だけ通知するのかを整理してください。

対象時間足

対象時間足は、移行時に必ず確認する項目です。

M1だけ、M5以上、M15とH1、全時間足対応など、対象時間足が決まっている場合は明記してください。時間足によってサインの出方が変わるインジケーターもあります。

複数時間足

複数時間足を参照するインジケーターでは、どの時間足の値を使うのかを整理します。

たとえば、M5チャート上でH1の条件を見る、下位足と上位足の方向が一致した時だけサインを出す、などの条件がある場合は、MT5側でも仕様を明確にする必要があります。

計算に使うデータ

インジケーターが計算に使うデータも確認してください。

終値、始値、高値、安値、出来高、スプレッド、他インジケーター値など、何を参照しているかによって移行内容が変わります。

判定項目整理する内容注意点
BUYサインどの条件で表示するかSELL条件と分ける
SELLサインどの条件で表示するかBUYと完全反対か確認
アラート表示時、足確定時、条件成立時重複通知防止を確認
対象時間足対象足、固定足、チャート足MT5側で再現する条件を明確にする
計算データ価格、出来高、他インジ値参照先が必要か確認する

通知・外部連携の確認

アラート

MT4インジケーターにポップアップアラートがある場合、MT5側でも同じタイミングで通知するか確認してください。

サイン表示時に通知するのか、足確定時に通知するのか、初回だけ通知するのか、同じ足で複数回通知するのかを整理します。

メール

メール通知を使っている場合は、MT4本体側の設定とインジケーター側の設定を分けて確認します。

MT5側でもメール通知を使う場合、通知条件、通知文面、送信タイミングを再確認してください。

プッシュ通知

スマホ通知などのプッシュ通知を使う場合は、通知先、通知条件、通知文面、重複通知防止を整理します。

MT4とMT5では設定画面や通知処理が異なる場合があるため、移行時に確認が必要です。

Discord

Discord通知を使う場合は、Webhook URL、通知条件、通知文面、送信タイミングを整理してください。

Webhook URLは通知先へ接続できる情報です。公開ページや通常の問い合わせ文面へ、そのまま貼らないよう注意してください。

WebRequest

外部連携を使う場合、WebRequest設定が必要になることがあります。

MT5側で外部通知や外部連携を使う場合は、許可URL、送信処理、エラーログ、リトライの有無を確認します。ただし、APIキーや認証トークンなどの実値は共有前にマスクしてください。

通知・連携確認する内容注意点
アラート通知条件、通知タイミング、文面重複通知を確認
メール通知MT側設定、送信条件、文面本体設定とインジ設定を分ける
プッシュ通知通知先、タイミング、内容端末側設定も確認
Discord通知Webhook、文面、送信条件URL実値をそのまま共有しない
WebRequest許可URL、送信ログ、エラー認証情報をマスクする

移行ではなく作り直しになるケース

ソースなし

mq4ソースがなく、ex4のみの場合は、内部ロジックを直接確認できません。

この場合は、既存インジケーターを変換するのではなく、スクリーンショット、Inputs、サイン条件、表示条件、ログをもとに、MT5用として再現作成を検討する形になります。

古い仕様

長く使っているインジケーターでは、古い仕様や使っていない機能が残っている場合があります。

MT5化するタイミングで、不要な表示、不要な通知、使っていないInputs、確認しづらいログを整理する方がよい場合があります。

外部ライブラリ依存

外部ライブラリや共通ファイルに依存している場合、本体ファイルだけでは移行できないことがあります。

mqhファイル、DLL、画像、テンプレート、外部ファイル、認証処理などがある場合は、関連ファイルも確認してください。

MT5側で仕様変更したい場合

MT5化と同時に表示や通知を変更したい場合は、単なる移行ではなく、仕様変更を含む作り直しになります。

たとえば、サイン条件を変えたい、通知文を変えたい、パネル表示を追加したい、複数時間足対応にしたい場合は、移行前に仕様を整理してください。

状況判断の目安必要な資料
mq4がある既存仕様を確認しやすいmq4、set、表示画面、ログ
ex4のみ再現作成になる可能性が高い画像、Inputs、条件説明
外部ファイルあり依存関係の確認が必要mqh、DLL、テンプレート、関連ファイル
通知あり通知仕様の再確認が必要通知条件、文面、ログ
仕様変更あり移行ではなく改修込み残す機能、削る機能、追加機能

OrderSelect型とPosition / Deal / History型の違い

MT4 EAの移行で特に注意が必要なのが、注文管理の考え方です。

MT4では、注文やポジションをOrderSelect中心に扱う設計が多くあります。MT5では、現在のポジション、注文、約定履歴、注文履歴を分けて扱う考え方になります。

管理対象MT4での考え方MT5での考え方移行時の確認
新規注文OrderSend中心MqlTradeRequest、OrderSend、CTradeなどretcode、order、deal、commentを確認する
保有ポジションOrderSelectで選択する設計が多いPositionSelect、PositionGet系Netting / Hedgingの違いを確認する
約定履歴注文履歴として見る設計が多いDealとして確認する損益集計や決済判定の見直しが必要
注文履歴OrderHistory系の考え方HistorySelect、HistoryOrder、HistoryDeal期間指定とticket管理を確認する

MT5で作り直す場合、単にOrderSelect相当を書き換えるだけではなく、EAが何を管理していたのかを分解して確認する必要があります。

MT4のOrderSendと注文条件を読み解く

OrderSendとは何か

MT4 EAで注文を送る処理

OrderSendは、MT4 EAから新規注文を送るために使われる注文処理です。

EAが条件判定を行い、注文条件を満たした時に、通貨ペア、注文種別、ロット、価格、スリッページ、SL/TP、コメント、MagicNumberなどを指定して注文を送ります。

ただし、OrderSendを書けば必ず注文が通るわけではありません。MT4側の自動売買設定、EA個別許可、口座状態、取引時間、証拠金、ロット制限、価格ずれ、SL/TP距離などによって注文が拒否される場合があります。

成行注文と予約注文

OrderSendでは、成行注文だけでなく、予約注文を扱う場合もあります。

成行注文では、現在のBidまたはAskに近い価格で注文を送ります。予約注文では、指定価格に到達した時に注文するための条件を設定します。

EAを確認する時は、そのEAが成行注文だけを使っているのか、Buy Stop、Sell Stop、Buy Limit、Sell Limitなどの予約注文も使っているのかを分けて確認してください。

EAの売買実行部分

OrderSendは、EAの中でも売買実行に近い重要部分です。

エントリー条件が正しくても、OrderSendに渡す値が不正であれば注文は失敗します。逆に、OrderSendの呼び出し条件が広すぎると、想定より多く注文する可能性があります。

そのため、EA開発や既存EA改修では、エントリー判定とOrderSend呼び出し部分を分けて確認することが重要です。

確認対象主な内容確認理由
エントリー条件注文する前の判定なぜ注文しようとしたか確認するため
OrderSend実際に注文を送る処理注文値とエラーを確認するため
エラー処理注文失敗時の確認原因をログで追うため
MagicNumberEA注文の識別番号他EAや手動注文と分けるため

OrderSendで確認する主な項目

通貨ペア

OrderSendでは、どの通貨ペアへ注文を送るかを確認します。

チャートの通貨ペアに注文するEAもあれば、コード内で固定された通貨ペアへ注文するEAもあります。口座によっては、通貨ペア名にサフィックスが付く場合があります。

注文が出ない場合は、EAが想定している通貨ペア名と、MT4上の実際の銘柄名が一致しているか確認してください。

注文種別

注文種別では、BUY、SELL、予約注文のどれを送るかを確認します。

BUY条件の時にBUYを送っているか、SELL条件の時にSELLを送っているか、反対方向を誤って指定していないかを確認します。

既存EA改修では、注文種別が固定値になっているのか、条件によって切り替えているのかも確認してください。

ロット

ロットは注文数量に関係する項目です。

この記事では特定のロットを推奨しません。確認するべきことは、EAがどの変数またはInputsからロットを取得しているか、最小ロットやロットステップに合っているか、複数EAを使う場合に合計ロットが想定外になっていないかです。

注文エラーが出る場合、ロットが口座仕様に合っていない、証拠金が不足している、ロットが0または不正値になっている可能性があります。

価格

OrderSendでは、注文価格も確認対象です。

成行BUYではAsk、成行SELLではBidを使うのが一般的な考え方です。価格の取得タイミングや桁数処理が不適切な場合、価格ずれや注文拒否につながる場合があります。

価格関連のエラーが出る場合は、Bid、Ask、Digits、Point、RefreshRatesの扱い、注文直前の価格更新を確認してください。

スリッページ

スリッページは、注文価格と実際の約定価格の許容差に関係する項目です。

スリッページの扱いは、EAの注文可否や注文失敗時の確認に関係します。ただし、スリッページの値を大きくすればよいという話ではありません。

確認するべきことは、EAがどの単位でスリッページを指定しているか、口座の桁数や銘柄仕様に合っているか、注文失敗時にどのエラーが出ているかです。

SL/TP

SL/TPは、注文時に設定する損切り・利確の価格です。

EAによっては、OrderSend時にSL/TPを同時に設定する場合もあれば、注文後にOrderModifyで設定する場合もあります。

SL/TPが近すぎる場合、ストップレベルや価格仕様により注文が拒否されることがあります。注文エラーが出る場合は、SL/TP距離、StopLevel、FreezeLevel、桁数、価格方向を確認してください。

コメント

注文コメントは、注文履歴やポジション確認で補助的に使われます。

EA名、ロジック名、方向、設定名などをコメントに入れる設計もあります。ただし、口座番号、Webhook URL、APIキー、認証トークンなどの重要情報をコメントに入れないよう注意してください。

MagicNumber

MagicNumberは、EA注文を識別するための番号です。

OrderSendで指定したMagicNumberは、その後のOrderSelect、OrderClose、OrderModify、履歴確認、ログ確認に関係します。

複数EAを同じ口座で使う場合は、MagicNumberの重複がないか、意図した管理対象になっているかを確認してください。

OrderSendの確認項目見る内容起きやすい問題
通貨ペアチャート銘柄か固定銘柄かサフィックス違いで注文しない
注文種別BUY / SELL / 予約注文方向の取り違え
ロットInputs、計算値、最小ロット不正ロット、証拠金不足
価格Bid、Ask、桁数、価格更新価格ずれ、注文拒否
SL/TP価格方向、距離、StopLevelストップ距離不足
MagicNumberEA注文の識別番号他EAの注文と混在

MagicNumberとの関係

EA注文の識別

MagicNumberは、EAが自分の注文を識別するために使う番号です。

OrderSendでMagicNumberを指定しておくと、後からその注文をEA側で探し、決済、変更、集計、通知などに使うことができます。

MagicNumberを使わない、または複数EAで同じ番号を使っている場合、どのEAの注文なのか判断しにくくなります。

複数EA運用

同じMT4口座で複数EAを使う場合、MagicNumberの設計が重要になります。

EAごと、通貨ペアごと、ロジックごとにMagicNumberを分けることで、注文管理や決済対象を分離しやすくなります。

既存EAを改修する場合は、OrderSendで指定しているMagicNumberと、決済処理側で参照しているMagicNumberが一致しているか確認してください。

決済対象の取り違え防止

MagicNumber確認で特に重要なのは、決済対象の取り違え防止です。

新規注文では正しくMagicNumberを指定していても、決済処理側でMagicNumberを見ていない場合、別EAや手動注文を対象にしてしまう可能性があります。

OrderSendだけでなく、OrderClose、OrderModify、OrderSelect周辺の条件も合わせて確認してください。

確認箇所確認すること注意点
OrderSendMagicNumberを指定しているか注文識別の起点になる
OrderSelect対象注文を正しく選んでいるか通貨ペアとMagicNumberで絞る
OrderClose決済対象が正しいか別EAや手動注文を巻き込まない
ログMagicNumberが出ているか調査時に追跡しやすくする

注文エラー時に確認すること

ロット制限

注文エラーが出た場合は、まずロットが口座仕様に合っているか確認してください。

最小ロット、最大ロット、ロットステップに合わない値をOrderSendへ渡していると、注文が拒否されることがあります。

ロットを計算しているEAでは、計算後の値が正規化されているか、0や負の値になっていないか、ログに出して確認すると原因を確認しやすくなります。

証拠金

証拠金不足でも注文は失敗します。

複数EAを同時に使っている場合や、複数ポジションを持つEAでは、EA単体の設定だけでなく、口座全体の保有状況も確認してください。

証拠金に関係するエラーが疑われる場合は、Journalログ、Expertsログ、口座残高、証拠金維持率、保有ポジションを合わせて確認します。

取引時間

取引時間外にOrderSendを実行しようとすると、注文が通らない場合があります。

EA側の稼働時間設定、MT4サーバー時間、銘柄の取引時間、週末、メンテナンス時間を確認してください。

取引時間条件があるEAでは、注文しない理由をログに出しておくと、注文エラーなのか、注文前にブロックしているのかを分けて確認できます。

価格ずれ

注文価格が現在価格からずれている場合、注文が拒否されることがあります。

価格取得からOrderSendまでの間に時間が空いている、RefreshRatesを行っていない、桁数処理が不適切、BidとAskを取り違えている場合などが確認対象です。

ストップレベル

SL/TPの距離が近すぎる場合、ストップレベルの制限により注文が拒否されることがあります。

OrderSend時にSL/TPを入れる場合は、価格方向、距離、StopLevel、FreezeLevel、銘柄の桁数を確認してください。

EAによっては、注文直後にOrderModifyでSL/TPを設定する設計の方が適している場合もあります。既存EAを改修する時は、現在の設計を確認してから判断します。

接続状態

MT4の接続状態や自動売買設定も確認対象です。

EAのコードが正しくても、MT4が未接続、自動売買OFF、EA個別許可OFF、口座ログイン不備、読み取り専用状態などでは注文できません。

注文エラーの確認項目確認する内容見る場所
ロット最小ロット、ロットステップ、計算後の値Inputs、Expertsログ、銘柄仕様
証拠金口座残高、保有ポジション、必要証拠金ターミナル、Journalログ
取引時間サーバー時間、銘柄取引時間MT4、Expertsログ
価格Bid、Ask、価格更新、桁数Expertsログ、チャート
SL/TP距離、方向、StopLevel銘柄仕様、ログ
接続状態ログイン、自動売買、通信Journalログ、MT4画面

既存EA改修で見るポイント

OrderSendの呼び出し箇所

既存EAを改修する場合は、まずOrderSendがどこで呼ばれているか確認してください。

複数ロジックを持つEAでは、OrderSendが複数箇所にある場合があります。BUY用、SELL用、ナンピン用、再エントリー用、予約注文用など、用途ごとに分かれている可能性があります。

呼び出し箇所を確認せず一部だけ修正すると、別の注文処理が古いまま残る場合があります。

エラー処理

OrderSendの戻り値とエラー処理を確認してください。

注文に失敗した時に、エラー番号、通貨ペア、注文種別、ロット、価格、SL/TP、MagicNumber、発生時刻をログに出しているかが重要です。

エラー処理がないEAでは、注文が失敗しても理由が分からず、不具合調査が難しくなります。

リトライ

既存EAにリトライ処理がある場合は、回数、間隔、条件を確認してください。

リトライが多すぎると、同じ注文を何度も試す可能性があります。逆に、必要な確認なしに一度だけで終了すると、一時的な価格ずれや通信状態で注文機会を逃す場合があります。

リトライは、売買判断ではなく、注文処理の安定性確認として慎重に扱う必要があります。

ログ出力

OrderSend周辺では、注文前ログ、注文成功ログ、注文失敗ログを分けると確認しやすくなります。

注文前ログでは、注文しようとした理由と値を確認します。注文成功ログでは、チケット番号や注文内容を確認します。注文失敗ログでは、エラー番号と注文条件を確認します。

パラメータとの連動

OrderSendに渡している値が、Inputsやsetファイルと正しく連動しているか確認してください。

Inputsでロットを変更したつもりでも、コード内で固定ロットを使っている場合があります。MagicNumber、SL/TP、スリッページ、コメントなども、Inputsと実際の注文値が一致しているか確認します。

改修時の確認箇所確認すること注意点
呼び出し箇所OrderSendが何箇所あるか一部だけ修正しても不十分な場合がある
戻り値注文成功・失敗を判定しているか失敗時の処理が必要
エラー処理GetLastErrorなどで原因を残しているかログがないと調査しにくい
リトライ回数、間隔、条件過剰な再送に注意
Inputs連動setファイルの値が反映されるか固定値が残っていないか確認

コード例を扱う時の注意

売買ロジックの推奨ではない

OrderSendのコード例を確認する場合でも、それは売買方法の推奨ではありません。

コード例は、MQL4で注文処理を理解するための技術確認として扱います。どの条件で売買すべきか、どのロットがよいか、どの銘柄で使うべきかを示すものではありません。

環境により条件が異なる

同じOrderSend処理でも、口座、銘柄、桁数、最小ロット、スプレッド、取引時間、サーバー状態によって結果が変わる場合があります。

コードだけを見て判断せず、実際のMT4環境、銘柄仕様、setファイル、Expertsログ、Journalログを合わせて確認してください。

実運用前に検証が必要

OrderSendを含むEAは、注文処理を行うため、実運用前に検証が必要です。

バックテスト、デモ環境、少数条件での確認、ログ確認、注文失敗時の挙動確認、自動売買ON/OFFの確認、VPSでの再起動後確認などを行ってから判断してください。

この記事では、売買判断ではなく、注文処理を安全に確認するための技術項目を扱います。

Netting口座とHedging口座の確認

MT5では、口座のポジション管理方式によって、ポジションの扱いが変わる場合があります。

MT4の感覚で複数ポジションを扱っていたEAをMT5へ移行する場合、Hedging口座を前提にするのか、Netting口座にも対応するのかを確認します。

項目HedgingNetting
同一銘柄の複数ポジション複数保有できる設計基本的に集約される設計
MT4感覚との近さ近い場合がある考え方が異なる
EA移行時の注意Magic Numberやticket管理を確認するポジション集約を前提に仕様を見直す
複数ロジックEAロジック別ポジション管理をしやすい同一銘柄での分離に注意が必要

MT4版のEAが複数ポジション、ナンピン、分割決済、ロジック別Magic Numberを使っている場合、MT5側の口座方式と管理仕様を必ず確認してください。

インジケーターバッファと描画方式の違い

MT4インジケーターをMT5へ移行する場合、見た目だけではなく、バッファの意味を整理する必要があります。

特にサインインジをEA化する場合、表示されている矢印ではなく、EAが取得するバッファ値が重要になります。

確認項目内容MT5側の確認
BUYバッファ買いサインに相当する値何番のバッファでCopyBufferするか
SELLバッファ売りサインに相当する値BUYと混同しないようにする
ライン値移動平均、バンド、基準線などサインとラインを分ける
補助値内部判定用の値EAから読む必要があるか確認する
描画形式矢印、ライン、ヒストグラムなど表示と判定を混同しない

MT5では、iCustomでハンドルを作成し、CopyBufferで値を取得する流れになります。MT4側のiCustom感覚と異なるため、EA連携時は注意が必要です。

外部連携・DLL・WebRequestの確認

MT4版EAやインジケーターに、外部ファイル、DLL、WebRequest、Webhook、Google Sheets、Discord通知、認証処理などがある場合、MT5移行時に確認が必要です。

外部要素確認すること注意点
外部ファイルFilesフォルダ、Commonフォルダ、CSV、設定ファイル保存先と文字コードを確認する
DLL使用有無、許可設定、代替方法販売・配布時は特に説明が必要
WebRequest許可URL、HTTP応答、timeoutWebhook URLやAPIキーを共有しない
Google SheetsGAS URL、権限、送信形式GAS URLの実値を本文やログに出さない
Discord通知Webhook、payload、通知抑制Webhook URLをそのまま送らない
認証処理口座番号、token、外部照合認証情報をログに出さない

外部連携や通知の安全管理は、MT5外部連携・通知セキュリティガイドも参考にしてください。

setファイルとパラメータの扱い

MT4版のsetファイルを持っている場合でも、そのままMT5版へ読み込めるとは限りません。

MT5で作り直す場合は、input名、型、初期値、選択肢、表示順、コメント、セクション区切りを整理し直す必要があります。

確認項目内容MT5作り直し時の注意
input名パラメータ名MT4版と同じ意味か確認する
型int、double、bool、string、enumなどMQL5側で適切な型へ整理する
初期値標準設定MT4版の値をそのまま使うか見直す
単位points、価格差、秒、分、pips感覚など銘柄仕様に合わせて明記する
表示順Inputs欄の並び国内向けには分かりやすい日本語説明を付ける
不要項目使っていない設定MT5版では整理・非表示化を検討する

setファイルを送る前の確認は、MT5でEAのsetファイルを送る前に確認することも参考になります。

バックテスト条件の再整理

MT4版とMT5版でバックテスト結果が同じになるとは限りません。

テスターの仕様、ヒストリカルデータ、spread、銘柄名、サーバー時間、約定条件、手数料、スワップ、計算方法が異なる場合があるためです。

確認項目MT4版MT5版注意点
銘柄名MT4上のsymbolMT5上のsymbolサフィックス差に注意する
時間足MT4テスター条件MT5テスター条件参照時間足も確認する
期間開始日・終了日開始日・終了日同じ期間に揃える
spread固定または実データテスター設定や実データ条件差を記録する
ロット・証拠金MT4口座条件MT5口座条件銘柄仕様と口座条件を確認する
ログMT4側ログMT5側ログ同じイベントを比較できるようにする

バックテスト結果は将来の結果を保証するものではありません。移行時は、収益結果の比較ではなく、条件、判定、注文、決済、ログの整合性を確認することが重要です。

検証環境の整理は、MT5検証・運用環境ガイドも参考にしてください。

MT5で作り直す時に仕様化する項目

MT4資産をMT5で作り直す時は、元のEAやインジケーターをそのまま再現するのか、必要な機能だけ整理して作り直すのかを決めます。

特に古いEAやインジケーターでは、使っていないパラメータ、不要な表示、分かりにくいログ、曖昧な単位が残っている場合があります。

仕様化する項目確認する内容MT5版で整理すること
対象機能EA、インジ、通知、集計、補助ツール作り直す範囲を決める
判定条件signalの条件現在足か確定足かを決める
注文処理executionの内容新規、決済、変更を分ける
リスク制御ロット、最大数、停止条件銘柄仕様と口座条件を確認する
表示パネル、ラベル、ライン、矢印表示系と判定系を分ける
ログExpertsログ、CSV、外部記録検証しやすいログ項目を決める
外部連携WebRequest、CSV、GAS、Discord認証情報やURLの扱いを安全にする

仕様化の段階で、表示系と判定系、input初期値とruntime状態、推奨値と検証用値を混同しないことが重要です。

移行できるもの・作り直した方がよいもの

MT4からMT5への移行では、すべてをそのまま移すより、作り直した方が分かりやすい場合があります。

対象移行しやすい場合作り直した方がよい場合
単純な表示インジロジックが明確でMQ4ソースがある表示と内部値が複雑、リペイントが不明
サインインジBUY / SELLバッファが明確矢印表示だけでバッファ仕様が不明
単純EA注文・決済条件が明確古いコードで責務が混在している
ナンピン・複数ロジックEAMagic、ロジック、ポジション管理が明確OrderSelect依存が強く履歴管理が複雑
外部連携EAURLやpayload仕様が整理されている認証情報や外部仕様が不明

MT5版では、古いMT4版の構造を無理に残すより、MT5向けに責務分離して作り直す方が、検証・保守・販売後サポートがしやすくなる場合があります。

既存機能を維持するかMT5で再設計するか

以下のコード例は、個別の処理と確認項目を読むためのものです。複数の例をそのまま一つのEAへ連結する前提ではありません。初期化、値の取得、状態更新、終了処理をそれぞれの例で区別して確認してください。

MT4とMT5の違いを確認する前に

「どちらが良いか」ではなく、目的と現在の資産で判断する

MT4とMT5を比較する時は、「どちらが良いか」だけで判断するのではなく、現在持っているEA・インジケーター、ソースコード、今後必要になる機能、保守期間などを整理することが重要です。

すでにMT4用EAやMT4用インジケーターを使用している場合は、MT4をそのまま維持するのか、MT5へ移行するのかを確認します。一方、EAやインジケーターを新しく作る場合は、EAFCではMT5を基本として仕様を整理します。

確認したいこと基本的な考え方主に確認するもの
既存MT4 EAを使い続けたいMT4のまま修正・保守できるか確認mq4、ex4、set、現在の挙動、ログ
既存MT4インジを修正したいMT4での修正可否を確認mq4、ex4、表示条件、通知、ログ
新規開発したいMT5向けの新規開発として整理必要機能、仕様、表示、通知、検証条件
MT4を大幅に拡張したいMT5への移行・再構築も比較既存仕様、追加機能、保守方針
MT4からMT5へ移行したい単純変換ではなく再設計範囲を確認ソース、機能、表示、発注・決済、ログ
ex4しか持っていない直接改修は原則困難現在動作、画面、Inputs、仕様資料

投資成果ではなくツール環境の違いとして確認する

MT4とMT5の違いは、利益や勝率の違いとして判断するものではありません。

EAやインジケーターの開発・改修では、どの環境で動かすのか、どのファイル形式なのか、どのように注文やポジションを識別するのか、どのログを確認できるのか、どの方法で検証するのかを整理します。

そのため、MT4/MT5の比較では、売買結果ではなく、既存資産、開発・改修可否、移行可否、保守性、検証方法を中心に確認してください。

既存EA・インジケーターを移行する前に確認すること

mq4 / mq5の有無

既存EAやインジケーターを改修・移行する場合、最初に確認するのはソースコードの有無です。

mq4やmq5がある場合は、内部ロジックや依存関係を確認できるため、改修または移行範囲を判断しやすくなります。mqhなどの依存ファイルがある場合は、それらも確認が必要です。

ex4 / ex5のみの場合

ex4やex5のみの場合、内部ロジックを直接確認して改修することは基本的にできません。

この場合は、現在の動作、画面、Inputs、setファイル、マニュアル、ログ、依頼者が把握している仕様などを整理し、必要に応じて再構築を検討します。

EAFCでは、第三者ファイルのデコンパイル、無断解析、リバースエンジニアリングなど、権利侵害につながる作業は行いません。

権利・利用条件の確認

第三者が制作・販売・配布したEAやインジケーターを改修する場合は、依頼者が改変を依頼できる権利を持っているか確認します。

購入元の規約で改変や再配布が禁止されている場合や、権利関係を確認できないコードについては、対応できない場合があります。

setファイル

改修や移行相談では、現在どの設定で使っているのかを確認する資料になります。ただし、Webhook URL、APIキー、認証トークンなどが含まれている場合は必ず削除またはマスクしてください。

動作ログ

動作ログは、現在のEAやインジケーターがどのように動いているかを確認するために役立ちます。

エントリーしない、決済しない、表示されない、通知が届かない、注文エラーが出るといった症状がある場合は、発生時刻前後のExpertsログやJournalログと再現手順を整理してください。

スクリーンショット・既存マニュアル

既存ツールの再構築や移行では、スクリーンショットや既存マニュアルも仕様確認に役立ちます。

チャート表示、矢印位置、ライン、パネル、Inputs、操作手順などを確認できる資料がある場合は、機密情報を伏せたうえで整理してください。

相談前に準備する情報確認できること
対象ツール名・バージョン対象製品を特定できる
MT4 / MT5現在の対象環境を確認できる
mq4 / mq5 / mqh内部確認・改修・移行可否を判断しやすい
ex4 / ex5実行ファイルしかないかを確認できる
setファイル現在の設定を確認できる
仕様書・マニュアル想定動作を確認できる
スクリーンショット表示や操作状態を確認できる
Experts / Journalログ現在の動作・エラーを確認できる

MT4を維持するかMT5へ移行するか

既存MT4をそのまま維持する場合

すでにMT4用EAやMT4用インジケーターを使用しており、小規模な不具合修正、表示変更、設定追加などが目的の場合は、MT4のまま改修できる場合があります。

この場合は、対象ソースコード、現在の挙動、修正箇所、ログ、検証条件を確認して対応可否を判断します。

MT5への移行を検討した方がよい場合

既存MT4製品へ大規模な機能追加を行う場合、外部連携を大きく拡張する場合、長期的に利用する場合、今後も継続して機能追加する予定がある場合は、MT5への移行・再構築を検討します。

その際は、MT4版をそのまま複製するだけではなく、現在必要な機能、不要になった機能、新たに追加する機能を整理してからMT5側の仕様を決める方が、保守しやすい構成にしやすくなります。

新規開発の場合

新しいEA、インジケーター、コピーEA、通知・補助ツール等を一から作成する場合は、EAFCではMT5向けの新規開発を基本としています。

既存MT4資産が参考として存在する場合でも、新規開発ではMT5側で必要な仕様を整理し、必要に応じて既存MT4の考え方や機能を参考にします。

通知・外部連携を含む場合

Discord通知、Google Sheets連携、CSV出力、Webhook、WebRequest、外部APIなどを新しく含める場合も、新規開発はMT5を基本としています。

既存MT4・MT5製品へ外部連携機能を追加する場合は、対象ソースコードと現在の構成を確認したうえで対応可否を判断します。

相談内容基本方針必要な情報
既存MT4を小規模修正MT4のまま対応可否を確認mq4、set、ログ、希望修正
既存MT4を大規模拡張MT5再構築も比較既存仕様、追加機能、今後の計画
MT4をMT5化MT5向けに再設計・再実装mq4、仕様、画面、set、ログ
MT5で新規作成MT5前提で仕様整理機能、条件、表示、通知、検証条件
既存MT4/MT5へ機能追加対象ソースを確認して個別判断ソース、現在仕様、追加内容、ログ

MQL4からMQL5は「変換」ではなく仕様移行として考える

MQL4からMQL5へ移行する時は、「コードを何%流用できるか」だけで判断せず、元のEA・インジケーターが何をする製品なのかを機能単位で確認する方が重要です。

計算式の一部などを参考にできる場合はありますが、発注、ポジション管理、インジケーター取得、描画、イベント、外部連携などはMQL5向けに見直す必要があります。

分類移行時に確認する内容
Input入力項目、初期値、型、既存setとの対応
SignalBUY / SELL、インジ条件、確定足、時間足
Execution発注、ロット、価格、SL / TP、注文結果
Position管理対象、方向、マジック、複数ポジション
ExitTP / SL、条件決済、時間決済、トレーリング
Indicator計算、バッファ、描画、サイン、リペイント
UIパネル、ボタン、ライン、ラベル、操作
Event初期化、Tick、Timer、Chart操作等
ExternalWebRequest、API、CSV、外部設定
Log状態、条件未達、注文、エラー、通知結果
Validation銘柄、時間足、期間、set、期待動作

MT4を維持するか、MQL5へ再構築するか

すべての既存MT4製品をすぐにMT5へ移行する必要があるわけではありません。

小規模な不具合修正や既存機能の維持が目的で、mq4ソースが揃っている場合は、MQL4のまま修正できるケースがあります。一方、大規模な追加開発や長期間の保守を予定している場合は、MQL5への再構築も比較します。

状況基本方針確認事項
既存MT4の小規模修正MQL4のまま対応可否を確認mq4、mqh、現在仕様、変更箇所
既存MT4の不具合修正再現確認後にMQL4で修正検討ログ、再現手順、set、ソース
既存MT4へ大規模追加MQL5再構築と比較追加機能、既存設計、将来計画
長期保守・継続拡張MT5 / MQL5移行を推奨残す機能、廃止機能、新仕様
ex4のみ直接改修は原則不可画面、設定、仕様、ログから再構築検討
新規製品MT5 / MQL5で新規設計要求仕様と検証条件を整理

自作と開発依頼の分岐

学習目的なら自作

MQL4を理解したい、コードの仕組みを学びたい、小さな表示やログ確認を試したい場合は、自作で進めると学習しやすくなります。

最初は、売買実行を伴わないスクリプトやインジケーターで、ログ出力、チャート情報取得、簡単な表示を確認すると、失敗しても影響範囲を限定しやすくなります。

運用補助に使うなら検証重視

実際の運用補助に使うツールを作る場合は、動くことだけでなく、検証しやすいことが重要です。

ログ、設定、setファイル、通知、エラー時の挙動、再起動後の状態、VPS上での動作確認まで含めて整理してください。

複雑なEAは仕様化して依頼

複雑なEA、複数ロジック、ナンピン、トレーリング、外部連携、認証、通知、パネル表示、コピーEA連携などを含む場合は、仕様化して依頼する方が確認しやすい場合があります。

依頼する場合でも、「どの条件で何をしたいか」「どのログで何を確認したいか」「既存ファイルがあるか」を整理しておくと、開発範囲と確認範囲が明確になります。

なぜ単純移植ではなく再設計が必要なのか

MT4とMT5は、どちらもMetaTrader系のプラットフォームですが、内部の考え方は同じではありません。

特にEA開発では、注文・ポジション・履歴の扱いが大きく異なります。MT4では注文を中心に考える実装が多い一方、MT5ではOrder、Position、Dealを分けて考える必要があります。

観点MT4的な考え方MT5で必要な考え方
注文管理OrderSelectで注文やポジションをまとめて扱うことが多いOrder、Position、Dealを分けて扱う
発注処理OrderSend中心CTradeまたはMqlTradeRequest / MqlTradeResultで結果確認する
ポジション管理チケットやOrder情報中心PositionSelect、PositionGet、magic、symbol、ticketで整理する
履歴管理OrderHistory系で確認するHistorySelect、HistoryDealGet、HistoryOrderGetを分ける
インジ取得iCustomの戻り値を直接値として扱う実装が多いhandle作成後、CopyBufferで値を取得する
標準ライブラリ自前関数中心になりやすいCTradeなどの標準ライブラリ活用を検討する
検証MT4のバックテスト条件に依存MT5のtick model、symbol仕様、サーバー条件で再検証する

そのため、MT4コードをMT5コードへ機械的に置き換えるだけでは、ポジション管理や注文結果確認が不十分になる可能性があります。

MT4資産をMT5化する時に確認するもの

MT4資産をMT5へ作り直す前に、まず既存資産の内容を整理します。

確認対象確認すること
EAかインジか自動売買、裁量補助、サイン表示、通知、集計のどれか
Entry条件どの条件でBUY / SELL候補を作っていたか
Exit条件TP、SL、Trail、建値、signal exit、手動決済補助の有無
ナンピン・マーチン追加Entry、lot増加、basket管理、平均価格管理の有無
Magic Number注文識別、ロジック別管理、手動ポジション除外の扱い
インジ参照iCustom、buffer、shift、リペイント、確定足の扱い
外部連携WebRequest、DLL、Files、CSV、通知、認証の有無
ログPrint、ファイルログ、エラー確認、問い合わせ用情報の有無
運用前提対象銘柄、時間足、ブローカー、口座タイプ、VPSの有無

移行前にこの整理をしないまま作業を始めると、見た目は似ていても、MT5版で動作意図が変わる可能性があります。

Order / Position / Dealを分けて考える

MT5では、Order、Position、Dealを分けて考えることが重要です。

これはMT4資産の再設計で最も重要な差分の1つです。

分類意味確認すること
Order注文リクエストや未約定注文注文が出されたか、注文種別、価格、期限
Position現在保有しているポジションsymbol、volume、price、profit、magic、ticket
Deal約定履歴いつ、どの価格で、どの注文が約定したか

MT4的な感覚で「注文=ポジション=履歴」のように扱うと、MT5では原因調査が難しくなります。

MT5版では、発注した事実、現在保有している状態、過去に約定した履歴を別々に確認できる設計にすることが重要です。

CTradeを使うか、MqlTradeRequestを使うか

MT5の発注処理では、CTradeを使う設計と、MqlTradeRequest / MqlTradeResultを直接扱う設計があります。

どちらが常に正解というより、EAの目的やログ要件によって選びます。

方式特徴向いている場面
CTrade標準ライブラリで注文処理を簡潔に書きやすい一般的な新規注文、決済、modifyを整理したい場合
MqlTradeRequest / MqlTradeResultrequestとresultを細かく確認しやすい詳細ログ、特殊注文、retcode監査、発注調査を重視する場合
ラッパー化内部でCTradeやrequestを使い、外側は責務を統一するsignal / execution / riskを分けたい場合

MT4資産をMT5化する時は、単にOrderSendを書き換えるのではなく、execution層として、注文前確認、発注、結果確認、retcodeログを分けて設計します。

インジケーター参照はCopyBuffer前提で見直す

MT4のインジケーター参照では、iCustomから直接値を受け取る実装が多く見られます。

MT5では、インジケーターハンドルを作成し、CopyBufferで値を取得する流れになります。

確認項目MT5で見ること
handle作成INVALID_HANDLEになっていないか
buffer番号BUY / SELL / 補助値がどのbufferか
shift未確定足か確定足か
CopyBuffer結果取得成功か、取得失敗か、値なしなのか
EMPTY_VALUEサインなしの表現をどう扱うか
リペイント過去サインが変わるか
handle解放OnDeinitで必要に応じてIndicatorReleaseするか

MT4版で「矢印が出たらEntry」だったとしても、MT5版では、どのbuffer、どのshift、どのbar timeの値を使うかを再設計する必要があります。

イベント構造をMT5向けに整理する

MT4資産をMT5へ作り直す時は、OnTickだけでなく、OnInit、OnDeinit、OnTimer、OnChartEventなどの役割も見直します。

イベント役割MT5再設計で確認すること
OnInit初期化handle作成、Inputs検証、selfcheck、timer設定
OnTick価格更新ごとの処理tickごとに必要な処理だけを残す
OnTimer定期処理表示更新、summary、外部通信、軽い監査を分ける
OnChartEventボタンやチャート操作直接発注せずUI request化する
OnDeinit終了処理timer停止、handle解放、軽量cleanupに絞る

MT4版でOnTickに多くの処理を詰め込んでいた場合、MT5版では責務ごとに分けることで安定性と調査性を高められます。

signal / execution / risk / exitを再設計する

MT4資産をMT5へ作り直す時は、既存ロジックをそのまま大きな関数へ詰め直すのではなく、責務分離を行います。

責務MT5再設計で確認すること
signalEntry候補を作るだけにする
execution発注・決済・modifyと結果確認を担当する
riskロット、保有上限、spread、証拠金、日次停止を扱う
exit既存ポジションの決済、Trail、BE、保護決済を扱う
loggingどの層で止まったかをreason付きで出す
UI表示やクリック操作をruntime stateと分ける
external外部通信や通知を売買処理と分ける

MT4版のコードが動いていたとしても、MT5版では、どこで判定し、どこで発注し、どこで止めたのかをログで追える構造に作り直す方が安全です。

実コード例1:MT4的な注文確認をそのまま持ち込まない

以下は、設計判断を理解するために一般化した比較用コード例です。完成EAのソース全文ではありません。

MT4資産をMT5へ作り直す時に起きやすいのが、「何か取引状態があるか」を1つの関数でまとめて確認してしまう設計です。

// 学習用の比較例です。
// MT4的な考え方をそのままMT5へ持ち込まないための説明用です。
// 実運用EAの完成ソースではありません。

bool HasAnyTradeLikeState_LegacyStyle()
{
   // 旧設計で起きやすい考え方:
   // ・注文、ポジション、履歴の責務が混ざる
   // ・symbolやmagicの確認範囲が曖昧になる
   // ・Entry判定と決済判定が同じ場所に集まりやすい
   // ・「今保有している」のか「注文を出した」のか「過去に約定した」のかが分からない

   bool hasSomething = false;

   // 疑似的な確認処理です。
   // 実際のMT5設計では、このようにまとめて判断しません。

   bool hasOrderLikeData = false;
   bool hasPositionLikeData = false;
   bool hasHistoryLikeData = false;

   if(hasOrderLikeData || hasPositionLikeData || hasHistoryLikeData)
      hasSomething = true;

   return hasSomething;
}

このように、注文・ポジション・履歴をまとめて「何かある」と扱うと、MT5では原因調査が難しくなります。

たとえば、EAが新規Entryを止めた時に、未約定注文があるから止めたのか、保有ポジションがあるから止めたのか、過去履歴を見て止めたのかが分かりません。

MT5向けに作り直す場合は、Order、Position、Dealを分けて確認し、それぞれの結果をSnapshotとして整理します。

// 学習用に一般化したMT5向けの分離例です。
// 実運用EAの完成ソースではありません。

struct TradeStateSnapshot
{
   int activePositionCount;
   int pendingOrderCount;
   int recentDealCount;
   bool hasActivePosition;
   bool hasPendingOrder;
   string reason;
};

TradeStateSnapshot BuildTradeStateSnapshot()
{
   TradeStateSnapshot snap;
   snap.activePositionCount = 0;
   snap.pendingOrderCount = 0;
   snap.recentDealCount = 0;
   snap.hasActivePosition = false;
   snap.hasPendingOrder = false;
   snap.reason = "INIT";

   // Position:
   // 現在保有しているポジションを確認する責務。
   // symbol、magic、ticket、side、volumeなどを確認対象にする。

   snap.activePositionCount = 0; // 実際はPositionSelect等で集計する
   snap.hasActivePosition = (snap.activePositionCount > 0);

   // Order:
   // 未約定注文や注文リクエスト状態を確認する責務。
   // 成行注文後の保有確認とは分けて考える。

   snap.pendingOrderCount = 0; // 実際はOrdersTotal等から必要範囲を集計する
   snap.hasPendingOrder = (snap.pendingOrderCount > 0);

   // Deal:
   // 過去に約定した履歴を確認する責務。
   // 現在保有しているかどうかとは分けて扱う。

   snap.recentDealCount = 0; // 実際はHistorySelect等で確認する

   snap.reason = "TRADE_STATE_SNAPSHOT_OK";
   return snap;
}

このように分けると、EAが止まった理由をログで追いやすくなります。

確認対象意味Entry判定への使い方
Position現在保有しているポジション最大保有数、同方向保有、決済管理の確認に使う
Order未約定注文や注文状態重複注文、未約定注文の有無を確認する
Deal過去の約定履歴直近決済、連続損失、履歴確認に使う

さらに、Entry前の判断では、TradeStateSnapshotをそのままOrderSendへ直結させず、GATEやriskへ渡します。

// 学習用に一般化したEntry前確認例です。
// 実運用EAの完成ソースではありません。

bool CanOpenNewEntryByTradeState(const TradeStateSnapshot &snap)
{
   if(snap.hasPendingOrder)
   {
      Print("DIAG/GATE: event=BLOCK",
            " reason=PENDING_ORDER_EXISTS");
      return false;
   }

   if(snap.hasActivePosition)
   {
      Print("DIAG/GATE: event=BLOCK",
            " reason=ACTIVE_POSITION_EXISTS");
      return false;
   }

   Print("DIAG/GATE: event=PASS",
         " reason=TRADE_STATE_OK");

   return true;
}

この例では、現在ポジションがある状態と、未約定注文がある状態を分けてGATE判定しています。

MT4資産の再設計では、「以前こう書いていたから同じように置き換える」のではなく、MT5で何を確認したいのかを責務ごとに分けます。特に、Order、Position、Dealを分けることで、Entry停止、決済対象、履歴確認、ログ調査の精度を上げやすくなります。

実コード例2:MT5向けにPosition Snapshotを作る

以下は、設計判断を理解するために一般化した学習用コード例です。完成EAのソース全文ではありません。

// 学習用に一般化したPosition Snapshot例です。
// 実運用EAの完成ソースではありません。

struct PositionSnapshot
{
   int count;
   int buyCount;
   int sellCount;
   double totalVolume;
   double floatingProfit;
   string reason;
};

PositionSnapshot BuildPositionSnapshot(long magic)
{
   PositionSnapshot snap;
   snap.count = 0;
   snap.buyCount = 0;
   snap.sellCount = 0;
   snap.totalVolume = 0.0;
   snap.floatingProfit = 0.0;
   snap.reason = "INIT";

   for(int i = PositionsTotal() - 1; i >= 0; i--)
   {
      ulong ticket = PositionGetTicket(i);

      if(ticket == 0)
         continue;

      if(!PositionSelectByTicket(ticket))
         continue;

      if(PositionGetString(POSITION_SYMBOL) != _Symbol)
         continue;

      if((long)PositionGetInteger(POSITION_MAGIC) != magic)
         continue;

      long type = PositionGetInteger(POSITION_TYPE);
      double volume = PositionGetDouble(POSITION_VOLUME);
      double profit = PositionGetDouble(POSITION_PROFIT);

      snap.count++;
      snap.totalVolume += volume;
      snap.floatingProfit += profit;

      if(type == POSITION_TYPE_BUY)
         snap.buyCount++;

      if(type == POSITION_TYPE_SELL)
         snap.sellCount++;
   }

   snap.reason = "POSITION_SNAPSHOT_OK";
   return snap;
}

MT5では、現在の保有状態をPosition Snapshotとして固定すると、Entry可否、risk、exit、ログ確認がしやすくなります。

特に、symbolとmagicを確認せずに全ポジションを扱う設計は避けるべきです。

実コード例3:signalとexecutionを分ける

以下は、設計判断を理解するために一般化した学習用コード例です。完成EAのソース全文ではありません。実Entry条件や実発注処理は含めていません。

// 学習用に一般化した責務分離例です。
// 実運用EAの完成ソースではありません。

enum SignalSide
{
   SIGNAL_NONE = 0,
   SIGNAL_BUY,
   SIGNAL_SELL
};

struct SignalResult
{
   bool ready;
   SignalSide side;
   string reason;
};

struct ExecutionCandidate
{
   bool allowed;
   SignalSide side;
   string reason;
   string route;
};

SignalResult EvaluateSignal()
{
   SignalResult signal;
   signal.ready = false;
   signal.side = SIGNAL_NONE;
   signal.reason = "NO_SIGNAL";

   // ここでは中核Entry条件は扱いません。
   // MT4資産から移行する場合も、signalは候補生成に留めます。

   return signal;
}

ExecutionCandidate BuildExecutionCandidate(const SignalResult &signal)
{
   ExecutionCandidate candidate;
   candidate.allowed = false;
   candidate.side = signal.side;
   candidate.reason = signal.reason;
   candidate.route = "MT5_REDESIGN_ROUTE";

   if(!signal.ready)
      return candidate;

   // 実際のEAでは、この後にGATE / risk / duplicate controlを確認します。

   candidate.allowed = true;
   candidate.reason = "ENTRY_CANDIDATE_READY";
   return candidate;
}

MT4版でEntry判定とOrderSendが同じ場所にあった場合でも、MT5版ではsignalとexecutionを分ける方が安全です。

signalは候補を作り、executionは発注と結果確認を行います。

実コード例4:移行チェックログを残す

// 学習用に一般化したMT4→MT5再設計チェックログ例です。
// 実運用EAの完成ソースではありません。

void WriteMigrationCheck(string item,
                         string eventName,
                         string reason,
                         string detail)
{
   Print("DIAG/MT4_TO_MT5: item=", item,
         " event=", eventName,
         " reason=", reason,
         " detail=", detail);
}

void PrintMigrationChecklist()
{
   WriteMigrationCheck("ORDER_POSITION_DEAL",
                       "CHECK",
                       "REVIEW_REQUIRED",
                       "Separate order, position, and deal handling.");

   WriteMigrationCheck("INDICATOR_HANDLE",
                       "CHECK",
                       "COPYBUFFER_REQUIRED",
                       "Review iCustom handle and buffer access.");

   WriteMigrationCheck("RESPONSIBILITY",
                       "CHECK",
                       "SEPARATE_LAYERS",
                       "Separate signal, execution, risk, and exit.");

   WriteMigrationCheck("LOGGING",
                       "CHECK",
                       "ADD_REASON_LOG",
                       "Add event and reason logs for verification.");
}

MT4資産をMT5へ作り直す時は、変換作業だけでなく、再設計チェックをログや仕様書に残すと確認しやすくなります。

MT4インジケーターをMT5化する時の注意

MT4インジケーターをMT5へ作り直す場合も、単純な関数置換では足りないことがあります。

確認項目MT5で確認すること
OnCalculate引数、rates_total、prev_calculated、配列方向を確認する
buffer設定SetIndexBuffer、PlotIndexSet、描画タイプを確認する
ArraySetAsSeries時系列配列の向きを確認する
iCustom連携EAからCopyBufferで読める構造にする
リペイント過去サインが変わるか確認する
表示ObjectObject表示とbuffer出力を混同しない

MT4版でチャートに矢印が出ていたとしても、MT5版ではEAから読みやすいbuffer設計にするかどうかを検討する必要があります。

MT4 EAをMT5化する時の注意

MT4 EAをMT5へ作り直す場合は、注文・ポジション・履歴の設計を見直します。

確認項目MT5で確認すること
Entry条件signal層として候補生成に分ける
発注処理CTradeまたはMqlTradeRequestでexecution層に分ける
決済処理Position、ticket、magic、symbol、sideを確認する
履歴確認Deal履歴とOrder履歴を分けて見る
Magic Numberロジック別、EA別、手動除外の方針を決める
riskロット、証拠金、保有数、spreadを再確認する
ログNO_SIGNAL、GATE_BLOCK、ORDER_FAIL、EXIT_SKIPを分ける

MT4版で動いていたEAでも、MT5版ではポジション管理と注文結果確認を明確にしないと、誤決済や原因不明の見送りにつながることがあります。

バックテスト条件はMT5で取り直す

MT4版のバックテスト結果がある場合でも、MT5版ではMT5のストラテジーテスターで再検証する必要があります。

MT4版とMT5版では、テスター条件、tick model、銘柄仕様、スプレッド、約定、履歴データの扱いが異なる可能性があります。

検証項目確認すること
銘柄仕様digits、point、tick value、contract size、volume step
検証期間MT4版と同条件で比較できるか
時間足判定タイミングが同じか
spread固定条件とリアル条件の違い
tick model未確定足やインジ値への影響
ログEntry理由、見送り理由、決済理由が追えるか
リアル差分BTとリアルでEntry位置や約定がずれないか

MT4版の成績をそのままMT5版の期待値として扱うのは避けるべきです。MT5版は、MT5環境で再検証します。

単純変換で起きやすい失敗

MT4資産をMT5へ単純変換すると、次のような問題が起きやすくなります。

失敗例内容対策
OrderSelect感覚のまま作るOrder、Position、Dealの区別が曖昧になるMT5の注文・ポジション・履歴構造に分ける
iCustom値取得をそのまま置換するhandleとCopyBufferの考え方が抜けるhandle作成、buffer番号、shiftを整理する
OnTickに全部詰める重くなり、原因調査が難しくなるOnTimer、OnChartEvent、OnDeinitを分ける
ログがMT4版のまま少ないMT5版で止まった理由が分からないevent / reason / detailを追加する
Magic Number管理が曖昧他EAや手動ポジションを巻き込むsymbol、magic、logic_id、ticketでscopeを分ける
検証条件を流用するMT5の銘柄仕様やBT条件と合わないMT5で検証条件を取り直す

単純変換は、短期的には早く見える場合があります。しかし、後から不具合調査や改修が難しくなりやすいため、再設計として進める方が安全です。

MT5再設計でログに残すべき情報

MT4資産をMT5へ作り直す時は、差分が分かるログを用意します。

ログ区分確認できること例
MIGRATION_CHECKMT4資産からMT5再設計した確認項目ORDER_POSITION_DEAL、COPYBUFFER_REQUIRED
RUNTIMEMT5版の起動状態RUNTIME_INIT_OK、HANDLE_OK
SIGNALMT5版でEntry候補が出たかSIGNAL_OK、NO_SIGNAL
GATE発注前条件で止まったかSPREAD_BLOCK、POSITION_BLOCK
ORDER注文結果ORDER_SEND_OK、ORDER_SEND_FAIL、retcode
POSITION_SNAPSHOT現在保有状態count、buy、sell、volume、profit
EXIT決済理由TRAIL、BE、SIGNAL_EXIT、EXIT_SKIP

MT4版とMT5版の比較では、損益だけでなく、Entry理由、見送り理由、決済理由、注文結果を比較できるログが重要です。

MT4版と同じ見た目にするか、MT5向けに改善するか

MT4資産をMT5へ作り直す時、見た目や操作感をどこまで維持するかも確認します。

方針メリット注意点
MT4版に近い見た目にする利用者が違和感なく使いやすいMT5設計に合わないUIを無理に再現しない
MT5向けにUIを整理する表示、ログ、操作導線を改善できるMT4版と操作感が変わる可能性がある
内部構造だけ再設計する利用者の見た目を大きく変えず安全性を高める変更点をmanualで説明する必要がある
機能追加も同時に行うログ、HELP、Snapshot、通知などを強化できる単純移行より検証範囲が広がる

移行時は、見た目を変えないことが常に正解ではありません。MT5向けに安全性、ログ、サポート性を高める再設計も検討します。

EA利用者向けの確認ポイント

EA利用者がMT4からMT5への移行を相談する場合、MQL4やMQL5の詳細を理解していなくても、必要な情報を整理できます。

  • MT4版のEA名・インジケーター名
  • EX4だけか、MQ4ソースがあるか
  • 使用していたsetファイル
  • チャート画像や表示例
  • どの機能をMT5でも使いたいか
  • 通知や外部連携があるか
  • バックテスト結果や検証条件
  • エラーや不具合が出ている場合のログ

「MT4版と同じようにしたい」という依頼でも、同じの意味を整理する必要があります。表示を同じにしたいのか、注文条件を同じにしたいのか、通知やログも同じにしたいのかを分けてください。

MQL5開発者向けの確認ポイント

MQL5開発者は、MQL4コードを見た時に、単純な構文変換ではなく、MT5構造へ置き換える箇所を確認します。

確認対象MQL4側で見ることMQL5側で設計すること
注文処理OrderSend、OrderClose、OrderModifyCTradeまたはMqlTradeRequest構造へ整理
ポジション探索OrderSelectループ、Magic NumberPositionSelect、ticket、symbol、magicで管理
履歴参照OrderHistory系の参照HistorySelect、Deal、Order履歴へ整理
インジ連携iCustomの使い方handle作成、CopyBuffer、IndicatorRelease
ファイル操作Files、CSV、外部設定MQL5のFiles / Common運用へ整理
ログPrint中心のログ検証用ログ、エラーコード、retcodeを整理

MQL5関数の役割は、MQL5関数辞書も参考になります。

検証担当者向けの確認ポイント

検証担当者は、MT4版とMT5版の結果だけを比較するのではなく、条件とログを比較する必要があります。

  • 同じ銘柄名か
  • 同じ時間足か
  • 同じ期間か
  • 同じset相当の条件か
  • 現在足・確定足の扱いが同じか
  • スプレッド条件が同じか
  • Magic Numberやポジション管理が一致しているか
  • 注文・決済ログが追えるか
  • MT4版で出ていたサインとMT5版で出るサインが同じ条件か
  • バックテストとリアル確認を分けているか

MT5側で価格や時系列データを確認する場合は、MQL5時系列データ・価格取得完全ガイドも参考にしてください。

よくある誤解

誤解実際の確認注意点
MQ4があれば自動でMQ5に変換できる構造差があるため手作業の確認が必要注文管理やインジ連携は作り直しになりやすい
EX4をMT5へ入れれば動くEX4はMT4用実行ファイルMT5ではEX5が必要
バックテスト結果は同じになるテスター条件やデータ差で変わる可能性がある結果ではなく条件とログを比較する
見た目が同じならEA化できるEAから読める値が必要バッファ番号とCopyBuffer取得値を確認する
MT5版では全部高機能にすべき目的に応じて必要機能を整理する不要機能を増やすと検証が難しくなる

関連ログ・関連エラー

MT4からMT5へ作り直した後は、コンパイルエラー、注文エラー、インジケーター読み込みエラー、CopyBuffer失敗、WebRequest失敗などを確認することがあります。

確認対象関連する問題確認するログ
コンパイル未定義識別子、型不一致、include不足MetaEditorのエラー欄
注文処理ロット不正、取引不可、retcodeエラーExpertsログ、Journalログ
ポジション管理対象ポジションなし、Magic不一致Expertsログ、取引タブ、履歴
インジ連携INVALID_HANDLE、CopyBuffer失敗Expertsログ、GetLastError
外部連携WebRequest未許可、HTTPエラーExpertsログ、Journalログ、外部側ログ

エラーコードの整理は、MQL5エラーコード辞典も確認してください。

開発依頼前に送る情報

MT4からMT5への移行や作り直しを相談する場合は、次の情報を整理してください。

情報必要性注意点
対象ファイルEA・インジの特定EX4だけかMQ4ソースがあるか明記する
MT4版setファイル入力条件の確認認証情報やURLがないか確認する
チャート画像表示やサインの確認口座番号や個人情報を隠す
動作説明何を再現したいか確認表示、判定、注文、通知を分ける
バックテスト条件比較条件の確認結果保証ではなく条件確認として扱う
Expertsログエラーや処理状況の確認発生前後を含める
Journalログ端末側状態の確認接続、注文、テスター関連を含める

開発依頼前の資料整理は、MT5開発依頼前に用意する資料まとめも参考にしてください。

移行する対象ごとに確認資料をそろえる

開発・改修・移行相談前チェックリスト

相談前に以下を整理しておくと、現在の状態、対応可否、追加確認事項を原因を確認しやすくなります。

分類確認すること
依頼種別MT5新規開発 / MT4・MT5既存改修 / MT4→MT5移行 / 不具合調査
対象EA / インジケーター / コピーEA / 補助ツール / 通知・外部連携
現在環境MT4またはMT5、PC/VPS、対象銘柄、時間足
ファイルmq4 / mq5 / mqh / ex4 / ex5 / setの有無
現在仕様現在どのように動いているか
希望仕様何を追加・修正・廃止したいか
表示パネル、ライン、矢印、ラベル等
売買処理Entry / Exit / ロット / ポジション管理等
通知・外部連携Discord / CSV / Sheets / WebRequest / API等
検証条件銘柄、時間足、期間、set、期待する動作
ログExperts / Journal / 通知・通信ログ
権利関係改修・移行を依頼できる権利があるか

送る情報・送らない方がよい情報

相談時には、技術確認に必要な情報と、機密情報を分けてください。

送ると確認しやすい情報理由
MT4 / MT5の別対象環境を確認するため
EA・インジ名とバージョン対象を特定するため
mq4 / mq5 / mqh内部仕様・依存関係を確認するため
setファイル現在のInputsを確認するため
仕様書・マニュアル想定動作を確認するため
スクリーンショット表示・設定・エラー状態を確認するため
Experts / Journalログ動作・エラー・再現状態を確認するため
希望仕様メモ修正・移行後の状態を整理するため
そのまま送らない情報注意点
MT4/MT5ログイン情報パスワード等は送信しない
VPSログイン情報リモート接続情報は送信しない
口座番号ログや画像では必要に応じて伏せる
Webhook URL通知先へ接続できる情報のため伏せる
GAS URL外部サービス接続先のため伏せる
APIキー認証情報のため送信しない
認証トークン利用権限に関係するため送信しない

よくあるトラブルと確認順

MT4/MT5の違いが関係する相談では、「ファイルを入れたが表示されない」「EAが動かない」「MT5へ移行したが想定どおり動かない」といった問題があります。

症状主な原因候補確認順
MT4用EAがMT5に表示されないファイル形式・対象環境が違うmq4/ex4か、mq5/ex5か確認する
インジケーターが表示されない対象環境、配置場所、初期化エラー等MT4/MT5、配置場所、Expertsログを確認
既存製品を改修できるか不明ソースがない、権利が不明mq4/mq5の有無と権利関係を確認
MT5化したが同じ動きにならない発注、ポジション、判定、表示等の仕様差機能単位でMT4版とMT5版を照合
バックテスト結果が大きく違う検証条件が異なる銘柄、時間足、期間、set、スプレッド等を比較
通知・外部連携が動かないWebRequest、送信先、認証、設定不足設定、Expertsログ、通信結果を確認

開発・改修・MT5移行を相談する前に

新規MT5開発、既存MT4/MT5製品の修正、MT4からMT5への移行を検討している場合は、現在の状態と希望する変更内容を分けて整理してください。

確認したい内容確認ページ
現在の開発受付方針・対応範囲開発依頼・作成代行
見積前に必要な情報見積依頼前の確認事項
開発前の仕様整理開発依頼前の仕様整理
既存EA・インジ改修前の確認既存EA・インジケーター改修を依頼する前に整理すること
不具合報告不具合報告の方法
免責・リスク免責事項・リスク説明

MQL4開発依頼でよくある相談

既存EA改修

既存EAの改修では、まずmq4ソースがあるかを確認します。

mq4がある場合は、内部処理を確認しながら改修を検討できます。ex4のみの場合は、内部ロジックを直接改修することは基本的に難しく、仕様をもとに再作成を検討する形になります。

インジ改修

既存インジケーターの改修では、表示条件、色、サイン条件、通知条件、対象時間足、リペイントの扱いを整理します。

表示画面のスクリーンショット、Inputs、setファイル、Expertsログがあると確認しやすくなります。

アラート追加

既存インジケーターやEAにアラートを追加したい場合は、どの条件で通知するのかを明確にしてください。

同じ足で何度も通知しないようにするのか、足確定時だけ通知するのか、BUY/SELLで通知内容を分けるのかなど、通知ルールを整理する必要があります。

MT5化

MT4用のEAやインジケーターをMT5で使いたい場合、MQL5用に作り直しが必要になることがあります。

MT5化を相談する場合は、現在のmq4ソース、表示画面、Inputs、必要機能、不要機能、現在のログを整理してください。

ログ追加

EAやインジケーターの動作確認をしやすくするために、ログ追加を相談することがあります。

ログ追加では、どの判定、どの入力値、どのエラー、どの状態変化を出したいのかを整理します。ログが多すぎると確認しづらくなるため、必要な範囲を決めることも重要です。

バックテスト補助

EAのバックテストやインジケーター検証をしやすくするために、確認用ログ、表示、CSV出力などを追加することがあります。

バックテスト補助は、検証条件や動作確認を整理するためのものです。将来の結果を保証するものではありません。

相談内容必要な情報確認すること
既存EA改修mq4、set、ログ、希望変更改修範囲と影響範囲
インジ改修mq4、表示画像、Inputs、条件表示・通知・対象時間足
アラート追加通知条件、タイミング、文面重複通知防止とログ
MT5化既存ファイル、表示画面、仕様作り直し範囲と不要機能
ログ追加見たい判定、エラー、状態ログ量と確認しやすさ

相談時に送る情報・送らない方がよい情報

送ると確認しやすい情報

MQL4開発や改修の相談では、対象ファイル、現在の動作、変更したい内容、ログ、設定を整理すると確認が進めやすくなります。

送ると確認しやすい情報理由
mq4ファイル内部処理や改修可否を確認するため
ex4ファイル実行確認や現在の動作確認に使うため
setファイルInputs設定を確認するため
ExpertsログEAやインジ側のエラーを確認するため
Journalログ端末側や注文側の状態を確認するため
スクリーンショット表示状態や設定画面を確認するため
仕様メモ作りたい機能や変更点を整理するため

そのまま送らない方がよい情報

setファイル、スクリーンショット、ログには、通知先URLや認証情報、口座番号が含まれる場合があります。

相談時には、確認に必要な情報と、そのまま送らない方がよい情報を分けてください。

そのまま送らない方がよい情報注意点
Webhook URL通知先へ接続できる情報のため注意する
GAS URL外部シート連携に関係するため共有範囲に注意する
APIキー外部サービス認証に関係するためそのまま送らない
認証トークン利用権限に関係するためマスクして扱う
口座番号スクリーンショットやログへの映り込みに注意する

よくあるトラブルと確認順

MQL4関連の相談では、ファイル形式、設置場所、ソース有無、ログ、通知設定の確認が重要です。

症状主な原因候補確認順
EAが動かない自動売買OFF、設定不備、条件未成立自動売買、Inputs、Expertsログを確認
インジが表示されない配置場所違い、色、時間足、データ不足Indicatorsフォルダ、表示設定、ログを確認
改修できるか分からないmq4がなくex4のみソース有無と再作成可否を確認
通知が届かない通知OFF、メール設定、外部URL設定通知設定、外部連携、Expertsログを確認
MT5で使えないMQL4はMT4向けMQL5用の作り直し範囲を整理

移行・改修相談前に準備するもの

MQL4からMQL5への移行や、既存EA・インジケーターの改修を相談する場合は、現在の状態と希望する状態を分けて整理してください。

準備する情報確認する内容
対象製品EA / インジケーター / 補助ツール、名称、バージョン
現在環境MT4 / MT5、PC / VPS、対象銘柄、時間足
ソースmq4 / mq5 / mqhの有無
実行ファイルex4 / ex5の有無
set現在使用しているInputs
現在仕様現在どの条件で何をするか
希望仕様残す機能、変更する機能、追加・廃止する機能
画面パネル、ライン、矢印、Inputs等
ログExperts、Journal、エラー、通知結果
検証条件銘柄、時間足、期間、set、期待動作
権利改修・移行を依頼できる権利の有無

送る情報・送らない方がよい情報

技術確認に必要な情報は共有できますが、認証情報や口座情報などは原則として送信しないでください。

送ると確認しやすい情報理由
mq4 / mq5 / mqh内部仕様・依存関係を確認するため
setファイル現在の設定を確認するため
仕様書・マニュアル想定動作を確認するため
スクリーンショット画面・設定・症状を確認するため
Experts / Journalログエラー・動作状態を確認するため
現在仕様メモ現状を整理するため
希望仕様メモ移行・改修後の状態を整理するため
そのまま送らない情報理由
MT4 / MT5ログインパスワード技術確認に不要な認証情報のため
VPSログイン情報リモート接続情報のため
口座番号個別口座情報のため、必要に応じて伏せる
Webhook URL第三者が通知送信できる可能性があるため
GAS URL外部サービス接続先に関係するため
APIキー外部サービス認証情報のため
認証トークン利用権限に関係するため
ライセンスキー実値利用権限に関係する情報のため

よくあるトラブルと確認順

MQL4 / MQL5の違いが関係する問題では、最初からコードだけを見るのではなく、対象環境、ファイル、仕様、ログを順番に確認すると原因を確認しやすくなります。

症状主な原因候補確認順
MT4用EAがMT5で動かない対象環境・ファイル形式が違うmq4 / ex4か、mq5 / ex5か確認
MT4インジがMT5で表示されない計算・描画・バッファ仕様が違うソース、表示条件、ログを確認
MT5へ移行したが注文しないEntry・Execution・Position仕様差条件、管理対象、注文結果ログを確認
決済対象がおかしいポジション識別仕様が違うマジック、銘柄、方向、管理範囲を確認
サインが一致しない参照バー、確定足、バッファ等の差計算条件・取得値・タイミングを比較
通知が動かない通知条件、WebRequest、送信設定条件、設定、Expertsログを確認
改修できるか分からないソースまたは権利が不足mq4 / mq5と権利関係を確認

相談前に整理する情報

現行画面

現在のMT4インジケーターの画面をスクリーンショットで保存してください。

サインが出ている場面、ラインが表示されている場面、サブウィンドウ、アラート表示、Inputs画面があると、MT5側で再現したい内容を確認しやすくなります。

期待動作

MT5側でどのように動いてほしいかを整理してください。

完全に同じ表示にしたいのか、表示を簡略化したいのか、通知を追加したいのか、不要な機能を削除したいのかを分けてください。

ファイル

mq4、ex4、set、テンプレート、関連ファイルがあるか確認してください。

mq4がある場合は、内部仕様の確認に役立ちます。ex4のみの場合は、再現作成に必要な資料を多めに整理する必要があります。

ログ

表示されない、通知が届かない、エラーが出る場合は、Expertsログを確認してください。

相談時には、発生時刻前後のログ、インジケーター名、エラー行を整理してください。

条件説明

サイン条件や通知条件は、できるだけ文章で整理してください。

「このような場面で矢印が出る」だけでなく、どのインジケーター値、どの価格条件、どの時間足、どのタイミングで出るのかを説明できると、確認が進めやすくなります。

不要機能

MT5化のタイミングで不要な機能を整理しておくと、作り直し範囲を明確にできます。

使っていない通知、古い表示、不要な色設定、不要な外部連携などがあれば、残す機能と削る機能を分けてください。

送ると確認しやすい情報理由
mq4ファイル内部仕様を確認しやすくなるため
ex4ファイル現在の実行確認に使えるため
setファイルInputs設定を確認するため
スクリーンショット表示内容やサイン位置を確認するため
条件説明MT5側で再現する判定を整理するため
Expertsログ初期化エラーや通知エラーを確認するため
残す機能・不要機能作り直し範囲を明確にするため

送らない方がよい情報

インジケーター移行や作り直し相談では、setファイル、ログ、スクリーンショットに認証情報や外部URLが含まれる場合があります。

そのまま送らない方がよい情報注意点
口座番号スクリーンショットやログへの映り込みに注意
Webhook URL通知先へ接続できる情報のため注意
GAS URL外部シート連携先に関係するため注意
APIキー外部サービス認証に関係するため注意
認証トークン利用権限に関係するため注意

よくあるトラブルと確認順

MT4インジケーターをMT5へ移行・作り直しする場合は、ファイル形式、表示仕様、判定条件、通知、ログを順番に確認します。

状況主な原因候補確認順
MT5に入れても表示されないMT4用ファイルを入れているmq4/ex4か、mq5/ex5か確認する
同じ見た目にならない描画方式や表示設定が違うスクリーンショット、色、位置、表示形式を確認
サイン位置が違う判定条件、時間足、足確定の違いサイン条件と対象時間足を確認
通知が届かない通知条件、WebRequest、外部URLの設定差通知設定、送信ログ、外部連携を確認
ex4しかなく移行できるか不明内部ロジックを確認できない画面、Inputs、条件説明をもとに再現可否を確認

相談前に整理すること

作りたいもの

相談前には、作りたいものがEA、インジケーター、スクリプト、補助ツールのどれかを整理してください。

表示だけなのか、通知が必要なのか、注文や決済まで行うのかを分けると、必要な開発範囲を確認しやすくなります。

現状の理解度

現在どこまで理解しているかも整理してください。

コードは読めるが修正が不安、コンパイルエラーで止まっている、注文処理だけ分からない、既存EAの改修範囲を確認したい、などの状態を伝えると、確認順を決めやすくなります。

参考インジやEA

参考にしたいインジケーターやEAがある場合は、ファイル名、スクリーンショット、setファイル、ログ、希望する機能を整理してください。

ただし、ex4だけの場合は内部仕様を直接確認できない場合があります。mq4ソースの有無も確認してください。

希望する機能

希望する機能は、できるだけ具体的に整理してください。

「矢印を出したい」「通知したい」「指定条件で注文したい」「決済条件を追加したい」「ログを分かりやすくしたい」など、機能単位で分けると確認しやすくなります。

ログ

相談時には、Expertsログ、Journalログ、MetaEditorのコンパイル結果を整理してください。

エラーが出ている場合は、ファイル名、行番号、エラー内容、発生時刻、変更した箇所を記録します。スクリーンショットに口座番号や認証情報が映り込まないよう注意してください。

送らない方がよい情報

MQL4学習や開発相談では、setファイル、ログ、スクリーンショットに重要情報が含まれる場合があります。

そのまま送らない方がよい情報注意点
口座番号スクリーンショットやログへの映り込みに注意
ログインパスワード確認に不要なため送らない
Webhook URL通知先へ接続できる情報のため注意
GAS URL外部シート連携先に関係するため注意
APIキー外部サービス認証に関係するため注意
認証トークン利用権限に関係するためマスクする
VPSログイン情報サーバー操作権限に関係するため送らない

よくあるトラブルと確認順

MQL4学習では、コードそのものだけでなく、ファイル配置、コンパイル、ログ、MT4側設定、チャート適用状態を順番に確認することが重要です。

症状主な原因候補確認順
コンパイルできない文法エラー、括弧不足、型不一致、関連ファイル不足MetaEditorのエラー行と最初のエラーを確認
チャートに表示されないフォルダ違い、拡張子違い、未更新MQL4 / ExpertsまたはIndicators、再起動を確認
サインが想定と違う参照足、配列、リペイント、条件式の違いログで値と足番号を確認
注文が通らないロット、証拠金、取引時間、自動売買OFF、エラー処理不足ExpertsログとJournalログを確認
どこを直せばよいか分からない関数分離不足、ログ不足、仕様未整理目的、Inputs、処理順、ログを整理

相談前に整理しておきたい情報

  • 作りたいものがEA、インジケーター、スクリプト、補助ツールのどれか
  • 売買実行が必要か、表示・通知だけか
  • 対象ファイル名、EA名またはインジケーター名
  • mq4 / ex4の有無
  • MT4のバージョン、口座種別、通貨ペア、時間足
  • setファイル、Inputs設定、スクリーンショット
  • MetaEditorのコンパイル結果
  • Expertsログ、Journalログ、発生時刻
  • 変更前後の状態が分かるメモ
  • 自作で進めたい範囲と依頼したい範囲

相談前に送る情報

エラー番号

注文エラーの相談では、エラー番号を整理してください。

OrderSendが失敗した時に、EAがエラー番号をログに出している場合があります。エラー番号だけでなく、どの注文条件で発生したかも合わせて確認します。

Expertsログ

Expertsログは、EA側の注文処理、注文前条件、注文成功、注文失敗、エラー番号を確認するために重要です。

相談時には、注文しようとした時刻前後のExpertsログを整理してください。ログが多い場合は、発生時刻、EA名、MagicNumber、通貨ペアで絞ると確認しやすくなります。

該当箇所

mq4ソースがある場合は、OrderSendの該当箇所を確認してください。

ただし、コード全体の一部だけを見ると、前後の条件や関数呼び出しが分からない場合があります。OrderSendの前にどの条件を満たしているか、失敗時にどの処理へ進むかも確認対象です。

注文条件

注文条件を整理してください。

BUYなのかSELLなのか、どの通貨ペアなのか、どの時間足なのか、ロットはいくつか、SL/TPは指定しているか、MagicNumberは何か、注文前にどのフィルターを通っているかを確認します。

setファイル

setファイルは、EAのInputs設定を確認するために重要です。

ロット、MagicNumber、SL/TP、スリッページ、稼働時間、最大ポジション、通知設定、ログ設定などがsetファイルに含まれる場合があります。

setファイルを共有する場合は、Webhook URL、APIキー、GAS URL、認証トークンなどの実値が含まれていないか確認してください。

送らない方がよい情報

OrderSendや注文エラーの相談では、setファイル、ログ、スクリーンショットに重要情報が含まれる場合があります。

よくあるトラブルと確認順

OrderSend関連のトラブルでは、エントリー条件、注文値、MT4設定、口座状態、ログを分けて確認することが重要です。

症状主な原因候補確認順
条件成立しているのに注文しないOrderSend前のブロック、取引時間外、自動売買OFF条件ログ、稼働時間、自動売買状態を確認
OrderSendが失敗するロット、価格、SL/TP、証拠金、接続状態エラー番号、Expertsログ、Journalログを確認
想定外のロットで注文するInputs未反映、固定値、計算ミスsetファイル、ロット計算ログを確認
別EAの注文を決済しているように見えるMagicNumber重複、決済条件の絞り込み不足OrderSendとOrderClose周辺のMagicNumberを確認
注文エラーの理由が分からないエラー処理・ログ不足OrderSend戻り値、GetLastError、ログ出力を確認

相談前に整理しておきたい情報

  • 対象EA名、ファイル名、バージョン
  • mq4 / ex4の有無
  • OrderSendの呼び出し箇所
  • 注文種別、通貨ペア、時間足
  • ロット、価格、SL/TP、スリッページ、MagicNumber
  • setファイル、Inputs設定、スクリーンショット
  • 注文失敗時のエラー番号
  • Expertsログ、Journalログ、発生時刻
  • 変更前後の状態が分かるメモ
  • 複数EA運用や手動注文との関係

移行前・開発依頼前に整理する情報

MT4資産をMT5へ作り直す相談をする場合、次の情報を整理しておくと確認がスムーズになります。

  • 対象がEAかインジケーターか
  • MT4版のファイル形式
  • ソースコードの有無
  • 既存setファイルの有無
  • Entry条件の説明
  • Exit条件の説明
  • ナンピン、マーチン、複数ポジション管理の有無
  • Magic Numberの使い方
  • 手動ポジションを管理対象にするか
  • 対象銘柄と時間足
  • MT4版で使っていたインジケーター
  • iCustomや外部ファイル参照の有無
  • 通知、CSV、WebRequest、DLLの有無
  • MT4版バックテスト結果
  • MT5版で残したい挙動
  • MT5化に合わせて改善したい点

ソースコードがない場合、完全な再現が難しいことがあります。その場合は、仕様書、画面、ログ、挙動説明、バックテスト結果、setファイルから再設計方針を検討します。

送ってはいけない情報

MT4資産やMT5移行の相談では、ファイルやログを送る場面があります。ただし、次の情報はそのまま送らないでください。

  • 口座番号の全桁
  • 投資家パスワード
  • マスターパスワード
  • Webhook URLの実値
  • GAS URLの実値
  • APIキー
  • 認証トークン
  • 外部サービスの秘密情報
  • 個人情報
  • 第三者の個人情報が入ったログ

MT4からMT5への技術移行チェック表

  • □ EX4だけか、MQ4ソースがあるか確認した
  • □ EAなのか、インジケーターなのか、スクリプトなのか確認した
  • □ MT5で再現したい機能を整理した
  • □ 表示系と判定系を分けた
  • □ signal、execution、risk、exit、notificationを分けて確認した
  • □ OrderSelect依存の処理を確認した
  • □ Position / Deal / Historyへ置き換える箇所を確認した
  • □ インジケーターバッファとサイン値を確認した
  • □ iCustom / CopyBufferで読む必要があるか確認した
  • □ 外部連携やDLLの有無を確認した
  • □ MT4版setファイルを保存した
  • □ MT5版で必要なinputを整理した
  • □ バックテスト条件を整理した
  • □ ExpertsログとJournalログを保存した
  • □ 口座番号や認証情報をマスクした

よくある質問

EX4しかなくてもMT5へ移行できますか?

EX4だけでは内部ロジックを直接確認できないため、完全な変換や移植には制約があります。ただし、表示、設定、スクリーンショット、ログ、動作説明をもとに、MT5向けに似た仕様として作り直す相談は可能な場合があります。

MQ4ソースがあれば自動変換できますか?

MQ4ソースがあっても、MQL5へ自動変換してそのまま動くとは限りません。注文管理、ポジション管理、履歴取得、インジケーター連携などは、MQL5向けに作り直す必要がある場合があります。

MT4 EAをそのままMT5で使えますか?

使えません。MT4用のEX4はMT5ではそのまま動きません。MT5で使うには、MQL5向けのEAとして作り直し、EX5としてコンパイルする必要があります。

MT4インジケーターはMT5で表示できますか?

MT4用のインジケーターをそのままMT5へ入れて表示することはできません。MT5向けにインジケーターを作り直し、バッファや描画方式をMQL5に合わせる必要があります。

MT5で作り直す時に仕様書は必要ですか?

仕様書や整理メモがあると確認しやすくなります。特に、エントリー条件、決済条件、インジケーター値、通知、外部連携、input、ログ、対象銘柄、時間足を整理しておくと、作り直し範囲が明確になります。

バックテスト結果はMT4とMT5で同じになりますか?

同じになるとは限りません。テスター、ヒストリカルデータ、spread、銘柄名、サーバー時間、約定条件、手数料などが異なる場合があります。結果そのものより、条件とログを比較してください。

MT4版setファイルはMT5版で使えますか?

そのまま使えるとは限りません。MT5版でinput名、型、単位、初期値、表示順を整理し直す必要があります。MT4版setは、設定内容を確認する資料として扱うのが安全です。

サインインジをMT5 EAから読みたい場合は何を確認しますか?

BUY / SELLのバッファ番号、サインなしの値、shift 0 / shift 1、リペイントの有無、iCustom / CopyBufferで取得できるかを確認します。

MT4版と同じ見た目にすれば同じ動作になりますか?

見た目が同じでも、内部のバッファ値、判定タイミング、注文管理、履歴管理が違えば動作は変わる場合があります。表示系と判定系を分けて確認してください。

移行相談では何を送ればよいですか?

対象ファイル、MQ4ソースの有無、EX4、setファイル、チャート画像、動作説明、バックテスト条件、Expertsログ、Journalログを整理してください。口座番号や認証情報はマスクしてください。

MT4とMT5で同じEAを使えますか?

基本的には別の実行環境として確認する必要があります。MT4用EAとMT5用EAではファイル形式や実装が異なるため、MT4用のex4をMT5へ入れてそのまま利用することはできません。

MT4のEAをMT5用にできますか?

検討できます。ソースコードの有無、機能、発注・決済、ポジション管理、表示、通知、外部連携などを確認し、MT5向けに必要な再設計・再実装範囲を判断します。

MT4インジケーターをMT5で使えますか?

MT4用のmq4/ex4をMT5へそのまま配置して使うことは基本的にできません。mq4ソースがある場合は、計算、バッファ、描画、通知等を確認してMT5向けの再構築を検討します。

新規開発ならMT4とMT5のどちらですか?

EAFCでは、新規のEA・インジケーター・補助ツール等の開発はMT5を基本としています。MT4は、現在利用している既存製品の修正・不具合対応などを中心に確認します。

既存MT4は必ずMT5へ移行する必要がありますか?

必ずしも移行が必要なわけではありません。既存MT4製品の小規模な修正や保守であれば、MT4のまま対応できる場合があります。大規模な機能追加、長期利用、継続的な拡張を予定している場合はMT5への移行・再構築を検討します。

ex4やex5だけでも改修できますか?

ex4やex5はコンパイル済みファイルのため、内部ロジックを直接確認・変更することは基本的にできません。ソースコードがない場合は、現在の動作や仕様資料を確認して再構築を検討する場合があります。デコンパイルや無断解析には対応しません。

MT4からMT5への移行は単純変換ですか?

単純変換とは限りません。MQL4とMQL5では、発注・決済、ポジション管理、イベント処理、インジケーターバッファなどに違いがあるため、既存仕様を確認したうえでMT5向けに再設計・再実装する場合があります。

MT4/MT5の違いで利益は変わりますか?

この記事では利益や売買成績の比較は扱っていません。EAやインジケーターの開発、改修、移行、導入確認に必要な技術的な違いを整理しています。

相談前に何を準備すればよいですか?

新規開発か既存改修か、現在MT4/MT5のどちらを使っているか、対象ファイル、setファイル、現在の動作、希望する変更、スクリーンショット、Expertsログ、Journalログなどを整理してください。Webhook URL、APIキー、認証情報などは送信しないでください。

新規開発、既存改修、MT4→MT5移行のどれかを整理し、mq4 / mq5 / mqh、setファイル、現在仕様、希望仕様、スクリーンショット、Expertsログ、Journalログなどを準備してください。口座情報や認証情報は伏せてください。

MQL4とは何ですか?

MQL4は、MT4でEA、インジケーター、スクリプトなどを作るための開発言語です。MT4向けの自動売買、表示、通知、集計、操作補助などに使われます。

mq4とex4の違いは何ですか?

mq4はソースコード、ex4はコンパイル済みファイルです。改修や内容確認には、原則としてmq4の有無が重要です。

MQL4でMT5用のEAを作れますか?

MQL4はMT4向けです。MT5向けのEAやインジケーターは、MQL5での作成または作り直しが必要になる場合があります。

MQL4の知識がなくても依頼できますか?

可能です。ただし、作りたい機能、対象環境、mq4/ex4の有無、setファイル、ログ、スクリーンショットを整理しておくと相談が進めやすくなります。

ex4だけでも改修できますか?

ex4はコンパイル済みファイルのため、内部ロジックを直接確認して改修することは基本的に難しくなります。mq4がない場合は、現在の動作や画面をもとに再作成を検討する形になります。

MQL4でアラートや通知を追加できますか?

仕様によります。通知条件、通知タイミング、通知先、重複防止、ログ出力を整理することで、アラートや通知機能の追加可否を確認しやすくなります。

MQL4で作れば利益は保証されますか?

いいえ。MQL4で作るEAやインジケーターはソフトウェアであり、利益、勝率、損失回避を保証するものではありません。

MQL4とMQL5は互換性がありますか?

完全な互換性があるわけではありません。似た記述を使える部分はありますが、EA・インジケーターの機能によってはMQL5向けの再設計・再実装が必要です。

MQL4のEAをMQL5へ自動変換できますか?

自動変換だけで完成するとは限りません。発注・決済、ポジション管理、インジケーター取得、イベント処理、外部連携、ログなどを機能単位で確認する必要があります。

新規MQL4開発を依頼できますか?

EAFCでは、新規のEA・インジケーター・補助ツール等はMT5 / MQL5での開発を基本としているため、新規MQL4製品の開発は原則として受け付けていません。既存MT4 / MQL4製品の修正・不具合対応は個別に確認します。

既存MT4 EAは必ずMQL5へ移行する必要がありますか?

必ずしも移行する必要はありません。小規模な修正や現在のMT4環境を維持するための改修であれば、MQL4のまま対応できる場合があります。大規模な機能追加、長期利用、継続的な拡張を予定している場合はMT5 / MQL5への移行を検討します。

ex4しかない場合でもMT5用にできますか?

ex4から内部ソースを取り出して変換する対応は行いません。現在の動作、Inputs、画面、マニュアル、ログなどから仕様を整理し、必要であればMT5 / MQL5で再構築する方法を検討します。

MQL4インジケーターをMQL5へ移行できますか?

検討できます。mq4ソースの有無、計算条件、バッファ、描画、確定足、リペイント、通知、EA連携などを確認して、MQL5側で必要な再実装範囲を判断します。

MT4からMT5へ移行すると同じバックテスト結果になりますか?

同一結果を保証するものではありません。プラットフォームやテスト条件、データ、スプレッド、銘柄仕様、実装差などによって結果が変わる可能性があります。移行確認では、売買成績ではなく、仕様どおりに条件判定・発注・決済・管理が行われているかを確認します。

MT4インジケーターはMT5でそのまま使えますか?

そのまま使えない場合があります。MQL4とMQL5の違い、ファイル形式、表示方式、通知処理を確認する必要があります。

ex4しかない場合でもMT5化できますか?

仕様を確認して、MT5用として再現作成になる可能性があります。ソースコードであるmq4の有無が重要です。

表示だけなら簡単に移行できますか?

表示内容や計算条件、使っているバッファ、オブジェクト、サブウィンドウ、時間足条件によって判断が変わります。

通知機能も移行できますか?

仕様によります。アラート、メール、プッシュ通知、Discord通知、WebRequestなど、必要な通知方式と条件を整理したうえで確認します。

MT5化で売買結果は改善しますか?

この記事では売買結果ではなく、表示、通知、確認機能の移行可否を扱います。MT5化は利益や勝率を保証するものではありません。

相談前に何を送ればよいですか?

mq4/ex4、setファイル、現在の表示画面、サイン条件、通知条件、Expertsログ、残したい機能、不要な機能を整理してください。

ソースがない場合は依頼できませんか?

依頼相談自体は可能です。ただし、ex4のみの場合は内部ロジックを確認できないため、現在の画面や仕様説明をもとに再現作成を検討する形になります。

MQL4は初心者でも学べますか?

学習は可能です。ただし、EAでは注文、決済、エラー処理、ログ確認まで扱うため、まずは小さな表示系やログ確認から始めると整理しやすくなります。

EAとインジケーターのどちらから学ぶべきですか?

売買実行を伴わないインジケーターやスクリプトから始める方が、確認範囲を分けやすいです。EAは注文処理やポジション管理が加わるため、後から段階的に学ぶと整理しやすくなります。

MQL4で作ったものはMT5でも使えますか?

基本的にはそのまま使えません。MT5ではMQL5向けに作り直しや移行対応が必要です。ファイル形式や注文管理の構造も異なります。

自作と開発依頼はどう分ければよいですか?

学習目的なら自作、実運用補助や複雑な管理機能が必要な場合は仕様を整理して依頼する方が確認しやすい場合があります。

MQL4を学べば良いEAを作れますか?

MQL4は開発言語であり、利益、勝率、損失回避、運用結果を保証するものではありません。この記事では、開発・確認・検証のための技術整理を扱います。

既存EAを少しだけ直す場合もMQL4の知識は必要ですか?

はい。小さな修正でも、Inputs、注文処理、決済処理、MagicNumber、ログ、外部連携に影響する場合があります。変更前のファイルを保存し、影響範囲を確認してください。

コンパイルエラーが出た場合は何を送ればよいですか?

エラーが出たファイル名、行番号、エラー文、変更した箇所、関連ファイル、MetaEditorのスクリーンショットを整理してください。

MQL4のOrderSendとは何ですか?

MT4 EAから注文を送るために使われる代表的な注文処理です。通貨ペア、注文種別、ロット、価格、SL/TP、コメント、MagicNumberなどを指定して注文します。

OrderSendを見ると何が分かりますか?

注文種別、ロット、価格、SL/TP、MagicNumber、コメント、エラー処理などを確認できます。EAがどの条件でどの注文を送ろうとしているかを調べる時に重要です。

OrderSendのエラーはどこで確認しますか?

Expertsログ、Journalログ、エラー番号、注文条件、ロット制限、取引時間、証拠金、価格、SL/TP距離などを確認します。

OrderSendを変更すればEAの動きは変わりますか?

変わる可能性があります。OrderSendは注文処理の重要部分なので、変更前に呼び出し箇所、注文条件、MagicNumber、エラー処理、決済処理への影響を確認してください。

OrderSendの記事は売買方法の推奨ですか?

いいえ。この記事はMQL4の注文処理を理解するための技術解説であり、売買判断、利益、勝率、損失回避を保証するものではありません。

MagicNumberはOrderSendで必ず確認すべきですか?

複数EAを使う場合や、EA注文と手動注文を分けたい場合は重要です。OrderSendで指定したMagicNumberと、決済処理側の絞り込み条件が一致しているか確認してください。

OrderSendが成功したかどうかはどう確認しますか?

戻り値、チケット番号、Expertsログ、Journalログ、ターミナル上の注文状態を確認します。失敗時はエラー番号と注文条件を合わせて確認してください。

MT4のEAをそのままMT5で使えますか?

基本的にはそのままでは使えません。MT4とMT5では、言語仕様、注文管理、ポジション管理、インジケーター取得、テスター環境が異なるため、MT5向けに作り直す必要があります。

自動変換ツールで変換すれば十分ですか?

十分でない場合があります。関数名が置き換わっても、Order / Position / Deal、CopyBuffer、CTrade、ログ設計、risk管理がMT5向けに整理されていないと、不具合調査や運用で問題が出やすくなります。

MT4版と完全に同じ挙動になりますか?

完全一致を前提にしない方が安全です。銘柄仕様、tick、スプレッド、約定、インジケーター計算、バックテスト条件が異なるため、MT5版として再検証が必要です。

MT4版のソースコードがなくてもMT5化できますか?

可能な場合もありますが、完全再現は難しくなります。仕様書、setファイル、画面、ログ、バックテスト結果、動作説明、インジケーター情報から再設計する必要があります。

MT4インジケーターをMT5 EAから使えますか?

MT4用インジケーターをそのままMT5 EAから使うことはできません。MT5用に作り直し、iCustomのhandle、CopyBuffer、buffer番号、shift、リペイントを確認する必要があります。

OrderSendの書き換えだけでMT5化できますか?

避けた方が安全です。発注処理だけでなく、ポジション確認、履歴確認、決済対象、risk、ログ、エラー確認をMT5向けに設計する必要があります。

CTradeを使えばMT5化は簡単になりますか?

CTradeは便利ですが、使えば自動的に安全になるわけではありません。発注前確認、retcode確認、Position Snapshot、Close Scope、ログ設計は別途必要です。

MT4版のバックテスト結果をMT5版の根拠にできますか?

参考にはできますが、そのまま根拠にはしない方が安全です。MT5版は、MT5のストラテジーテスター、銘柄仕様、tick model、スプレッド条件で再検証します。

関連する確認ページ

確認したい内容に応じて、次のページを参照してください。本文中ですでに案内したページは、ここでは重ねて掲載していません。

確認分野関連ページ
インジケーターガイドMT5インジケーター完全ガイド|入れ方・表示されない時・通知・開発相談
開発依頼ガイドMT4 EAをMT5へ移行・作り直す前に確認すること
技術講座MT5の使い方完全ガイド|EA・インジケーターを使う前に覚える基本操作
技術講座MQL5開発入門|MetaEditor・EA・インジケーター・イベント関数・コンパイルエラーの基本
技術講座MQL5注文・ポジション・履歴管理完全ガイド|OrderSend・Position・Deal・Historyの基本
技術講座MQL5 EA設計パターン完全ガイド|signal・execution・risk・exitの責務分離
技術講座MQL5デバッグ・ログファースト開発完全ガイド|Print・Expertsログ・再現条件の整理

あわせて確認したいページ

今回の確認内容に関連する補足ページです。必要な項目だけ確認してください。

確認目的関連ページ
「MT4 MT5 技術移行 再設計」の読後に「MQL4とは」を補足確認MQL4とは
「MT4 MT5 技術移行 再設計」の読後に「MQL4のOrderSendとは」を補足確認MQL4のOrderSendとは

まとめ

MT4からMT5への移行は、単純なファイル変換ではなく、MQL4資産をMT5 / MQL5向けに再設計する作業です。

EX4しかない場合は内部ロジックを直接確認できないため、表示や動作説明をもとにMT5版を新規設計する考え方になります。MQ4ソースがある場合でも、MQL5の注文管理、ポジション管理、インジケーターバッファ、履歴取得、外部連携に合わせて作り直す必要があります。

EA移行では、signal、execution、risk、exit、notification、external controlを分けて確認してください。インジケーター移行では、表示形式、バッファ番号、サインなし値、リペイント、EA連携の有無を整理することが重要です。

バックテスト結果はMT4版とMT5版で同じになるとは限りません。比較する場合は、銘柄名、時間足、期間、spread、setファイル、ログ、サーバー時間を整理してください。

移行や作り直しを相談する場合は、対象ファイル、MQ4ソースの有無、setファイル、チャート画像、ログ、発生条件を整理し、口座番号や認証情報は必ずマスクしてください。

MT4/MT5 技術講座へ戻る

利用条件・相談窓口

確認内容案内ページ
導入ガイド導入ガイド
商品一覧|EA・インジケーター販売|商品一覧

お問い合わせはEAFC公式LINEへ

EAFCサイト内の記事、商品、導入前確認、設定確認、ログ確認、開発依頼前のご相談など、各種お問い合わせはEAFC公式LINEより受け付けています。

※投資助言、売買指示、利益保証、推奨ロット、推奨銘柄の案内は行っておりません。

口座番号、認証情報、Webhook URL、GAS URL、APIキーなどの機密情報は送信しないでください。

ABOUT ME
記事URLをコピーしました