MT5 EA作成ツールを使う前に確認すること|自作・生成ツール・開発依頼の違い
MT5 EAを作りたい場合、自分でMQL5を書く方法、EA作成ツールを使う方法、生成系ツールでたたき台を作る方法、開発者へ依頼する方法があります。どの方法が正しいというより、作りたいEAの内容、必要な安全確認、ログ、バックテスト、保守、改修のしやすさによって向き不向きがあります。
EA作成ツールは、定型的な条件を素早く形にしたい場合には便利です。一方で、複雑な発注前チェック、Magic Number管理、複数ポジション管理、CopyBuffer、外部通知、WebRequest、CSVログ、バックテスト条件管理、配布前チェックまで含める場合は、ツールだけでは確認が不足することがあります。
この記事では、MT5 EA作成ツールを使う前に確認したいことを整理します。自作、EA作成ツール、生成ツール、開発依頼の違い、MQL5でEAを作る時の基本構造、作成前に整理する仕様、バックテスト、ログ設計、setファイル、問い合わせ前に準備する情報まで、実務目線で確認します。
なお、この記事はMT5 / MQL5 / EA開発に関する技術的な確認事項を整理するものです。特定の売買判断、利益、勝率、損失回避、推奨ロット、推奨銘柄を案内するものではありません。EA作成ツールやサンプルコードを使う場合も、必ずデモ環境やバックテストで動作確認を行ってください。
この記事で確認すること
- MT5 EA作成ツールを使う前に確認すること
- 自作・EA作成ツール・生成ツール・開発依頼の違い
- EA作成ツールが向いているケース
- EA作成ツールだけでは不足しやすいケース
- MQL5でEAを作る時の基本構造
- ロジック、発注前チェック、注文処理、決済、ログの分け方
- バックテストとsetファイルの確認
- 生成されたコードを見る時の注意点
- 開発依頼に切り替えるべき判断基準
- 問い合わせ前に準備する資料
MT5 EA作成ツールとは
MT5 EA作成ツールとは、MQL5を直接書かなくても、条件や設定を入力することでEAのたたき台を作れるツールの総称です。画面上で条件を選ぶタイプ、ブロックを組み合わせるタイプ、テンプレートを選ぶタイプ、自然文からコードを生成するタイプなどがあります。
EA作成ツールを使うと、単純な条件を早く形にできる場合があります。たとえば、移動平均線のクロス、RSIの閾値、時間帯制限、固定ロット、固定TP/SLのような比較的シンプルな構成であれば、試作しやすいことがあります。
一方で、EA作成ツールで作ったEAが、実際の運用や配布、開発依頼、長期検証にそのまま適しているとは限りません。発注前チェック、ログ設計、エラー処理、銘柄仕様、外部連携、複数ポジション管理、バックテスト条件の記録などが不足する場合があります。
| 確認項目 | 内容 | 注意点 |
|---|---|---|
| 作成方法 | 画面入力、ブロック式、テンプレート式、生成式など。 | 生成後のコード確認や改修可否を確認します。 |
| 対象環境 | MT5用か、MT4用か、MQL5対応か。 | MT4用EAをそのままMT5で使うことはできません。 |
| コード出力 | .mq5が出力されるか、.ex5だけか。 | 改修したい場合はソースコードの有無が重要です。 |
| 注文処理 | OrderSend、CTrade、独自関数など。 | retcodeやGetLastErrorを確認できるか見ます。 |
| ログ | Expertsログ、PrintFormat、CSVログなど。 | 注文しない理由を追えるか確認します。 |
| バックテスト | Strategy Testerで検証できるか。 | 結果だけでなく検証条件を記録します。 |
自作・EA作成ツール・生成ツール・開発依頼の違い
MT5 EAを用意する方法は1つではありません。MQL5を自分で書く方法、EA作成ツールを使う方法、生成系ツールでコードのたたき台を作る方法、開発者へ依頼する方法があります。それぞれ、費用、自由度、確認のしやすさ、改修のしやすさ、保守のしやすさが異なります。
最初に決めるべきことは、「何を作りたいか」です。単純な検証用EAなのか、実運用前提のEAなのか、通知だけの補助ツールなのか、パネル操作型なのか、コピーEAなのか、外部連携が必要なのかによって、適した方法が変わります。
| 方法 | 向いているケース | 注意点 |
|---|---|---|
| 自分でMQL5を書く | EAの構造を理解し、細かい条件やログを自分で調整したい場合。 | コンパイル、発注処理、エラー処理、バックテストを自分で確認する必要があります。 |
| EA作成ツールを使う | 定型的なロジックを早く形にしたい場合。 | 複雑な例外処理、ログ設計、外部連携には限界が出る場合があります。 |
| 生成ツールでたたき台を作る | コードの雰囲気や構成案を作る補助として使いたい場合。 | 生成コードをそのまま信頼せず、MQL5仕様・コンパイル・ログで確認する必要があります。 |
| 開発者へ依頼する | 発注、決済、ログ、通知、配布前確認まで含めて整理したい場合。 | 依頼前に仕様、setファイル、ログ、スクリーンショットを整理する必要があります。 |
EA作成ツールが向いているケース
EA作成ツールは、条件が比較的シンプルで、まず動く形を確認したい場合に向いています。たとえば、単一インジケーターの閾値、移動平均線のクロス、時間帯制限、固定TP/SL、固定ロットのように、ロジックが定型的な場合は試作しやすいことがあります。
また、MQL5の文法をまだ十分に理解していない段階で、EAの基本構造を学ぶために使うこともできます。作成ツールで出力されたコードを読み、OnInit、OnTick、input、注文処理、ログ出力がどのように構成されているかを確認すれば、学習材料としても使えます。
| 向いている例 | 理由 | 追加確認 |
|---|---|---|
| 単純な条件の試作 | 条件数が少なく、構造を把握しやすいため。 | 発注前チェックとログを追加で確認します。 |
| 学習用EAの作成 | OnInitやOnTickの流れを確認しやすいため。 | 生成コードの意味を読みます。 |
| バックテスト用のたたき台 | 条件を素早く比較できるため。 | setファイルと検証条件を保存します。 |
| 通知なし・外部連携なしの簡易EA | 外部設定が少なく、確認範囲が狭いため。 | 注文結果ログは必ず確認します。 |
| 開発依頼前の仕様整理 | 作りたい動きを形にして説明しやすくなるため。 | 最終版ではなく参考資料として扱います。 |
EA作成ツールだけでは不足しやすいケース
EA作成ツールは便利ですが、すべてのEA開発に向くわけではありません。複雑なポジション管理、複数ロジック、ナンピン、グリッド、コピーEA、外部通知、WebRequest、CSVログ、Google Sheets連携、パネル操作、配布前チェックなどが必要な場合は、ツールだけでは不足しやすくなります。
また、作成ツールが出力するコードによっては、ログが少ない、発注前チェックが簡略化されている、Magic Number管理が不十分、エラー時の原因追跡が難しい、といった問題が残ることがあります。運用前には、MQL5開発者視点でコードを確認する必要があります。
| 不足しやすいケース | 確認すべき理由 | 対応方針 |
|---|---|---|
| 複数ポジション管理 | Magic Number、銘柄、方向、チケット単位の管理が必要です。 | ポジション管理関数を確認します。 |
| ナンピン・グリッド | 保有数、平均建値、証拠金、含み損管理が必要です。 | リスク管理と停止条件を別途設計します。 |
| 外部通知 | Discord通知やWebRequestではURL許可・送信失敗確認が必要です。 | 通知失敗と売買処理を分けます。 |
| CSVログ | 検証記録や長期ログを残す設計が必要です。 | ファイル出力と機密情報管理を確認します。 |
| 複雑な決済 | TP/SL、トレーリング、建値、時間決済、一括決済の優先順位が必要です。 | exit責務を分けて設計します。 |
| 配布用EA | input整理、ログ、HELP、manual、エラー時の表示が必要です。 | UserLive向けの整理が必要です。 |
MQL5でEAを作る時の基本構造
EA作成ツールを使う場合でも、MQL5 EAの基本構造は理解しておく必要があります。EAは、起動時の初期化、価格更新時の判定、注文処理、決済処理、終了時の後処理などで構成されます。代表的なイベント関数は、OnInit、OnTick、OnDeinit、OnTimer、OnTradeTransactionです。
生成されたコードを確認する時は、どのイベント関数で何をしているかを読みます。OnInitでinput確認やハンドル作成をしているか、OnTickで毎ティック処理をしているか、新バー判定をしているか、注文処理を関数に分けているかを確認します。
| 構成要素 | 役割 | 確認ポイント |
|---|---|---|
OnInit | EA起動時の初期化処理。 | input確認、ハンドル作成、初期ログ、設定不正時の停止。 |
OnTick | 価格更新ごとの処理。 | 新バー判定、シグナル判定、フィルター、発注処理。 |
OnDeinit | 終了時の後処理。 | ハンドル解放、Object削除、終了理由ログ。 |
OnTimer | 一定間隔の処理。 | 通知、外部連携、状態監視、表示更新。 |
OnTradeTransaction | 注文・約定イベントの確認。 | 注文結果、約定、履歴、ポジション変化のログ。 |
| 補助関数 | シグナル、発注、決済、ログなどの処理分割。 | 責務が混ざっていないか確認します。 |
ロジックと発注処理を分けて考える
EA作成ツールや生成ツールで作ったコードを見る時は、ロジックと発注処理が分かれているかを確認します。ロジックは、買い候補・売り候補・見送りを判断する部分です。発注処理は、実際に注文を送る部分です。
この2つが混ざっていると、EAが注文しない時に原因を追いにくくなります。シグナルが出ていないのか、フィルターで止まっているのか、発注前チェックで止まっているのか、OrderSendやCTradeで失敗しているのかを分けてログに残す必要があります。
| 責務 | 内容 | ログで確認したいこと |
|---|---|---|
| signal | BUY / SELL / 見送りを判定します。 | どの条件で候補が出たか。 |
| filter | スプレッド、時間帯、最大ポジション数などを確認します。 | どの条件で止めたか。 |
| precheck | ロット、証拠金、SL/TP距離、銘柄仕様を確認します。 | 発注前に問題がないか。 |
| execution | OrderSendまたはCTradeで注文します。 | retcode、GetLastError、注文結果。 |
| risk | 最大ロット、最大損失、日次停止などを管理します。 | 停止条件に該当したか。 |
| exit | TP/SL、トレーリング、建値、時間決済を管理します。 | どの理由で決済したか。 |
| notification | アラート、Discord通知、CSV出力などを扱います。 | 通知失敗を売買処理と分けて確認します。 |
EA作成前に整理する仕様
EA作成ツールを使う前に、まず仕様を整理します。仕様が曖昧なままツールを使うと、作成後に「思っていた動きと違う」「バックテストで条件が合わない」「ログで原因が追えない」といった問題が起きやすくなります。
特に、エントリー条件だけを先に決めても、EAとしては不十分です。決済条件、発注前チェック、最大ポジション数、ロット計算、Magic Number、時間帯制限、停止条件、ログ、バックテスト条件まで整理しておく必要があります。
| 整理する仕様 | 内容 | 確認理由 |
|---|---|---|
| EAの目的 | 自動売買、半裁量補助、通知、検証用、診断用など。 | 必要な機能が変わるため。 |
| エントリー条件 | 買い条件、売り条件、見送り条件。 | シグナル判定の中心になるため。 |
| 決済条件 | TP/SL、トレーリング、建値、時間決済、一括決済。 | エントリーだけではEAとして不十分なため。 |
| ロット | 固定ロット、残高連動、リスク%、最大ロット。 | 口座や銘柄仕様に影響するため。 |
| 発注前チェック | スプレッド、証拠金、StopLevel、取引時間。 | 注文失敗や想定外発注を減らすため。 |
| ポジション管理 | Magic Number、最大保有数、対象銘柄、対象方向。 | 他EAや手動ポジションと混同しないため。 |
| ログ | 初期化、シグナル、発注、決済、エラー、通知。 | 原因追跡に必要なため。 |
| 検証条件 | 銘柄、時間足、期間、setファイル、スプレッド。 | バックテスト再現性に必要なため。 |
EA作成ツールで出力されたコードを見る時の注意
EA作成ツールで.mq5ファイルが出力される場合は、コードの中身を確認できることがあります。この時は、OnInit、OnTick、input、注文処理、決済処理、ログ、エラー処理がどのように書かれているかを見ます。
もし.ex5だけが出力される場合、通常はソースコードとして中身を編集できません。後から改修したい場合や、不具合原因を調べたい場合は、.mq5や関連する.mqhが必要になることがあります。
| 確認項目 | 見る内容 | 注意点 |
|---|---|---|
.mq5の有無 | ソースコードが出力されるか。 | 改修や原因調査に必要です。 |
.mqhの有無 | 共通部品や外部includeがあるか。 | 本体だけではコンパイルできない場合があります。 |
.ex5のみ | コンパイル済みファイルだけか。 | 通常、ソース編集はできません。 |
| input構成 | 設定項目が多すぎないか、必要な項目があるか。 | 利用者が迷わない構成が必要です。 |
| ログ | Print、PrintFormat、retcode、GetLastError。 | 原因追跡できるかを確認します。 |
| 発注前チェック | ロット、証拠金、スプレッド、SL/TP距離。 | 省略されていないか確認します。 |
バックテストで確認すること
EA作成ツールで作ったEAや、生成ツールで作ったEAは、必ずバックテストで確認します。コンパイルが通ることと、バックテストで想定どおりに動くことは別です。また、バックテストで動くことと、実運用で同じ結果になることも別です。
バックテストでは、銘柄、時間足、期間、モデル、スプレッド、初期証拠金、setファイル、取引履歴、Expertsログ、Testerログを確認します。結果の損益だけでなく、なぜ注文したのか、なぜ注文しなかったのか、どの条件で決済したのかを確認してください。
- EA名とバージョンを記録する
- 使用したsetファイルを保存する
- 銘柄、時間足、期間を記録する
- モデル、スプレッド、初期証拠金を記録する
- 注文が出る理由と出ない理由をログで確認する
- 決済理由を取引履歴とログで確認する
- 最適化結果だけで判断しない
- バックテスト結果を将来成績保証として扱わない
最適化だけで判断しない
EA作成ツールで作ったEAを最適化すると、過去データ上では良い結果に見える設定が見つかることがあります。しかし、最も利益が大きい組み合わせだけを選ぶと、過去データに合わせ込みすぎる可能性があります。
最適化結果を見る時は、利益だけでなく、取引回数、最大ドローダウン、プロフィットファクター、別期間での結果、近いパラメータの安定性、フォワード確認を見ます。取引回数が少なすぎる結果や、特定期間だけ極端に良い結果は慎重に扱ってください。
EA作成ツールで簡単に複数条件を試せる場合でも、条件を増やしすぎると、過去データにだけ合うEAになりやすくなります。フィルター追加や条件変更を行う時は、追加理由と結果の変化を記録してください。
生成ツールで作ったコードの扱い
近年は、自然文からMQL5コードのたたき台を作る生成系ツールもあります。生成されたコードは、学習や試作の補助として役立つことがありますが、そのまま実運用に使えるとは限りません。
生成コードでは、MQL5の関数名、引数、注文処理、配列方向、CopyBuffer、取引結果確認、includeの扱い、コンパイル可否を必ず確認してください。見た目は正しそうでも、コンパイルエラーが出る、ロジックが意図と違う、発注前チェックが不足する、ログが足りない、といったことがあります。
| 確認項目 | 見る内容 | 注意点 |
|---|---|---|
| コンパイル可否 | MetaEditorでエラーなくコンパイルできるか。 | 生成コードは必ずコンパイル確認します。 |
| MQL5仕様 | 関数名、引数、戻り値、イベント関数。 | MQL4風の書き方が混ざることがあります。 |
| 注文処理 | OrderSend、CTrade、retcode確認。 | 注文結果確認が不足しがちです。 |
| データ取得 | CopyBuffer、CopyRates、配列方向。 | 確定足と現在足の混同に注意します。 |
| ログ | PrintFormat、GetLastError、見送り理由。 | 原因追跡できる粒度か確認します。 |
| 機密情報 | token、URL、APIキー、口座情報。 | 生成・共有時に入力しないようにします。 |
開発依頼に切り替えるべき判断基準
EA作成ツールで試作してみたものの、途中から開発依頼へ切り替えた方がよい場合があります。特に、複雑な注文管理、複数ロジック、ナンピン、グリッド、外部通知、WebRequest、CSV出力、パネル表示、配布前整理が必要な場合は、仕様を整理して相談する方が安全です。
また、EAが注文しない理由をログで追えない、CopyBufferで値が取れない、OrderSendのretcodeが分からない、最適化結果と単体テスト結果が合わない、実チャートとバックテストで挙動が違う、といった場合も、開発者視点での確認が必要になることがあります。
| 切り替え判断 | 理由 | 準備する資料 |
|---|---|---|
| 発注処理が複雑 | ロット、証拠金、SL/TP、銘柄仕様の確認が必要です。 | 仕様書、setファイル、ログ。 |
| 複数ポジションを扱う | Magic Number、チケット、方向、保有数の管理が必要です。 | ポジション管理条件。 |
| 外部連携が必要 | WebRequest、Discord通知、CSV、Google Sheetsなどの確認が必要です。 | 連携仕様、マスク済みログ。 |
| 不具合原因が追えない | ログ不足や責務混在で原因追跡が難しいため。 | Expertsログ、Journalログ、再現条件。 |
| 配布・販売を考えている | input整理、HELP、manual、ログ、UserLive整理が必要です。 | 想定利用者、配布条件、仕様一覧。 |
| 既存EAを改修したい | ソースコードの有無や構造確認が必要です。 | .mq5、.mqh、set、ログ。 |
開発依頼前に準備する情報
開発依頼に進む場合は、「EAを作りたい」だけでは仕様が不足します。作りたいEAの種類、対象銘柄、時間足、エントリー条件、決済条件、発注条件、ロット、最大ポジション数、ログ、通知、バックテスト条件を整理してください。
EA作成ツールで作ったたたき台がある場合は、それを参考資料として使えます。ただし、どの部分を参考にしたいのか、どの部分を作り直したいのか、どの部分が不具合なのかを分けて伝えることが重要です。
| 準備する情報 | 内容 | 理由 |
|---|---|---|
| 作りたいEAの目的 | 自動売買、半裁量、通知、検証、診断など。 | 必要機能を決めるため。 |
| ロジック | エントリー条件、見送り条件、決済条件。 | EAの中心仕様になるため。 |
| 対象環境 | MT5、ブローカー、銘柄、時間足、VPS。 | 動作環境を確認するため。 |
| 既存資料 | 作成ツールの出力コード、set、ログ、スクリーンショット。 | 現状を確認するため。 |
| バックテスト条件 | 銘柄、時間足、期間、スプレッド、モデル。 | 再現性を確認するため。 |
| 希望するログ | 発注、決済、通知、エラー、見送り理由。 | 不具合確認をしやすくするため。 |
| 送らない情報 | 口座番号、パスワード、APIキー、Webhook URL。 | 機密情報を保護するため。 |
EA作成ツールを使う前の実務チェック表
- 作りたいEAの目的を整理した
- EA作成ツールで作れる範囲か確認した
.mq5ファイルが出力されるか確認した- 発注前チェックがあるか確認した
- Magic Numberと対象ポジションの範囲を確認した
- OrderSendまたはCTradeの結果確認があるか確認した
- retcodeとGetLastErrorをログで確認できるか見た
- CopyBufferを使う場合、ハンドルと戻り値を確認した
- バックテスト条件とsetファイルを保存した
- 最適化結果だけで判断していない
- 外部連携や通知の機密情報をログに出していない
- 開発依頼に切り替える場合の資料を整理した
よくある質問
MT5 EA作成ツールだけでEAは作れますか?
単純な条件のEAであれば、作成ツールでたたき台を作れる場合があります。ただし、複雑な発注前チェック、ログ設計、複数ポジション管理、外部通知、CSV出力、配布前確認まで必要な場合は、ツールだけでは不足することがあります。
EA作成ツールで作ったEAはそのまま実運用できますか?
そのまま実運用する前に、必ずコンパイル、バックテスト、デモ環境で確認してください。注文条件、決済条件、ロット、スプレッド、Magic Number、ログ、retcode、GetLastErrorを確認する必要があります。
ex5だけ出力されるEA作成ツールでも改修できますか?
通常、.ex5はコンパイル済みの実行用ファイルであり、ソースコードとして編集することはできません。改修や原因調査を前提にする場合は、.mq5や関連する.mqhがあるか確認してください。
生成ツールで作ったMQL5コードは信頼できますか?
生成コードはたたき台として使える場合がありますが、そのまま信頼するのは危険です。MetaEditorでコンパイルし、MQL5仕様、注文処理、CopyBuffer、ログ、発注前チェック、バックテストで確認してください。
EA作成ツールと開発依頼はどちらがよいですか?
単純な条件を試したい場合はEA作成ツールが向くことがあります。複雑な注文管理、外部連携、ログ、配布前確認、既存EA改修、不具合調査が必要な場合は、仕様を整理して開発依頼を検討した方がよい場合があります。
開発依頼前には何を準備すればよいですか?
作りたいEAの目的、ロジック、対象銘柄、時間足、発注条件、決済条件、setファイル、バックテスト条件、Expertsログ、Journalログ、スクリーンショットを整理してください。口座番号、パスワード、Webhook URL、APIキーなどは送らないようにしてください。
関連ページ
MT5 EA作成ツールを検討する時は、自作前確認、MQL5開発入門、サンプルコードの読み方、ログ確認、バックテスト、EA設計、注文処理、開発依頼前資料を分けて確認すると、判断しやすくなります。
| 確認したい内容 | 関連ページ |
|---|---|
| EAを自作する前の確認をする | 自動売買EAを自作する前に確認すること |
| MQL5開発環境を確認する | MQL5開発入門 |
| ログ確認とデバッグを確認する | MQL5デバッグ・ログファースト開発完全ガイド |
| バックテストと最適化を確認する | MT5ストラテジーテスター・最適化完全ガイド |
| EA設計の責務分離を確認する | MQL5 EA設計パターン完全ガイド |
| 注文・ポジション・履歴管理を確認する | MQL5注文・ポジション・履歴管理完全ガイド |
| CTradeを使った注文処理を確認する | MQL5標準ライブラリ・CTrade完全ガイド |
| CopyBufferの基本を確認する | MQL5でインジケーター値をEAに取り込む方法 |
| ロット・証拠金・銘柄仕様を確認する | MQL5ロット・証拠金・銘柄仕様完全ガイド |
| setファイル送付前の確認をする | MT5でEAのsetファイルを送る前に確認すること |
| バックテストとリアル運用の差を確認する | MT5でバックテストとリアル運用の結果が違う時に確認すること |
| EAログを問い合わせ前に確認する | EAのログを問い合わせ前に確認する方法 |
| 開発依頼前に用意する資料を確認する | MT5開発依頼前に用意する資料まとめ |
| 開発・改修相談の入口を確認する | 開発・改修の相談ページ |
まとめ
MT5 EA作成ツールは、単純な条件を素早く形にしたい場合や、EAの構造を学ぶ入口として役立つことがあります。ただし、作成ツールだけで、発注前チェック、ログ、エラー処理、Magic Number管理、バックテスト、外部連携、配布前確認まで十分に整うとは限りません。
EA作成ツールを使う前に、自作、作成ツール、生成ツール、開発依頼の違いを整理してください。作りたいEAの目的、ロジック、決済条件、発注条件、ログ、setファイル、バックテスト条件を先に決めておくと、後から確認しやすくなります。
生成されたコードや作成ツールの出力を使う場合は、MetaEditorでコンパイルし、Expertsログ、retcode、GetLastError、CopyBuffer、Magic Number、発注前チェックを確認してください。複雑なEAや配布用EA、外部連携付きEA、既存EA改修では、仕様を整理したうえで開発依頼を検討するのが安全です。
