【AI直接売買 #2】約260通り検証して分かった、FXに「技術的な優位性」はほとんど無いという事実

TRACK B — AI直接売買

この記事は、MT5のEA売買(トラックA)とは別の口座・別の仕組みで動かしている「AI直接売買」の記録です。ClaudeがOANDAのAPIを通じて直接発注しています。仕組みの全体像はAI直接売買とはをご覧ください。

前回、AIに直接発注させる実験を始め、同時に「そのエントリー条件に本当に優位性があるのか」を過去データで確かめる道具を作った、と書きました。今回はその検証の記録です。9月7日から8日にかけての、ほぼ2日間の話になります。

最初の結果:現行ルールは「エッジなし」

6ペア、2021〜2024年の4年間を学習期間として、実弾で動かしていた順張りルールをそのまま回しました。結果はPF 0.99(プロフィットファクター=総利益÷総損失。1.0を下回ると損のほうが大きい)、10,000通貨換算で−93,811円。要するに、コイントスと変わりません。

EAトラックで1年かけて学んだことが、初日にそのまま出ました。「教科書的な順張り条件」には、少なくともこの期間・この時間足では優位性がない。

A/B/Cで回す——ただし「良い数字」を探さない

ここからは改善のループです。ただ、EAトラックで痛い目を見た「パラメータを削り込んで成績表を良くする」作業は、絶対にやらないと決めていました。AIにこれをやらせると、人間の何倍も速く、深く、過去にぴったり合ったルールを作ってしまいます。

そこで役割を3つに分けました。

  • A(立案):「なぜ効くはずか」の理屈つきで仮説を出す。理屈のない総当たりは禁止
  • B(検証):バックテストを回して数字を返すだけ。解釈しない。コードを触って数字を良くするのも禁止。これはAIではなく、決定論的なプログラム
  • C(評価):AとBを突き合わせて採用・棄却を判定する。「良い数字が出た」だけでは採用しない。過学習を疑う係

採用基準も先に決めました。学習期間でトレード数300以上、PF 1.3以上、月次勝ち越し60%以上、最大DD(資金の最大の落ち込み)25%以下、6ペア中4ペアでPF>1、パラメータを±20%動かしてもPFが1を割らない。これを通ったルールだけを、検証用に取り分けた2025年以降のデータに1回だけかける。検証期間を何度も見たら、それはもう「未知の期間」ではなくなるからです。

見つからなかったもの

結果を先に並べます。2日間で約260通り、7系統。

試した系統結果
H1 EMA順張り(6ペア、15変種)PF最良1.11。利益の87〜126%が特定の3ヶ月に集中
USD_JPYブレイクアウト(v4_c_bo10)学習期間PF 1.45で「合格」に見えた。しかし中身は2021〜24年の円安トレンドを買い持ちしていただけ。2015〜20年ではPF 0.94
H1 ボリンジャー平均回帰コスト差し引き前でもPF 0.93
VPSで動いているEA(Fable5_BB_Final)を移植2015〜20年でPF 0.68。勝ち年は6年中1年。優位性は円安局面そのもの
レジームゲート(週足・日足の環境判定)×順張りDD 25%以下の組み合わせがゼロ。ただし週足の方向判定には本物の情報があった
28ペア週次トレンドフォローCAGR(年率)−3.4〜−7.2%

いちばん堪えたのは4行目です。VPSで実際に動かしているEAを、この検証装置に移植して10年分回したら、円安が始まる前の6年間は負け続けていた。EAトラックの「主力」の優位性は、ルールではなく2021年からの円安局面そのものだった。EAトラックの「バックテストに頼るのをやめる」という決断の裏には、この数字があります。

途中、Cが検証プログラム自体の欠陥も見つけています。同時保有の制約がない、円換算が固定、スリッページが片道、などの13件。直すたびに数字は少し悪くなりました。「実装の不備を直せば良くなる」という直感は、2回とも外れました。

「信号を逆にしたら勝った」

28ペアの週次トレンドフォローが全滅したあと、Cが「本当に信号に情報がないのか、それとも方向が逆なのか」を切り分けるために、売買を反転させて回しました。

