AIを使ったMQLAuth認証実装|EA・インジケーターへ導入する手順
MQLAuth認証は、実装用プロンプトと既存のmq5ソースコードをChatGPTやClaudeなどのAIへ渡すことで、EA・インジケーターへ追加できます。
このページでは、AIを使ってMQLAuth認証を実装する手順と、AIへ渡す実装用プロンプトを紹介します。

mq5ソースコードと実装用プロンプトをAIへ渡せば、認証処理を追加できるのですね。

はい。AIが出力したコードはMetaEditorでコンパイルし、認証と既存機能の両方を確認してくださいね。
- MQLAuth認証の実装前に用意するもの
- AIへ実装用プロンプトとmq5を渡す順番
- 既存ロジックを変えずに認証を追加させる方法
- コンパイルエラーをAIへ修正させる方法
- 実装後にMT5で確認する項目
MQLAuth認証の実装前に用意するもの
AIへ認証実装を依頼する前に、次のものを準備してください。
- 認証を追加するEAまたはインジケーターのmq5ソースコード
- 関連するmqhファイル、独自クラス、補助コード
- MQLAuthから案内される認証仕様と接続情報
- このページに掲載しているAI実装用プロンプト
- 修正前のmq5ソースコードのバックアップ
- MetaEditorとMT5のテスト環境
EAやインジケーターが複数のmqhファイルを読み込んでいる場合は、メインのmq5だけでなく、コンパイルに必要な関連ファイルもAIへ渡します。
ソースコードの一部だけを渡すと、AIが存在しない関数や変数を推測してコードを作ることがあります。可能な範囲で、対象プログラムの全体を確認できる状態にしてください。
修正前のソースコードを必ず保存してください
AIが出力したコードを、元のmq5ファイルへ直接上書きしないでください。修正前のファイルをバックアップし、別名のテスト用ファイルでコンパイルと動作確認を行います。
AIを使ったMQLAuth認証実装の手順
MQLAuth認証の実装は、次の5ステップで進めます。

STEP1:MQLAuthの認証仕様を確認する
最初に、MQLAuthから案内される認証仕様と接続情報を確認します。
認証処理では、接続先URL、送信する情報、認証結果の受け取り方、利用期限や停止状態の判定方法などが必要です。
これらの内容をAIに推測させると、コンパイルが通っても正常に認証できない可能性があります。MQLAuthから案内された内容を省略せずに渡してください。
STEP2:AIへ実装用プロンプトとmq5を渡す
ChatGPTやClaudeなどで新しいチャットを開き、次の順番で情報を送ります。
- このページに掲載しているAI実装用プロンプト
- MQLAuthの認証仕様と接続情報
- 認証を追加するmq5ソースコード
- 必要なmqhファイルや補助コード
- 「すべて送信しました。実装を開始してください」という指示
コードが長く、一度に送信できない場合は、ファイルごとに分けて送ります。すべてのファイルを送信し終えるまで、コードの修正を開始しないようAIへ指示してください。
STEP3:AIが出力したコードを確認する
AIが修正後のコードを出力したら、認証と関係のない部分が変更されていないか確認します。
特に、売買ロジック、インジケーターの計算処理、input項目、ロット計算、注文処理、表示処理が変わっていないかを確認してください。
AIが変更箇所だけを出力した場合は、元のコードへ自分で継ぎ足さず、省略のない完全なmq5ソースコードを出力するように再度依頼します。
STEP4:MetaEditorでコンパイルする
修正後のmq5をテスト用の別ファイルとして保存し、MetaEditorでコンパイルします。
エラー0件だけでなく、警告の内容も確認してください。型変換、未使用変数、戻り値、WebRequestの引数などに関する警告が出た場合は、内容を確認してからテストへ進みます。
コンパイルエラーが出た場合は、次の情報を同じAIチャットへ渡してください。
- MetaEditorに表示されたエラー文
- エラーが発生しているファイル名と行番号
- AIが修正した後の完全なmq5ソースコード
- 認証以外の処理を変更しないという指示
STEP5:MT5で認証と既存機能を確認する
コンパイルが通ったら、MT5上で認証が想定どおりに動くかを確認します。
登録済み口座だけでなく、未登録口座、利用期限切れ、遠隔停止、通信失敗など、利用できない状態も確認してください。

