AIにEAを100個作らせてみた結果【衝撃の成功率を公開】
この記事の結論
AI生成EA100個のうち、まともに動くのは23個、利益が出るのは3個だけだった。
「AIにEA作らせればラクして儲けられるじゃん!」
...と思ったあなた、ちょっと待ってください。
私は実際にChatGPT(GPT-4o)とClaude(Opus)を使って、100個のEAを生成してみました。その結果をすべてお見せします。
実験の条件
使用したAI
- ChatGPT GPT-4o: 50個
- Claude Opus: 50個
生成したEA戦略の内訳
| 戦略カテゴリ | 生成数 |
|---|---|
| 移動平均線クロス系 | 20個 |
| RSI逆張り系 | 15個 |
| ブレイクアウト系 | 15個 |
| ボリンジャーバンド系 | 15個 |
| MACD系 | 10個 |
| 複合インジケーター系 | 15個 |
| 時間帯フィルター系 | 10個 |
バックテスト条件
- 期間: 2020年1月〜2024年12月(5年間)
- 通貨ペア: USDJPY, EURUSD, GBPJPY
- スプレッド: 固定1.5pips
- 初期資金: 100万円
- ロット: 0.1(リスク固定)
衝撃の結果
コンパイル成功率
まず最初の壁、そもそもコンパイルが通るか。
| AI | 生成数 | コンパイル成功 | 成功率 |
|---|---|---|---|
| ChatGPT GPT-4o | 50個 | 38個 | 76% |
| Claude Opus | 50個 | 42個 | 84% |
| 合計 | 100個 | 80個 | 80% |
20個はそもそも動かない。
エラー内容は大体こんな感じ:
- 未定義の変数参照
- 関数名のタイポ
- 括弧の閉じ忘れ
- 存在しないMQL関数の使用(
OrderSendのパラメータ間違いなど)
バックテスト実行成功率
次に、コンパイルは通ってもロジックがおかしくて動かないパターン。
| 状態 | EA数 | 割合 |
|---|---|---|
| 正常に動作 | 58個 | 58% |
| 無限ループでフリーズ | 8個 | 8% |
| ポジション取れない | 9個 | 9% |
| 決済されない | 5個 | 5% |
| コンパイルエラー | 20個 | 20% |
100個中、まともに5年分バックテストが取れたのは58個だけ。
利益が出たEAは?
ここからが本番。58個のEAをバックテストした結果:
| 結果 | EA数 | 割合 |
|---|---|---|
| 利益(+10%以上) | 3個 | 5.2% |
| 微益(0〜+10%) | 8個 | 13.8% |
| 微損(0〜-10%) | 12個 | 20.7% |
| 損失(-10%以上) | 35個 | 60.3% |
利益が出るEAはたったの3個。成功率5.2%。
100個作らせて3個。これが現実。
失敗パターンの分析
パターン1: エントリーだけで決済ロジックがない
AIに「移動平均線のゴールデンクロスでエントリーするEAを作って」と指示すると、決済条件を指定しないと適当に作る。
// AI生成コードの例(問題あり)if(fastMA > slowMA && prevFastMA < prevSlowMA) { OrderSend(Symbol(), OP_BUY, 0.1, Ask, 3, 0, 0, "AI EA", 0, 0, Blue);}ストップロスもテイクプロフィットも0。これで放置すると無限にポジション増えて破産。
パターン2: 変数のスコープ問題
// AI生成コードの例(バグあり)void OnTick() { double ma = iMA(Symbol(), 0, 20, 0, MODE_SMA, PRICE_CLOSE, 0); if(ma > prevMA) { // prevMAが未定義 // エントリーロジック } prevMA = ma; // ここで初めて代入}prevMAがグローバル変数として宣言されていないので、毎回リセットされる。
パターン3: カーブフィッティングの塊
AIに「利益が出るように最適化して」と指示すると、過去データに完璧にフィットしたゴミEAを作る。
// 過学習の例if(Hour() == 9 && Minute() == 30 && DayOfWeek() == 1 && Month() == 3) { // 超具体的な条件で高勝率(過去データでだけ)}こういうEAはフォワードテストで即死。
成功した3つのEAの特徴
利益が出た3つのEAには共通点がありました。
1. シンプルなロジック
複雑な条件を積み重ねたEAは全滅。成功したのは:
- 移動平均線1本とRSI
- ブレイクアウト+ATRストップ
- ロンドンセッション時間フィルター
2. 明確な損切り・利確
「ストップロス50pips、テイクプロフィット100pips」のように数値で指定したEAだけが生き残った。
3. 取引頻度が適度
年間50〜200回程度のトレード。多すぎても少なすぎてもダメ。
AI生成EAを使う際の注意点
1. そのまま使うな
AIが生成したコードは必ずレビューする。
- 変数の初期化は正しいか
- 決済条件は網羅されているか
- エラーハンドリングはあるか
2. 複数AIを使え
同じプロンプトでもChatGPTとClaudeで結果が違う。両方試して比較するのがベスト。
3. バックテストは必須
最低5年、できれば10年分。複数通貨ペアでテストしないと信頼できない。
4. フォワードテストも必須
バックテストで良くてもデモ口座で3ヶ月は回す。ここで崩れるEAが8割。
AIにEAを作らせる正しいプロンプト
ダメな例:
「利益が出るEAを作って」
良い例:
「以下の条件でMT4用EAを作成してください。
- 通貨ペア: USDJPY
- 時間足: 1時間足
- エントリー条件: 20期間SMAが上向きで、価格がSMAを上抜けたらロング
- 決済条件: ストップロス30pips、テイクプロフィット60pips
- ポジション管理: 同時ポジション数1つまで
- マジックナンバー: 12345
- エラーハンドリング: OrderSendエラー時はリトライ3回
コード全体と各関数の説明をお願いします。」
具体的に指定すればするほど、まともなコードが出てくる。
結論:AIはツールであって魔法ではない
「AIにEA作らせれば楽勝」という幻想は捨ててください。
| 項目 | 結果 |
|---|---|
| 100個中コンパイル成功 | 80個(80%) |
| 正常動作 | 58個(58%) |
| 利益が出た | 3個(3%) |
成功率3%。
ただし、以下の用途なら十分価値がある:
- プロトタイピングの高速化 - アイデアを素早くコード化
- MQL学習の補助 - 書き方の参考になる
- バグ修正のヒント - エラーの原因を聞ける
AIはあくまでアシスタント。最終的な判断とテストは人間がやるしかない。
参考
🎁おすすめツール・サービス
※上記リンクにはプロモーション(広告)が含まれています
量子相場謀略|ホソノP
ブログでは書けない本音のトレード戦略とEA開発の裏側を公開。 データに基づいた検証で、再現性のある手法だけをお届けします。