AIに「エッジを探して」と頼めば必ず見つかります――だからEAを作る順番を逆にしました
前回、勝率100%・負け0回のEAを自分で作った話を書きました。
4年半のバックテストで371回取引して、負けが0回。そして、一度も触れていない期間に当てたらプロフィットファクター0.34で崩れました。
やったことは、7,362通りのパラメータを片端から走らせて、いちばん成績の良かったものを選んだだけです。
過去に合わせれば、数字は作れます。これが前回の結論でした。
では、どこからエッジを持ってくればいいのか。今回はその話です。
生成AIを使うと、この問題は悪化します
いま、EA開発に生成AIを使う人が増えています。私もそうです。
ただ、AIに「このデータからエッジを探して」と頼むと、AIは必ず見つけてきます。
見つけたものが本物かどうかは別として、パターンは出てきます。データが十分に長ければ、偶然の一致はいくらでも含まれているからです。
私が7,362通りをスクリプトで回したのと、やっていることは同じです。違うのは速度だけで、速い分だけ危険とも言えます。
「AIが分析しました」は、それ自体では何の保証にもなりません。探せば見つかる、を高速でやっただけかもしれない。
だから、順番を逆にしています
いま試しているのは、こういう手順です。
1. 自分で裁量トレードをして、記録を取る。エントリーとイグジットの時刻、方向、根拠、そのとき何を見ていたか。勝ち負けだけでなく、判断の中身を残します。
2. その記録とチャートを突き合わせて、生成AIに解析させる。「勝っている取引に共通している条件は何か」「負けている取引と何が違うか」を言語化させます。私はClaudeを使っています。
3. 出てきた条件をインジケーターにする。ここで注意しているのは、発注させないことです。あくまで表示だけ。条件が成立したら教えてくれる、それだけの道具にします。
4. そのシグナルに従って、自分で取引する。ここが時間のかかるところです。判断できるだけのn数が貯まるまで、実際に取引を重ねます。
5. 結果が良ければ、言語化してEAにする。シグナルの定義、フィルター、決済条件を確定させて、コードに落とします。
なぜこの順番なのか
理由はひとつです。
バックテストは、何度でもやり直せます。負けている場所を見て、それを避ける条件を足して、もう一度回す。これを繰り返せば、10年ずっと右肩上がりの曲線が作れます。前回の記事で実際に作りました。
でも、自分が過去に出した判断の記録は、後から作れません。
その取引をしたとき、私はその後の値動きを知りませんでした。知らない状態で出した判断が、記録として残っています。
後から都合よく書き換えられないデータは、これくらいしかないと思っています。
前回の記事で私はこう書きました——「2016年から2021年には一度も触れていない、と書いたが、それを証明する方法は私にはない」。
自分の取引記録には、この問題がありません。時刻が残っているからです。
ただし、この方法にも限界があります
正直に書いておきます。私はまだ、この方法で結論を出していません。
限界1: 過去相場で通用するかは分からない。前向きに取ったデータなので、長期の検証はそもそも存在しません。「直近の相場では機能している」までしか言えません。
ただ、私はこれを欠点だと思っていません。「直近の相場で機能している」は、それ自体が事実です。過去10年に合わせた数字より、よほど確かなことを言っています。
問題は、そのレジーム——相場の性質——が変わったときにどうするかです。だから、その環境のときだけエントリーするフィルターを付けるという設計になります。全部の相場で勝つEAを目指さない、という方針です。
限界2: n数が足りないうちは、何も言えない。これがいちばん時間のかかる部分です。数十回の結果では、勝っていても偶然と区別がつきません。
前回の記事のEAは371回取引して勝率100%でしたが、それでも意味がありませんでした。回数そのものより「その回数がどう集められたか」のほうが効きます。
限界3: 裁量の記録そのものにバイアスがある。人間は、うまくいった取引のほうを詳しく覚えています。記録の粒度が場面によって変わります。負けた取引を書き忘れることもあります。
だから記録は「あとでまとめて書く」のではなく、その場で機械的に埋める形にしないと、材料として使えません。
限界4: AIの解析ステップに、過剰最適化が忍び込む。これが最大の弱点です。冒頭に書いたとおり、AIは探せば見つけます。
だから私は、AIが出した条件を「発見」として扱わないことにしています。あくまで仮説です。仮説は、前向きの取引で確かめるまで仮説のままです。
この手順の価値は、AIに探させることではなく、探させたものを前向きに検証する順序のほうにあります。ここを逆にすると、前回の記事と同じものができあがります。
いま、どこにいるか
インジケーターを作り、そのシグナルで取引を始めたところです。n数はまだ足りません。
うまくいくかは分かりません。うまくいかなかった場合も、そのまま書きます。
前回のEAを配ったときと同じで、途中経過を隠して結果だけ出すと、それは検証できない数字になってしまうからです。
この記事の続きについて
ここから先に、実際に使っている手順を置いています。
記録シートに何を書いているか。AIに何を渡して、何を聞いて、何を聞かないようにしているか。どこで止めると決めているか。
まだ結論の出ていない方法なので、「これで勝てます」という話ではありません。同じことを試したい方が、自分で回せる形にしてあります。
無料ですが、お申し込みが必要です。