- 登録済み口座でEA・インジケーターを利用できる
- 未登録口座ではMQLAuthの仕様どおりに利用が制限される
- 利用期限切れの利用者に対して指定した制限が行われる
- 遠隔停止した利用者に対して指定した制限が行われる
- 認証サーバーへ接続できない場合の処理が想定どおりに動く
- 既存の売買ロジックまたは表示ロジックが正常に動く
- input項目、ロット計算、注文条件などが変わっていない
- Experts・Journalに想定外のエラーが出ていない
- MT5再起動後も認証と初期化が正常に進む
MQLAuth認証を追加するAI実装用プロンプト
次のプロンプトをコピーし、MQLAuthから案内される認証仕様と、認証を追加するmq5ソースコードを続けてAIへ渡してください。
接続先URL、送信項目、レスポンス形式などは、必ずMQLAuthから案内された内容を使用します。AIに不足情報を推測させないことが重要です。
あなたは、MQL5で開発されたEA・カスタムインジケーターの修正を行うエンジニアです。
これから渡す既存のmq5ソースコードへ、MQLAuthのサーバー認証処理を追加してください。
この作業では、私が別途渡す「MQLAuthの認証仕様と接続情報」を最優先の仕様として使用してください。
接続先URL、HTTPメソッド、送信パラメータ、HTTPヘッダー、レスポンス形式、認証結果、利用期限、停止状態、メッセージ、アップデート通知などを推測してはいけません。
仕様に書かれていない情報が必要な場合は、コードを作成する前に質問してください。
【最重要条件】
・既存の売買ロジックを変更しない
・既存のインジケーター計算ロジックを変更しない
・既存のエントリー条件と決済条件を変更しない
・既存の注文処理を変更しない
・既存のロット計算を変更しない
・既存のinput項目を削除、改名、並べ替えしない
・既存の表示、描画、アラート、通知処理を変更しない
・認証と関係のないリファクタリングを行わない
・関数名、変数名、クラス構造を理由なく変更しない
・コード全体を別の設計へ書き換えない
・元の機能を省略しない
・既存コード内のコメントを理由なく削除しない
認証に必要な最小限のコードだけを追加してください。
【実装する処理】
次の処理を、MQLAuthの仕様に従って実装してください。
・MT5の口座番号を取得する
・MQLAuth認証サーバーへ必要な認証情報を送信する
・サーバーから返された認証結果を判定する
・利用可能な場合だけ、既存EAまたはインジケーターを通常動作させる
・未登録、利用期限切れ、遠隔停止などの場合は利用を制限する
・認証結果にメッセージが含まれる場合は、仕様に従ってMT5上へ表示する
・アップデート通知が含まれる場合は、仕様に従って利用者へ表示する
・通信失敗、タイムアウト、不正なレスポンスを区別して処理する
・ExpertsまたはJournalで原因を確認できるよう、必要なログを出力する
・認証に失敗した状態では、EAの注文処理やインジケーターの主要処理を実行しない
【初期化と実行タイミング】
EAの場合は、既存のOnInit、OnTick、OnTimer、OnDeinitなどの構成を確認し、既存処理を壊さない位置へ認証処理を追加してください。
インジケーターの場合は、既存のOnInit、OnCalculate、OnTimer、OnDeinitなどの構成を確認し、既存のバッファ計算や描画処理を壊さない位置へ認証処理を追加してください。
毎ティックWebRequestを送信するような実装は避けてください。
ただし、認証間隔や再認証条件は、私が渡すMQLAuthの仕様に従ってください。
仕様に認証間隔が書かれていない場合は、勝手に決めず質問してください。
【WebRequestを使う場合】
WebRequestを使用する場合は、MQL5の正式な関数仕様に合う引数、文字コード、送信データ、HTTPヘッダー、タイムアウト、戻り値の確認を行ってください。
MT5の
「ツール」
「オプション」
「エキスパートアドバイザ」
「WebRequestを許可するURLリスト」
へ追加する必要があるURLを、コード出力後の説明に記載してください。
WebRequestが失敗した場合は、戻り値、HTTPステータス、GetLastErrorで取得できる情報をログで確認できるようにしてください。
【認証状態の管理】
認証済みかどうかを管理する変数を追加し、認証が完了していない状態では主要処理を開始しないようにしてください。
既存コードに同じ目的の変数や初期化制御がある場合は、重複する仕組みを追加せず、既存構造へ統合してください。
認証状態、利用期限、停止状態、サーバーメッセージなどを保持する必要がある場合は、用途が分かる変数名を使用してください。
【禁止事項】
・MQLAuthのAPI仕様を推測すること
・存在しない関数、クラス、ライブラリを作ること
・外部ライブラリの追加を前提にすること
・コンパイルできない擬似コードを出力すること
・一部の関数だけを省略して出力すること
・「以下は既存コードと同じ」などとしてコードを省略すること
・認証と無関係な修正を行うこと
・元のEAまたはインジケーターの機能を削ること
・エラーを隠すために処理をコメントアウトすること
・認証失敗時に既存処理が動き続ける状態にすること
・コンパイルエラーを回避するためだけの強引な型変換を行うこと
【不足情報がある場合】
次のいずれかに該当する場合は、コードを作成せず、必要な情報を質問してください。
・MQLAuthの認証仕様が不足している
・関連するmqhファイルが不足している
・独自インジケーターや独自クラスの定義が不足している
・既存コードの一部が省略されている
・EA用かインジケーター用か判断できない
・認証失敗時に停止させる範囲が判断できない
・WebRequestの送信形式やレスポンス形式が不明
・利用期限、遠隔停止、メッセージ、更新通知の判定方法が不明
不足情報を推測で補ってはいけません。
【出力方法】
最初に、対象コードがEAかインジケーターかを判定してください。
次に、認証処理を追加する位置と実装方針を簡潔に説明してください。
その後、省略のない完全なmq5ソースコードを1つのコードブロックで出力してください。
関連するmqhファイルの修正が必要な場合は、ファイルごとに分けて、省略のない完全なコードを出力してください。
コードの後に、次の項目を出力してください。
1. 追加した関数
2. 追加した変数
3. 変更した既存箇所
4. 認証失敗時に停止する処理
5. MT5のWebRequest許可リストへ追加するURL
6. MetaEditorでコンパイル後に確認する項目
7. 登録済み口座、未登録口座、期限切れ、遠隔停止でのテスト方法
8. 既存ロジックを変更していないことの確認結果
コンパイル可能なMQL5コードとして出力してください。
これから次の順番で情報を送ります。
1. MQLAuthの認証仕様と接続情報
2. 対象のmq5ソースコード
3. 関連するmqhファイルや補助コード
私が「すべて送信しました。実装を開始してください」と伝えるまで、コードの修正を開始せず、受け取った内容だけを確認してください。
プロンプト、認証仕様、ソースコード、関連ファイルをすべて送信したら、最後に「すべて送信しました。実装を開始してください」とAIへ伝えます。
コードが長い場合のAIへの渡し方
EAやインジケーターのコードが長い場合は、1回のメッセージへ収まらないことがあります。その場合は、ファイル単位で分けて送信してください。
- 最初にAI実装用プロンプトを送る
- MQLAuthの認証仕様と接続情報を送る
- メインのmq5ソースコードを送る
- 関連するmqhファイルを1つずつ送る
- 最後に「すべて送信しました。実装を開始してください」と伝える
途中でAIがコードの出力を始めた場合は、いったん停止させ、すべてのファイルを受け取ってから実装するように指示してください。
実装時にAIへ変更させない箇所
認証実装では、AIにコード全体を整理させる必要はありません。既存EA・インジケーターへ、認証に必要な処理だけを追加させます。
AIによる不要な書き換えに注意してください
AIが「コードを分かりやすく整理した」として、注文処理や既存関数まで書き換える場合があります。
認証と関係のない整理や書き換えを許可すると、コンパイルは通っても、エントリー条件や表示結果が変わる可能性があります。
少なくとも、次の箇所は変更しないようにAIへ指示してください。
- エントリー条件と決済条件
- ロット計算と資金管理
- 注文、変更、決済処理
- インジケーターバッファの計算
- 矢印、ライン、オブジェクトの表示条件
- 既存のinput項目と初期値
- アラート、メール、プッシュ通知の条件
コンパイルエラーをAIへ修正させるプロンプト
MetaEditorでコンパイルエラーが出た場合は、エラー文と修正後の完全なソースコードをAIへ渡し、次のように依頼します。
先ほど出力されたmq5ソースコードをMetaEditorでコンパイルしたところ、次のエラーが出ました。
【コンパイルエラー】
ここにMetaEditorのエラー文、ファイル名、行番号を貼り付けます。(※エラーが複数ある場合は、一部だけを抜き出さず、MetaEditorのエラー一覧をまとめて渡してください。)
これから、現在の完全なmq5ソースコードを送ります。
MQLAuth認証と関係のない既存ロジックは変更しないでください。
売買条件、決済条件、ロット計算、注文処理、input項目、表示処理を変更しないでください。
エラーの原因を特定し、必要な箇所だけを修正してください。
エラーを隠すために処理を削除したり、コメントアウトしたりしないでください。
修正後は、省略のない完全なmq5ソースコードを出力してください。
最後に、修正した箇所と修正理由を一覧で説明してください。
AIが出力したコードは必ずMT5でテストする
コンパイルが通っただけでは、認証実装が完了したとは判断できません。
認証サーバーへ送信する値、認証結果の判定、利用期限、遠隔停止、サーバーメッセージなどは、実際にMQLAuth側の登録状態を切り替えて確認する必要があります。
MQLAuthの登録状態を変えてテストする
MQLAuthの登録状態を変えながらテストすることで、販売前に未登録口座、期限切れ、遠隔停止などの動作を確認できます。
認証処理を追加した後は、少なくとも次の状態をテストしてください。
- MQLAuthへ登録済みの口座番号
- MQLAuthへ登録していない口座番号
- 利用期限内の利用者
- 利用期限が終了した利用者
- 販売者側で遠隔停止した利用者
- インターネット接続または認証通信に失敗した状態
- MQLAuthからメッセージを配信した状態
- アップデート通知を配信した状態
既存EAへ口座認証を追加するときの考え方や、AIへの指示方法は、次の記事でも解説しています。

