MQL5とは?MT5のEA・インジケーター開発でできることを初心者向けに解説
MQL5は、MT5上でEA、インジケーター、スクリプト、通知ツール、集計ツール、外部連携ツールなどを作成するための開発言語です。
MT5を使っていると、「EAを作りたい」「インジケーターを改修したい」「Discord通知を追加したい」「Google Sheetsへ記録したい」「既存EAの動作確認をしたい」といった場面があります。これらの多くは、MQL5で作成・改修・確認する対象になります。
ただし、MQL5は「利益を保証するためのもの」ではありません。MQL5で作るEAやインジケーターは、取引操作、表示、通知、記録、確認、検証、不具合調査を補助するためのソフトウェアです。
この記事では、MQL5とは何か、MT5で作れるもの、EAとインジケーターの違い、開発依頼前に整理しておきたい内容を初心者向けに整理します。
この記事で分かること
- MQL5とは何か
- MT5とMQL5の関係
- MQL5で作れるEA・インジケーター・補助ツールの違い
- EAとインジケーターの違い
- 開発依頼前に整理しておく情報
- ログ・setファイル・スクリーンショットの重要性
- EAファンクラブで相談できる範囲
MQL5とは何か
MT5上でEA・インジケーターを作るための開発言語
MQL5は、MetaTrader 5、いわゆるMT5上で動作するプログラムを作るための開発言語です。
MT5では、チャートを表示したり、手動で注文したりするだけでなく、プログラムを使って売買処理、チャート表示、通知、記録、集計、外部連携などを行うことができます。
MQL5で作成できる代表的なものは次のとおりです。
| 種類 | 主な役割 | 確認する場所 |
|---|---|---|
| EA | 売買処理、注文管理、決済管理など | Expertsログ、取引履歴、チャート |
| インジケーター | チャート表示、サイン表示、分析補助など | チャート、パラメータ、Expertsログ |
| スクリプト | 一度だけ実行する補助処理 | 実行結果、Expertsログ |
| 通知ツール | Discord通知、アラート、外部通知など | 通知先、WebRequest、Expertsログ |
| 集計ツール | 損益集計、CSV出力、記録補助など | 出力ファイル、シート、ログ |
つまりMQL5は、MT5をより使いやすくするためのプログラムを作るための言語です。
MQL4との違いを簡単に整理
MQL4はMT4向け、MQL5はMT5向けの開発言語です。
どちらもEAやインジケーターを作るために使われますが、MT4とMT5では、注文管理、イベント処理、バックテスト、ポジション管理などの仕組みが異なります。
| 項目 | MQL4 | MQL5 |
|---|---|---|
| 対象 | MT4向け | MT5向け |
| 主な用途 | MT4 EA・インジケーター | MT5 EA・インジケーター |
| 注文管理 | MT4の注文管理方式 | MT5のポジション・注文・約定管理方式 |
| バックテスト | MT4のストラテジーテスター | MT5のストラテジーテスター |
| 互換性 | そのままMT5では使えない | そのままMT4では使えない |
MT4用のEAやインジケーターを、ファイル名だけ変えてMT5で使うことは基本的にできません。MT5で使う場合は、MQL5用に作成または移植する必要があります。
使う側と開発する側で見るポイントは違う
MT5を使う側は、「EAが動くか」「通知が届くか」「チャートに表示されるか」を確認することが多いです。
一方で、開発する側は、仕様、入力項目、ログ、注文管理、外部連携、エラー処理、再初期化、バックテスト、販売前マニュアルなどを確認します。
| 立場 | 主に見るポイント |
|---|---|
| 利用者 | 設置方法、Inputs、通知、表示、動作確認 |
| 開発者 | 仕様、ロジック、ログ、例外処理、保守性 |
| 検証担当 | バックテスト、動作差分、ログ、再現性 |
| 販売・サポート側 | マニュアル、問い合わせ前チェック、免責、導線 |
開発依頼をする場合は、使う側の希望だけでなく、開発・確認に必要な情報も整理しておくと相談が進めやすくなります。
MQL5で作れる主なもの
EA
EAは、MT5上で自動売買や注文管理を行うプログラムです。
EAには、完全自動でエントリーや決済を行うものもあれば、利用者の操作を補助する半裁量型のものもあります。
EAで扱うことが多い機能は次のとおりです。
- 新規注文
- 決済処理
- TP/SL設定
- トレーリング
- ナンピン管理
- マジックナンバー管理
- 時間制御
- スプレッド制限
- 通知
- ログ出力
EAは売買処理に関係するため、開発時には、注文対象、決済対象、マジックナンバー、既存ポジションの扱い、ログ確認が特に重要です。
カスタムインジケーター
カスタムインジケーターは、MT5のチャート上に線、サイン、矢印、文字、パネルなどを表示するためのプログラムです。
EAと違い、通常は注文を直接実行しません。主に表示や確認を補助するために使います。
- サイン表示
- ライン表示
- 損益表示
- トレンド状態表示
- 複数時間足の情報表示
- アラート通知
- Discord通知
- 集計パネル表示
インジケーター開発では、表示したい内容、計算条件、表示場所、更新タイミング、通知の有無を整理することが重要です。
スクリプト
スクリプトは、MT5上で一度だけ実行する補助プログラムです。
EAのように常時動き続けるものではなく、実行したタイミングで処理を行います。
たとえば、次のような用途があります。
- 一括でチャート設定を変更する
- 特定情報をファイルに出力する
- 注文や決済の補助処理を行う
- 検証用データを取得する
スクリプトは便利ですが、実行タイミングや対象範囲を誤ると意図しない処理につながる場合があるため、対象銘柄や口座状態を確認してから使う必要があります。
補助ツール
MQL5では、売買ロジックそのものではなく、MT5上の確認や操作を補助するツールも作れます。
たとえば、次のような補助ツールです。
- 注文補助ツール
- 決済補助ツール
- リスク監視ツール
- ログ確認補助ツール
- WebRequestチェックツール
- 運用記録ツール
補助ツールは、売買判断を代行するものではなく、利用者がMT5上の状態を確認しやすくするためのものです。
通知・集計・外部連携ツール
MQL5では、MT5内の情報を外部サービスへ送るツールも作れます。
代表的なものは、Discord通知、Google Sheets連携、CSV出力、Webhook送信などです。
| 外部連携 | 主な用途 | 確認ポイント |
|---|---|---|
| Discord通知 | 起動、約定、エラー、状態変化の通知 | Webhook、WebRequest、通知ログ |
| Google Sheets連携 | 取引履歴や状態の記録 | GAS URL、シート権限、列構成 |
| CSV出力 | 履歴や検証結果の保存 | 保存先、文字コード、出力項目 |
| Webhook送信 | 外部サービスとの連携 | URL、認証、ログ、失敗時処理 |
外部連携を使う場合は、MT5側のWebRequest設定や、URL・APIキーなどの扱いにも注意が必要です。
コピーEA・同期補助ツール
MQL5では、MT5間で取引情報を連携するコピーEAや、複数環境を同期する補助ツールも作成できます。
コピーEAでは、コピー元、コピー先、ロット、マジックナンバー、銘柄名、決済同期、VPS環境などを確認します。
ただし、コピーEAは取引状態を別環境へ反映する仕組みであり、利益や損失回避を保証するものではありません。
EAとインジケーターの違い
売買を実行するかどうか
EAとインジケーターの大きな違いは、売買を実行するかどうかです。
| 項目 | EA | インジケーター |
|---|---|---|
| 主な役割 | 注文・決済・管理 | 表示・分析・通知 |
| 売買実行 | 行う場合がある | 通常は行わない |
| 主な確認場所 | Expertsログ、取引履歴 | チャート表示、Expertsログ |
| リスク管理 | 注文や決済に直接関係しやすい | 表示や通知の補助が中心 |
注文処理が必要な場合はEA、チャート表示や通知だけでよい場合はインジケーターとして作ることが多くなります。
表示・通知だけを行うか
インジケーターは、チャート上の表示やアラート通知に使われることが多いです。
一方、EAでも通知や表示を行うことはあります。特に補助ツール型EAでは、注文ボタンや決済ボタン、リスク表示、状態表示をチャート上に出すことがあります。
そのため、開発依頼前には「売買実行が必要か」「表示だけでよいか」「通知だけでよいか」を整理しておくことが重要です。
ログ確認や検証で見る場所の違い
EAとインジケーターでは、確認するログや検証項目が少し異なります。
| 確認項目 | EA | インジケーター |
|---|---|---|
| 初期化 | Expertsログで確認 | Expertsログで確認 |
| 注文 | 取引履歴・Journalログも確認 | 通常は対象外 |
| 表示 | パネル・ボタン・ライン | ライン・矢印・サイン・パネル |
| 通知 | 約定・状態・エラー通知 | サイン・条件成立通知 |
| バックテスト | 注文や決済の検証 | 表示やサインの確認 |
導入時に確認するフォルダの違い
EAとインジケーターは、MT5上で配置するフォルダが異なります。
| 種類 | 主な配置先 | 確認内容 |
|---|---|---|
| EA | MQL5 / Experts | ナビゲータのエキスパートに表示されるか |
| インジケーター | MQL5 / Indicators | ナビゲータのインディケータに表示されるか |
| スクリプト | MQL5 / Scripts | ナビゲータのスクリプトに表示されるか |
ファイルを入れる場所が違うと、MT5上に表示されなかったり、チャートへ設置できなかったりします。
MQL5開発でよくある依頼内容
既存EAの改修
既存EAの改修では、現在のソースファイル、setファイル、ログ、変更したい内容を確認します。
よくある改修内容は次のとおりです。
- パラメータ追加
- 通知追加
- ログ出力追加
- 決済条件の調整
- 表示パネルの整理
- バックテスト用ログの追加
- WebRequestや外部連携の追加
既存EAの改修には、通常、mq5などのソースファイルが必要です。ex5だけでは内部ロジックを確認して改修することは基本的にできません。
サインインジケーター作成
サインインジケーターは、条件が成立した時に矢印、ラベル、ライン、アラートなどを表示するものです。
依頼前には、次の内容を整理しておくと確認しやすくなります。
- 表示したいサインの条件
- BUY / SELL の判定方法
- 矢印やラベルの表示位置
- アラートや通知の有無
- リペイントの扱い
- 対象銘柄と時間足
サイン表示は売買判断そのものではなく、チャート上の確認を補助するための表示として整理します。
Discord通知の追加
EAやインジケーターにDiscord通知を追加することもできます。
通知する内容には、起動通知、エラー通知、約定通知、サイン通知、状態通知などがあります。
Discord通知を使う場合は、Webhook URL、WebRequest設定、通知対象イベント、通知失敗時のログを確認します。
Google Sheets連携
Google Sheets連携では、MT5から外部シートへ取引情報や状態を記録することがあります。
この場合は、GAS URL、シート権限、列構成、反映タイミング、WebRequest設定が関係します。
外部URLやAPIキーなどの実値は、公開ページや通常の問い合わせ文面には記載しないよう注意してください。
バックテスト用ログ出力
EAの動作を確認するために、バックテスト用のログ出力を追加することがあります。
たとえば、エントリー条件、決済条件、フィルター判定、スプレッド判定、注文エラー、ブロック理由などをログに出すことで、動かない原因を確認しやすくなります。
ただし、ログを出しすぎると確認しづらくなるため、通常ログ、詳細ログ、検証用ログを分けることが重要です。
操作パネルや補助ツールの作成
MQL5では、チャート上にボタンやパネルを表示する補助ツールも作れます。
たとえば、注文補助、決済補助、リスク監視、損益表示、設定確認、通知テストなどです。
パネル型ツールでは、表示位置、ボタンサイズ、チャートサイズ変更、時間足変更後の再描画、古いオブジェクトの残存なども確認対象になります。
開発依頼前に整理しておくこと
何を自動化したいのか
開発依頼前には、まず何を自動化したいのかを整理します。
たとえば、次のように分類できます。
- 売買を自動化したい
- チャート表示を分かりやすくしたい
- 通知を出したい
- 取引履歴を記録したい
- ログ確認をしやすくしたい
- 既存EAを改修したい
- バックテスト時に原因を確認したい
この分類が曖昧なままだと、EAとして作るべきか、インジケーターとして作るべきか、補助ツールとして作るべきかを判断しにくくなります。
売買実行が必要か、表示だけでよいか
開発対象を決める時は、売買実行が必要かどうかを確認します。
| 希望内容 | 向いている形式 |
|---|---|
| 自動で注文・決済したい | EA |
| チャートにサインを表示したい | インジケーター |
| 通知だけ出したい | インジケーターまたはEA |
| 取引履歴を記録したい | EAまたは補助ツール |
| 一度だけ処理したい | スクリプト |
売買実行が必要な場合は、注文対象、決済対象、ロット、マジックナンバー、既存ポジションの扱いを整理する必要があります。
対象銘柄・時間足・口座環境
MT5のEAやインジケーターは、銘柄、時間足、口座環境によって確認内容が変わります。
相談前には次の情報を整理してください。
- 対象銘柄
- 時間足
- ブローカー名
- デモ口座 / リアル口座
- 口座種別
- VPS利用の有無
- 複数EA利用の有無
銘柄名にサフィックスが付く場合や、口座種別によって最小ロットが違う場合は、動作確認に影響することがあります。
setファイル・ログ・スクリーンショット
既存EAや既存インジケーターの確認では、setファイル、Expertsログ、Journalログ、スクリーンショットが重要です。
| 資料 | 確認できる内容 |
|---|---|
| setファイル | Inputsの設定値 |
| Expertsログ | EAやインジケーター側の状態・エラー |
| Journalログ | MT5端末側の接続・注文・ファイル状態 |
| スクリーンショット | 表示崩れ、設定画面、エラー画面 |
ログがない場合、原因調査が難しくなることがあります。問題が発生した前後のログを整理しておくと確認しやすくなります。
既存ソースの有無
既存EAやインジケーターを改修する場合は、ソースファイルの有無が重要です。
通常、MQL5のソースファイルはmq5形式です。コンパイル済みのex5ファイルだけでは、内部ロジックを確認して改修することは基本的にできません。
| ファイル | 主な用途 | 改修可否の目安 |
|---|---|---|
| mq5 | MT5用ソースファイル | 改修検討可能 |
| mqh | 共通部品・ヘッダーファイル | 必要になる場合がある |
| ex5 | コンパイル済みファイル | 内部改修は基本的に不可 |
| set | 設定保存ファイル | 設定確認用 |
MQL5開発で注意したいこと
利益や勝率を保証するものではない
MQL5でEAやインジケーターを作成しても、利益や勝率が保証されるわけではありません。
EAやインジケーターは、条件に応じた処理、表示、通知、記録、確認を行うためのソフトウェアです。
開発相談では、利益や勝率ではなく、機能仕様、確認条件、ログ、操作内容として整理する必要があります。
バックテストとリアル運用は一致しない場合がある
バックテストは、過去データに対する検証です。
リアル運用では、スプレッド、約定、スリッページ、サーバー時刻、通信、VPS、外部連携などが関係します。
そのため、バックテスト結果とリアル運用の動きが完全に一致するとは限りません。
外部連携はWebRequest設定が必要になる場合がある
Discord通知、Google Sheets連携、外部認証、外部設定取得などでは、MT5側のWebRequest設定が必要になる場合があります。
WebRequest設定が不足していると、EAやインジケーター本体には問題がなくても、通知や外部連携が動かないことがあります。
ログがないと原因調査が難しい
EAが動かない、通知が届かない、表示が崩れる、注文エラーが出るといった場合、ログが重要です。
ログには、設定不備、初期化エラー、通信エラー、注文エラー、ブロック理由が出ている場合があります。
問い合わせ前には、問題が発生した時刻、EA名、銘柄、時間足、Expertsログ、Journalログを整理してください。
販売前には入力項目とマニュアル整理が必要
EAやインジケーターを販売・配布する場合は、動作だけでなく、Inputsの分かりやすさ、ログ、マニュアル、FAQ、免責表現も重要です。
利用者が設定を誤解しないように、入力項目の名称、初期値、説明、エラー時の確認方法を整理しておく必要があります。
EAファンクラブで相談できる範囲
EA作成・改修
EAファンクラブでは、MT4/MT5向けEAの作成・改修相談に対応します。
相談時には、作りたい処理、対象銘柄、時間足、注文条件、決済条件、ログ、setファイル、既存ソースの有無を整理してください。
インジケーター作成・改修
カスタムインジケーターの作成・改修では、表示条件、サイン条件、通知条件、表示位置、リペイントの扱い、対象時間足などを確認します。
表示だけなのか、通知も必要なのか、EAとの連携が必要なのかも整理しておくと相談しやすくなります。
通知・集計・診断補助ツール
Discord通知、Google Sheets連携、CSV出力、ログ確認補助、WebRequestチェック、リスク監視などの補助ツールについても相談できます。
これらは売買判断を行うものではなく、MT5上の状態確認や記録を補助するものです。
動作確認・不具合調査
EAやインジケーターが動かない場合、ログや設定を確認しながら原因を切り分けます。
不具合調査では、次の情報があると確認が進めやすくなります。
- EAまたはインジケーター名
- 使用環境
- setファイル
- 発生している症状
- Expertsログ
- Journalログ
- スクリーンショット
既存ソースの整理
既存EAやインジケーターのソースがある場合、機能整理、Inputs整理、ログ整理、販売前マニュアル整理なども相談対象になります。
ただし、第三者が作成したソースを改修する場合は、利用規約や権利関係の確認が必要になる場合があります。
相談前チェックリスト
作りたいものの分類
- EAを作りたい
- インジケーターを作りたい
- 既存EAを改修したい
- 通知ツールを追加したい
- 集計ツールを作りたい
- ログ確認をしやすくしたい
- バックテスト用の確認機能を追加したい
必要なファイル
- mq5ファイル
- mqhファイル
- setファイル
- 参考画像
- 仕様メモ
- バックテストレポート
ログ
- Expertsログ
- Journalログ
- Strategy Testerログ
- エラー発生前後のログ
- 通知送信時のログ
環境情報
- MT4向けかMT5向けか
- MQL4かMQL5か
- 対象銘柄
- 時間足
- デモ口座 / リアル口座
- VPS利用の有無
- 外部連携の有無
送らない方がよい情報
問い合わせ時には、次のような実値をそのまま公開場所や通常の問い合わせ文面に記載しないよう注意してください。
| 情報 | 注意点 |
|---|---|
| Webhook URL | 通知先へ直接接続できる情報のため注意 |
| GAS URL | 外部シート連携に関係するため注意 |
| APIキー | 外部サービス認証に関係するため注意 |
| 認証トークン | 利用権限に関係するため注意 |
| 口座番号 | スクリーンショットへの映り込みに注意 |
記事固有の実務チェック表
- 作りたいものはEAかインジケーターか整理した
- 売買実行が必要か、表示・通知だけでよいか整理した
- MT4向けかMT5向けか確認した
- MQL4かMQL5か確認した
- 対象銘柄と時間足を整理した
- 既存ソースがあるか、新規作成かを整理した
- setファイルがある場合は保存した
- ExpertsログとJournalログを確認した
- 外部連携が必要な場合、WebRequestやWebhookの有無を整理した
- 利益・勝率・売買判断ではなく、機能仕様として説明できる
よくある質問
MQL5とは何ですか?
MQL5は、MT5上でEA、インジケーター、スクリプト、補助ツールなどを作るための開発言語です。
MQL5でEAとインジケーターの両方を作れますか?
はい。EAは売買実行を含むプログラム、インジケーターは主にチャート表示や分析補助を行うプログラムとして作成できます。
MQL5の知識がなくても開発依頼できますか?
可能です。ただし、作りたい機能、対象銘柄、時間足、動作条件、ログなどを整理しておくと相談が進めやすくなります。
MQL5で作ったEAは利益を保証しますか?
いいえ。EAやインジケーターは取引や確認作業を補助するソフトウェアであり、利益や勝率を保証するものではありません。
既存EAの一部だけ改修できますか?
ソースコードや仕様、動作ログを確認したうえで、改修可能な範囲を判断します。ex5だけでは内部ロジックを確認して改修することは基本的にできません。
関連ページ
- 開発・改修の相談ページ
- EA作成代行
- インジケーター作成代行
- 既存EA・インジケーター改修
- MQL5で作れるもの|EA・インジケータ・裁量補助ツールの違い
- MT5 EA作成代行を依頼する前に決めておくべき仕様項目
- サインインジケータ作成を依頼する前に整理すること
- 既存EA・インジケータ改修を依頼する前に整理すること
- 不具合報告・調査依頼について
- EAのログを問い合わせ前に確認する方法
- 免責事項
EAやインジケーターの導入確認、既存ツールの改修、ログ確認でお困りの場合は、EAファンクラブの開発・確認サポートをご確認ください。

