MQL4とは?MT4のEA・インジケーター開発でできること
MQL4とは、MT4向けのEA、インジケーター、スクリプトなどを作成するための開発言語です。
MT4で使う自動売買EA、カスタムインジケーター、アラート通知、集計補助、操作補助ツールなどは、MQL4で作られていることがあります。
一方で、MQL4で作られたものは基本的にMT4向けです。MT5で使う場合は、MQL5での作り直しや再設計が必要になることがあります。また、既存ファイルが mq4 なのか ex4 なのかによって、改修できる範囲も変わります。
この記事では、MQL4とは何か、MT4で作れるEA・インジケーター・スクリプト・通知/補助ツール、開発依頼前に整理するファイルや仕様をまとめます。
なお、この記事はMT4/MQL4の開発・改修・動作確認・不具合調査を目的とした技術記事です。投資助言、売買指示、利益保証、勝率保証、損失回避保証を目的としたものではありません。
この記事で確認すること
- MQL4とは何か
- MQL4で作れる主なもの
- MQL4 EAでできること
- MQL4インジケーターでできること
- MQL4開発依頼でよくある相談
- 依頼前に整理するファイル
- MQL4開発で注意したいこと
- 相談前に送る情報・送らない方がよい情報
MQL4とは何か
MT4向けの開発言語
MQL4は、MetaTrader 4、つまりMT4向けの開発言語です。
MT4上で動くEA、インジケーター、スクリプト、補助ツールなどを作るために使われます。MT4のチャート、価格データ、注文情報、口座情報、インジケーター値などを参照し、条件に応じて表示、通知、注文、決済、集計などを行うプログラムを作成できます。
| 用語 | 意味 | 確認すること |
|---|---|---|
| MT4 | 取引プラットフォーム | EAやインジを動かす環境 |
| MQL4 | MT4向けの開発言語 | EA・インジ・スクリプトを作る言語 |
| mq4 | MQL4のソースファイル | 改修や内容確認に重要 |
| ex4 | コンパイル済みファイル | MT4で実行するファイル |
| set | Inputs設定ファイル | 現在設定の確認に使用 |
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開発依頼でよくある相談
既存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化 | 既存ファイル、表示画面、仕様 | 作り直し範囲と不要機能 |
| ログ追加 | 見たい判定、エラー、状態 | ログ量と確認しやすさ |
依頼前に整理するファイル
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、認証トークンなどが映り込まないよう注意してください。
仕様メモ
仕様メモでは、作りたい機能、変更したい機能、不要な機能、現在困っている症状を整理します。
「利益が出るように」ではなく、「この条件でアラートを出したい」「この表示を追加したい」「このログを出したい」のように、機能仕様として記載してください。
| ファイル・資料 | 意味 | 相談時の使い方 |
|---|---|---|
| mq4 | MQL4ソースファイル | 改修・内容確認・移行検討に使う |
| ex4 | コンパイル済みファイル | 実行確認に使うが内部改修は難しい |
| set | Inputs設定ファイル | 現在設定や変更前後を確認する |
| ログ | Experts / Journalの記録 | 不具合や動作確認に使う |
| スクリーンショット | 表示状態や設定画面 | 見た目や症状の確認に使う |
| 仕様メモ | 作りたい内容の整理 | 開発範囲や確認事項を決める |
MQL4開発で注意したいこと
ex4のみの限界
ex4のみの場合、内部処理を直接確認して改修することは基本的に難しくなります。
そのため、ex4しかない場合は、現在の動作や表示をもとに、同等機能の再作成や仕様整理を検討する形になります。
利益保証ではない
MQL4でEAやインジケーターを作ることは、利益や勝率を保証することではありません。
開発で扱うのは、条件判定、表示、通知、注文処理、決済処理、ログ、集計、操作補助などのソフトウェア機能です。売買結果や将来の成績を保証するものではありません。
環境差
同じMQL4ツールでも、MT4環境、口座種別、銘柄名、時間足、スプレッド、VPS、自宅PC、通知設定によって動作確認の見え方が変わる場合があります。
不具合調査では、EAやインジケーターだけでなく、設置環境も整理してください。
バックテストとリアル差分
バックテストで確認できることと、リアル環境で確認することは異なります。
バックテストでは、過去データ上の条件判定や注文処理を確認できます。一方、リアル環境では、スプレッド、約定、通信、VPS、通知、取引時間などが関係します。
| 注意点 | 確認すること | 相談時の整理 |
|---|---|---|
| ex4のみ | ソースがないため内部確認が難しい | 再作成前提で仕様を整理する |
| 環境差 | 口座、銘柄、時間足、VPS | 動作環境を明記する |
| 外部通知 | Webhook、メール、通知設定 | URLや認証情報はマスクする |
| バックテスト差分 | テスト条件とリアル条件の違い | 検証条件を記録する |
相談時に送る情報・送らない方がよい情報
送ると確認しやすい情報
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とは何ですか?
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やインジケーターはソフトウェアであり、利益、勝率、損失回避を保証するものではありません。
関連ページ
- MT4 EAとは?入れ方・設定・動かない時の確認ポイント
- MT4インジケーターとは?入れ方・表示されない時の確認ポイント
- MT4とMT5の違いとは?EA・インジケーター開発前に確認すること
- MQL5とは?MT5のEA・インジケーター開発でできることを初心者向けに解説
- EA作成・改修相談
- インジケーター作成・改修相談
- 既存EA・インジケーター改修相談
- 開発・改修の相談ページ
- 不具合報告・調査依頼について
- 免責事項
MQL4を使ったMT4 EA、カスタムインジケーター、通知ツール、既存改修、MT5用への作り直しでお困りの場合は、mq4/ex4の有無、setファイル、スクリーンショット、Expertsログ、希望仕様を整理したうえでご相談ください。