MQLAuth認証を試す
MQLAuthは、EA・インジケーター販売者向けのサーバー認証システムです。
EA内部へ利用可能な口座番号を直接書き込む方式ではなく、MQLAuthの管理画面から利用者の口座番号、利用期限、停止状態などを管理します。
- MT5口座番号による利用認証
- 利用者自身による登録口座の変更
- 利用期限の設定と期限終了後の自動停止
- 配布済みEA・インジケーターの遠隔停止
- MT5チャートへのメッセージ配信
- アップデート情報と新バージョンの通知
- 無断利用、横流し、再配布への対策
Freeプランでは、登録ユーザー5名まで無料で利用できます。最初にテスト用のEAまたはインジケーターへ認証を追加し、実際の動作を確認できます。
よくある質問
- MQL5に詳しくなくても認証を実装できますか?
-
mq5ソースコードがあり、MetaEditorでコンパイルとMT5上の動作確認ができれば、AIを使って実装を進められます。ただし、AIが出力したコードのコンパイルと認証テストは必要です。
- ex5しかないEA・インジケーターにも認証を追加できますか?
-
通常は追加できません。認証処理を追加して再コンパイルするには、編集可能なmq5ソースコードが必要です。
- AI実装用プロンプトだけで認証を追加できますか?
-
プロンプトだけでは実装できません。MQLAuthの認証仕様と接続情報、対象のmq5ソースコード、必要なmqhファイルをあわせてAIへ渡す必要があります。
- コンパイルエラーが出た場合はどうすればよいですか?
-
MetaEditorのエラー文、ファイル名、行番号、現在の完全なmq5ソースコードを同じAIチャットへ渡してください。認証以外の既存ロジックを変更しないよう、修正範囲もあわせて指示します。
- MT5インジケーターにも同じプロンプトを使えますか?
-
使用できます。AIに対象コードがEAかインジケーターかを判定させ、インジケーターの場合はOnCalculateやインジケーターバッファの計算を変更しないように指示してください。
- AIが作ったコードをそのまま販売してもよいですか?
-
そのまま販売するのではなく、登録済み口座、未登録口座、期限切れ、遠隔停止、通信失敗などの状態を確認してください。既存EA・インジケーターの機能に影響がないことも確認が必要です。
まとめ
AIを使ったMQLAuth認証実装では、MQLAuthの認証仕様、AI実装用プロンプト、mq5ソースコードをAIへ渡し、既存EA・インジケーターへ必要な認証処理だけを追加します。
- MQLAuthの認証仕様と接続情報を準備する
- AI実装用プロンプトとmq5ソースコードを渡す
- 既存ロジックを変更しないよう明確に指示する
- 修正後のコードは別ファイルでコンパイルする
- 未登録、期限切れ、遠隔停止、通信失敗も確認する
- 既存の売買ロジックや表示ロジックに影響がないか確認する
まずはMQLAuthへ登録し、テスト用のEAまたはインジケーターで認証実装を進めてください。