最終更新: 2026年6月
「ChatGPTに頼めばEAが作れる」と期待して試した結果、動かないコードと格闘した経験を持つ開発者は少なくない。2026年現在も、MQL5コミュニティのフォーラムでは「ChatGPTが生成したコードがひどい」という報告が絶えない。本稿では、なぜChatGPTでEAを完成させるのが難しいのかを技術的に整理し、実際に使えるアプローチとの組み合わせ方を解説する。
免責事項: 本記事は情報提供を目的としており、特定のAIツールやEAの使用を推奨するものではありません。FX取引には元本割れを含む損失リスクがあります。
ChatGPTがEAを「作れない」4つの根本的な理由
直接回答: ChatGPTがEAを正確に作れない主な理由は「MQL4/MQL5の混在」「論理バグのデバッグ不能」「運用上の重要な条件の省略」「戦略の収益性判断不能」の4点です。コードは生成できても、「動くEA」と「稼ぐEA」の間には大きなギャップがあります。
理由1: MQL4とMQL5を混在させる
ChatGPTが生成するコードで最も頻出するエラーのひとつが、MQL4とMQL5の文法の混在だ。
// ChatGPTが生成しやすい混在コードの例
double rsiValue = iRSI(Symbol(), PERIOD_CURRENT, 14, PRICE_CLOSE, 0);
// ↑ MQL4の古い書式。MQL5では使えない
MQL5の正しい書式は以下だ。
// MQL5の正しいRSI取得
int rsiHandle = iRSI(Symbol(), PERIOD_CURRENT, 14, PRICE_CLOSE);
double rsiBuffer[];
ArraySetAsSeries(rsiBuffer, true);
CopyBuffer(rsiHandle, 0, 0, 3, rsiBuffer);
double rsiValue = rsiBuffer[0];
ChatGPTはインターネット上の大量のコードで学習しているが、MQL4向けの記事とMQL5向けの記事が混在しているため、どちらの文法を使うべきか誤判断することが多い。「ChatGPTのコードがデタラメになる」と指摘した日本の開発者(note記事, ホソノP氏)も、この問題を具体的に報告している。
この問題を防ぐ実践的な対策:「MT5(MQL5)向けのコードだけを書いてください。MQL4の記法は一切使わないでください」と最初に明示的に指定する。
理由2: 論理バグをデバッグできない
コンパイルは通るが動作がおかしい「論理バグ」は、ChatGPTの手に余る。
MQL5フォーラムに掲載された2026年5月の検証記事では、ChatGPTが生成したRSI平均回帰EAで「現在の値を前の値と比較すべき箇所で自身と比較している」という微妙な論理バグが発見された。このバグのせいで12ヶ月のバックテストでわずか2回しかトレードが実行されなかったという。
ChatGPTはコードが「意図通りに動くかどうか」を実行して確認する能力がない。コードの意味を理解してデバッグするのではなく、「よくありそうなコードを生成する」だけだ。
論理バグの発見方法:
- バックテストのトレード数が極端に少ない(設定期間に対して数十回以下)場合は論理バグを疑う
- エントリー条件をprint文でログ出力させて、条件が成立しているかを確認する
- 簡単なシナリオ(RSIが30以下になった特定の日付)で、期待通りのエントリーが出るかを手動確認する
理由3: 運用上の重要な条件が抜け落ちる
ChatGPTが自動的に処理してくれない重要な実装項目がある。
同検証記事によれば、明示的に指示しない限りChatGPTのコードには以下が含まれないことが多い。
- ブローカーサフィックス対応: ブローカーによって通貨ペア名が「EURUSD.m」や「EURUSDmicro」のように変わるが、対応コードが入っていない
- スプレッド設定: バックテストでの現実的なスプレッドが反映されない(バックテスト0.5pips vs 実際1.2pipsで結果が大きく変わる)
- ニュース発表時の処理: 経済指標発表前後のスプレッド拡大や価格急変への対処がない
- 週末ギャップ対応: 週明けの窓開けリスクへの対処がない
これらは「当然あるべき実装」だが、指示しないと省略される。
必須指定すべき項目のテンプレート: 「ブローカーサフィックスに自動対応する処理を入れてください」 「スプレッドが設定値を超えた場合はエントリーしない処理を加えてください」 「週末の金曜クローズ前にポジションを決済する処理を入れてください」
理由4: 戦略の「収益性」を判断できない
ChatGPTは「指定された戦略をコードで実装する」ことはできるが、「その戦略が本当に機能するか」は判断できない。
前述の2026年検証の著者は「ChatGPTは2009年のEAと本質的に同じ静的ルールベースシステムしか作れない。市場適応性はない」と結論づけている。
バックテストでも改善後の結果は87トレードでマイナス4.2%、ライブ運用6週間でマイナス9.4%という結果だった。コードは動くが、戦略が機能しないのだ。
ChatGPTがMQL5コード生成で直面する実際のエラー
直接回答: ChatGPTがよく生成するMQL5エラーは「宣言なし変数参照」「非推奨関数の使用」「Point関数の混同」「型の不一致」「配列処理エラー」の5パターンです。これらはMQL4とMQL5の仕様の差から生じます。
MQL5コミュニティで報告されている頻出エラーパターンをまとめる。
| エラー種別 | 具体例 | 原因 |
|---|---|---|
| 宣言なし変数参照 | int handle を宣言せず使用 | コードの分割生成で前後の文脈を忘れる |
| 非推奨関数 | MQL4のiRSI書式をMQL5で使用 | MQL4/5の混在 |
| Point関数の誤用 | Point(定数)とPoint()(関数)の混同 | バージョン違いの混在 |
| 型の不一致 | double → int の暗黙的変換 | 型チェックなしの生成 |
| 配列処理エラー | ArraySetAsSeriesの設定漏れ | MQL5特有の仕様の理解不足 |
| OrderSend関数の混在 | MT4のOrderSend()をMQL5で使用 | バージョン混在の典型例 |
エラーへの対処法
コンパイルエラーが発生した場合の対処手順:
- エラーメッセージを完全にコピーしてChatGPTに貼り付ける
- 「このエラーの意味と修正方法を教えてください」と聞く(修正コードを出させるより、方向性を聞く)
- 示された方向性をもとに自分でコードを確認・修正する
- 修正したコードを再コンパイルして確認する
それでもChatGPTを使うべき場面と正しい使い方
直接回答: ChatGPTはEAのゼロからの全体生成には不向きですが、「既存コードの改良」「コードの意味説明」「デバッグの方向性確認」では実用的な価値があります。得意・不得意を理解した上で使うことが重要です。
ChatGPTが使えないわけではない。得意・不得意を理解した上で使えば、EA開発のスピードを上げられる。
得意なこと: ゼロから作るよりも「改良」に使う
既存の動作確認済みEAのコードをベースに、ロジックの追加・パラメータの変更・条件の追加を依頼する方が成功率が高い。ゼロからの生成より文脈が明確で、エラーが少なくなりやすい。
「このコードにATRベースのロットサイジング機能を追加してください」という形の依頼は、全体生成より成功率が高い。
得意なこと: コードの「翻訳・説明」
MQL5コードの意味を日本語で説明させる用途は高精度だ。「このコードのOnTick()内で何をしているか説明して」という使い方は有効だ。
コードのレビューに使う方法としても有効で、「このコードの潜在的な問題点やバグのリスクがあれば指摘してください」という依頼は有用な情報が返ってくることが多い。
得意なこと: デバッグの補助
コンパイルエラーのメッセージを貼り付けて「この意味を教えて」と聞く用途は実用的だ。ただし「修正コードを出して」と続けると別のバグが入ることがあるので、修正の方向性だけ聞いて自分で直す方が安全だ。
使う際の5つの鉄則
- MT4かMT5かを最初に明示する — 「MT5(MQL5)向けのコードを書いて」と最初に指定する
- ブローカーサフィックス・スプレッド・ニュースフィルターを必ず指定する — 「デフォルトで実装してくれる」と期待しない
- 生成されたコードは必ずコンパイルして確認する — エラーゼロを確認するまでデモでも使わない
- ロジックの正しさは自分で検証する — バックテスト回数が少なすぎないかは必ずチェック
- 戦略のアイデアをChatGPTに出してもらわない — 「儲かる戦略」の提案は求めない
Claudeを使ったアプローチとの違い
Claude(Anthropic社)はコード生成の精度でChatGPTと競合しているが、MQL5フォーラムの2026年4月の記事では「ChatGPTとClaudeを使ったMQL5開発」が比較されており、Claudeの方がコードの論理的整合性が高いという報告がある。
ただし、どのAIを使っても「戦略が機能するかは自分で検証する」という原則は変わらない。
Claudeと会話しながらインジケータが作れるhedgrow-fxは、このような問題に対して、コード生成ではなくロジック設計の段階からAIとの対話でサポートする仕組みを持っている。「コードを書いてもらう」ではなく「システムの論理を一緒に考える」アプローチが、実用的なEAを作る上で現実的な出発点だ。
ChatGPTとClaudeの比較(MQL5開発用途)
| 項目 | ChatGPT | Claude | |---|---|---| | コード生成 | 可能だが品質にばらつき | 論理的整合性が高い傾向 | | MQL4/5混在リスク | 頻発 | 比較的少ない | | 日本語対応 | 良好 | 良好 | | 長い前提条件の処理 | 中程度 | 得意 | | コスト | GPT-4oはAPI課金 | Claudeは各種プランあり |
ChatGPTでEAを作る代わりにすべきこと
直接回答: ChatGPTでゼロからEAを作る代わりに、「ロジックを先に決める→サンプルコードをベースにChatGPTで改良→コンパイル確認→バックテスト→デモ検証」の順番で進めることが現実的かつ確実なアプローチです。
「ChatGPTがEAを作れないなら何をすべきか」という問いへの、筆者の現実的な回答だ。
ステップ1: ロジックを先に決める(ChatGPTは使わない) ステップ2: 動作確認済みのサンプルコードを見つける ステップ3: ChatGPTに「このサンプルに○○の条件を追加して」と依頼する ステップ4: コンパイルエラーを自分で確認・修正する ステップ5: バックテストでトレード回数と勝率の妥当性を確認する ステップ6: デモ運用で最低6週間検証する
「ロジックを先に決める」の具体的な方法
ロジックを決めるとはどういうことか。具体的には「エントリー条件・エグジット条件・ロットサイジング・フィルター」を明文化することだ。
例:
- エントリー条件: RSI(14)が30以下、かつATR(14)が20日平均の1.5倍以上
- エグジット条件(利確): ATR(14)の2倍
- エグジット条件(損切り): ATR(14)の1倍
- フィルター: 重要経済指標発表30分前〜発表後30分はエントリーしない
この4点が決まっていれば、ChatGPTへの依頼も明確になり、生成されるコードの品質が上がる。
まとめ
ChatGPTによるEA生成の限界と正しい活用法のポイント:
- MQL4/MQL5の混在・論理バグ・運用条件の省略・戦略判断不能の4つが根本的な限界
- 「ゼロからの全体生成」ではなく「既存コードの改良・説明・デバッグ補助」に使う
- 必ずMT5/MQL5を最初に明示し、重要なパラメータは具体的に指定する
- 戦略のロジックは自分で決め、コード化の作業にのみAIを活用する
よくある質問(FAQ)
Q: ChatGPTで作ったEAが全くトレードしないのはなぜですか? A: 最も多い原因は論理バグです。エントリー条件が矛盾していて、実際の相場では条件が一度も成立しないコードが生成されることがあります。バックテストのトレード回数が極端に少ない場合は、エントリー条件のロジックを確認してください。
Q: ChatGPT-4とGPT-3.5ではEAの精度は変わりますか? A: GPT-4の方がコード品質は一般的に高いですが、MQL5特有の問題(MQL4との混在・論理バグ)は本質的に解決されていません。モデルが新しくなっても「MQL5の仕様を完全に理解する」わけではないため、検証の手間はどちらも必要です。
Q: ChatGPTに代わってEA開発に使えるAIツールはありますか? A: MQL5フォーラムではClaudeの評価が高く、2026年4月の比較記事では論理的整合性でのアドバンテージが報告されています。また、StrategyQuantXのような専用ツールは「コード生成」ではなく「戦略の統計的検証」に特化しており、異なるアプローチです。
Q: ChatGPTで作ったEAを実運用で使っている人はいますか? A: います。ただし、そのような事例の多くは「ChatGPTが生成したコードをベースに、人間のデバッグと検証を経たもの」です。ChatGPTが出力したコードをそのまま実運用するのは推奨できません。
Q: ChatGPTにMQL5コードを書かせるときのベストなプロンプトは何ですか? A: 「MT5(MQL5)専用のコードを書いてください。MQL4の記法は一切使わないこと。ブローカーサフィックスに対応する処理を含めること。スプレッドフィルター([数値]pips超えはエントリー不可)を含めること」という制約を最初に明示することが最も重要です。
Q: コンパイルエラーが解決できない場合はどうすればよいですか? A: エラーメッセージをそのままChatGPTやClaudeに貼り付けて「このエラーの意味を教えてください」と聞く方法が有効です。また、Hedgrow FXを使えばClaudeとMQL5コードについて対話形式で相談できます(https://hedgrow-fx.com/)。
Q: EAの開発にプログラミング知識は必要ですか? A: ゼロからの開発には必要ですが、AIツールを活用することでプログラミング知識がなくても一定の範囲まで進められるようになっています。ただし、生成されたコードが意図通りに動いているかを検証するためには、少なくともコードの基本的な読み方(条件文・ループ構造程度)の理解があると作業効率が大幅に上がります。
免責事項: 本記事は情報提供を目的としており、特定のAIツールやEAの使用を推奨するものではありません。FX取引には元本割れを含む損失リスクがあります。自動売買システムは実運用前に十分なテストを行ってください。