結果は+3.75%/年、28ペア中23ペアがプラス、10年中7年勝ち。円クロスを外しても+5.39%。つまり2015〜2024年のFXは、週足で見ると「トレンドに乗る」のではなく「行き過ぎたら戻る」市場だった。しかも特定の通貨ではなく、ほぼ全部のペアで。約200通り試して初めて出てきた、幅のある信号でした。

ここで大事なのは、この反転結果を「採用」しなかったことです。あくまで手がかり。ここから仮説を事前登録して、改めて検証しました。

M1:唯一残った候補

事前登録した平均回帰ルール「M1」の定義はこうです。

  • 対象:主要8通貨のうち、円を含まない21ペア(円クロス4本は実質「円」という1つのポジションなので分散にならない)
  • 信号:週足終値が直近13週の高値を更新したら翌週始値でショート。安値更新ならロング
  • 出口:週足終値がSMA26(26週移動平均)を逆に抜けた翌週始値、または保有8週
  • STOP:含み損が口座の2%に達したら手仕舞い
  • サイジング:ボラティリティに応じて口座の0.5%ずつ。総想定元本は口座の3倍まで、通貨別の偏りはその半分まで

学習期間(2015〜2024)でCAGR 8.93%、10年中9年プラス、最悪の年が−1.3%、8通貨中7通貨がプラス。初めて「分散した形」の優位性が出ました。頑健性のチェック(パラメータ±20%で8通り、通貨を1つずつ抜く、3年窓を8回ずらす)も全部通過。

そして、検証期間(2025年1月〜2026年9月)を1回だけ使いました。

学習 2015–2024検証 2025–2026/9合格ライン
CAGR8.93%8.16%4%以上 ✅
最大DD31.3%11.5%30%以下 ✅
幅(PF>1のペア)62%35%50%以上 ❌
通貨別7/8プラス6/7プラス

収益性とリスクは期間外でも保った。でも「幅」だけ不合格。形式上は不合格です。

中身を見ると、20ヶ月で1ペアあたり3〜4回しかトレードがなく、スワップ補正で−438円動いただけで3ペアの判定が入れ替わっていました。「幅」はこの短さでは測れない指標だった、つまり合格ラインの設計ミスです。でも、事前に決めた基準を、結果を見てから緩めるのはやらない。それをやった瞬間に、EAトラックで100本作った1年に戻ります。

判断:実弾インキュベーション

Claudeから出た選択肢は2つ。「未確立として棚上げ」か、「検証期間の3回目は使わず、これからの相場を新しい未知データとして、小さく実弾で走らせる」か。

後者を選びました。レバレッジ1.5倍。やめる条件も先に決める——累積−8%、DD 20%、26週時点で通貨別プラスが7中4未満、月次勝ち越し40%未満のどれかに当たったら止める。26週生き残ったら3倍へ。

運用は週次です。月曜にプログラムが目標ポジションを出し、Claudeは中銀会合・介入警戒・選挙のあるペアだけ外す「拒否権」を持つ。執行して記録。金曜に実績と期待値を照合。AIの役割は、相場を当てることではなく、イベントの前で降りることだけに絞りました。

9月8日深夜、最初のトレード。AUD_CHFショート883通貨、ストップロスは口座の2.00%ぴったり(−5,981円)の位置。同じ週のもう1本、EUR_AUDロングは9月10日のECB(欧州中央銀行)会合を理由にClaudeが拒否権を使いました。

2日間で学んだこと

  • 単一ペア・単一時間足のH1ルールは、10年に1回の相場(今回は円安)に依存する。優位性は「時間足を上げて、市場を広げる」ことで初めて分散した形になった
  • 負ける戦略は「信号に情報がない」とは限らない。反転とコストゼロで切り分ける
  • 探索を増やすほど、最良値はノイズの天井に近づく。事前登録した仮説だけ回す
  • 合格基準は手法の頻度だけでなく、検証期間の長さにも合わせる。1ペア3回のPFで「幅」は測れない
  • 検証期間を使い切ったあとの未知データは「これからの実弾」しかない

こうしてM1は実弾で走り始めました。——が、次の記事で書くとおり、3日後に自分で止めることになります。

BANDANAN AI FX LAB
このラボの記録は、毎週更新しています
記事の公開はXでお知らせしています。稼働中のEAと口座の推移はこちら。投資助言ではありません。
Xでフォロー資産推移

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です