🧪 AIシグナル研究日誌 #20
MA デッドクロス(ショート)62.5%の非対称性——ゴールデンクロス(ロング)29.5%との33pp差と、blocked=True 交絡の実態(過去データの集計・将来を保証しません)
第8回の研究(2026年6月15日)で「移動平均ゴールデンクロス(ma_golden)のロングシグナルは損益分岐43%を大幅に下回る23.3%——棄却確認」と発見しました。では、その裏側はどうでしょうか。MA が逆向きに交差するデッドクロス(ma_dead)のショートシグナルは、同じように損益分岐を割るのか、それとも全く逆の結果になるのか。今回はその「裏面」を正面から検証します。結果は予想外に明確でした——ただし、重要な交絡が潜んでいました。
① MA デッドクロス(signal=ma_dead)× ショート: 62.5%(20/32)CI 下限 45.3% ——過去集計では損益分岐 43% を上回り、事前宣言した統計基準(通過A)を満たした
② 同ゴールデンクロス(ma_golden)× ロング: 29.5%(13/44)——両者の差は 33.0pp。クロスシグナルは方向で真逆の結果
③ 最重要分解: blocked=True(S/R 壁あり)→ 82.4%(14/17) / blocked=False → 45.5%(5/11)——36.9pp 差
④ blocked=False は N=11 で不確定(CI が 43% をまたぐ)。エッジの実体が blocked=True に依存しているかは継続観察が必要(小サンプル)
⑤ ⚠️ 全シグナル中のベースライン勝率は 39.3%(418/1064)。すべて過去データの集計であり、将来の成績を保証するものではありません
🔍 なぜ今回この仮説か(#8との接続)
第8回(2026年6月15日)の研究では、シグナル種別の勝率マップを作り、移動平均ゴールデンクロス(ma_golden)のロングシグナルが 23.3%(7/30)CI 上限 40.9%<43% で棄却確認されました。「ゴールデンクロス = 買いシグナル」という一般的な直感に反し、当システムではロングのエッジが存在しないことが示されました。
この結果から自然に生じる問いが「では、デッドクロス(ma_dead)のショートシグナルは同様に機能しないのか?それとも正反対か?」という問いです。#8 の時点では ma_dead を探索的に記録しており、今回の研究でスイープ(FDR 多重検定補正後)で正式にエッジ候補として浮上したため(全候補中 R=+0.46 で FDR 通過)、正式検証に進むことにしました。
#8「棄却対象」: ma_golden(ロング)= 23.3%(7/30)→ CI 上限 40.9% < 43%、損益分岐割れ確定
#20「正式検証」: ma_dead(ショート)= 62.5%(20/32)→ CI 下限 45.3% ≥ 43%、通過A
📋 仮説と事前宣言
主仮説: MA デッドクロス(signal=ma_dead)× ショートシグナルの勝率は、損益分岐(43%)を Wilson CI 下限で超える正のエッジを持つ。
対照群: MA ゴールデンクロス(signal=ma_golden)× ロングシグナル(#8 で棄却確認済み・29.5%)との非対称性を確認する。
事前宣言した合否基準:
- ✅ 通過A: ma_dead × ショート 全体の 95% Wilson CI 下限 ≥ 43%、N ≥ 20
- ❌ 棄却: CI 上限 < 43%(損益分岐未達が確定)
- 🟡 継続観察: CI が 43% をまたぐ(N 不足または実際のエッジ不確定)
📊 検証結果——主仮説と対照群
tp1/tp2/sl 決済済みシグナル 1,064 件から ma_dead × ショート を抽出し、Wilson CI(95%)と期待値 R(tp1=+1.33R、tp2=+2.0R、sl=−1.0R)で集計しました。
主仮説と対照群の比較
| 条件 | k / n | 勝率 | 95% CI(Wilson) | 期待値 E(R) | 判定 |
|---|---|---|---|---|---|
| ma_dead × ショート(主仮説) | 20 / 32 | 62.5% | [45.3%〜77.1%] | +0.456 R | ✅ 通過A(CI下限45.3%≥43%) |
| ma_golden × ロング(対照群・#8) | 13 / 44 | 29.5% | [18.2%〜44.2%] | −0.312 R | ❌ 棄却確認(#8 既報) |
| 全シグナル ベースライン | 418 / 1,064 | 39.3% | [36.4%〜42.3%] | — | 参照値(tp1/tp2/sl クローズのみ) |
ma_dead × ショートは全体勝率 62.5%(20/32)、Wilson CI 下限 45.3% で損益分岐 43% を超えており、通過A(エッジ確認)を記録しました。ma_golden × ロングの 29.5% と対比すると、33.0pp の方向性非対称が浮かび上がります。過去データ上は、ゴールデンクロスの「ロング」では損益分岐を下回り、デッドクロスの「ショート」では上回る、という非対称な集計結果でした(将来の成績を示すものではありません)。
グループ別の内訳(N≥5 のみ)
| グループ | k / n | 勝率 | 95% CI | 期待値 E(R) | 備考 |
|---|---|---|---|---|---|
| other_fx(ドル建てFX) | 10 / 14 | 71.4% | [45.4%〜88.3%] | +0.664 R | 比較的高い(N小) |
| jpy_fx(円クロス) | 6 / 10 | 60.0% | [31.3%〜83.2%] | +0.398 R | N=10・CI幅大 |
| index(株価指数) | 2 / 5 | 40.0% | [11.8%〜76.9%] | −0.068 R | N=5・参考値のみ |
FX(jpy_fx + other_fx)合計では 16/24=66.7%(CI[46.7%〜82.0%]、R=+0.553)と安定しています。指数は N=5 と極めて小サンプルのため参考値に留まります。ma_dead×ショートはFX系に集中した発火パターンを持つことが確認できます。
📈 可視化: ゴールデン vs デッドの非対称性
スケール: 0%〜80%(Y軸)。赤点線=損益分岐43%。ma_dead×ショート(緑・62.5%)は損益分岐を超え、ma_golden×ロング(赤・29.5%)は損益分岐を大幅に下回る。全シグナルベースライン(灰・39.3%、tp1/tp2/sl クローズのみ)も参照。いずれも過去データの集計であり、将来の成績を保証しません。
⚠️ 重要交絡: blocked=True が主ドライバーか
62.5% という数字を前にして「エッジ確認!」で終わると早計です。データを sr_runway.blocked フィールドで分解したところ、衝撃的な差が出てきました。
| 条件 | k / n | 勝率 | 95% CI(Wilson) | 期待値 E(R) | 所見 |
|---|---|---|---|---|---|
| ma_dead × ショート × blocked=True | 14 / 17 | 82.4% | [59.0%〜93.8%] | +0.919 R | ✅ CI下限59%・N=17小 |
| ma_dead × ショート × blocked=False | 5 / 11 | 45.5% | [21.3%〜72.0%] | +0.059 R | 🟡 不確定(N=11・CI が 43% をまたぐ) |
| ma_dead × ショート 全体 | 20 / 32 | 62.5% | [45.3%〜77.1%] | +0.456 R | 通過A(全体集計) |
blocked=True(S/R 壁あり)では 82.4%(14/17)、blocked=False では 45.5%(5/11)と、差は 36.9pp にのぼります。ma_dead × ショート 全体の 32 件中 17 件が blocked=True であり、これは全シグナル平均(約 14%)の約 4 倍の比率です。
なぜ ma_dead 発火時に blocked=True が多いのか
MA25 が MA75 を下抜けるデッドクロスが起きる時、価格はすでに移動平均線より下に位置しています。この状態では、直近のサポート(安値圏の価格帯)が「壁」として機能することが多く、sr_runway.blocked=True(サポートがショート方向の前にある)の状態になりやすい構造的な理由が考えられます。つまり、「デッドクロスが発火する=価格がサポートより下に沈む形」という地合いが重なりやすい、という解釈です。
ただしこれは機械的な仮説であり、因果関係の証明ではありません。blocked=True × ma_dead という複合条件での N=17 は小サンプルであり、独立した out-of-sample 検証(前向きトラッカーによる追跡)が必要です。
📊 概念図: ma_dead × blocked=True の構造
ma_dead × ショートを blocked=True(S/R 壁あり、N=17)と blocked=False(N=11)に分解。赤点線=損益分岐43%。blocked=False は 45.5%(5/11)だが CI[21.3%〜72.0%] が 43% をまたぐため不確定(N 小)。全体62.5%のエッジは blocked=True の高勝率(82.4%)が押し上げている可能性があります。
⚠️ この検証の限界(必読)
- N=32(全体)・N=17(blocked=True)は小サンプル: Wilson CI 幅は広く(全体 45.3%〜77.1%)、真の勝率は幅広い範囲に収まる可能性があります。特に blocked=True の N=17 は非常に小サンプルです。
- blocked=True 交絡が主要因の可能性: blocked=False の単独結果(45.5%、N=11)は CI が 43% をまたいで不確定であり、ma_dead シグナル自体のエッジではなく、blocked=True との複合条件がエッジの正体かもしれません。
- in-sample(過去データ)のみ: 今回の集計はすべて過去シグナルの決済結果です。out-of-sample(前向きトラッカー)での検証が必要であり、現在は本日 2026-06-25 に新規登録し、N=0(蓄積開始直後)です。
- FX 偏りの可能性: 発火件数の 75% が FX(jpy_fx + other_fx)に集中しており、他資産クラスへの一般化は慎重であるべきです。
- トレンド分布の偏り: トレンド別では「中立・もみあい」が N=0(ma_dead はもみあい相場では発火しにくい構造)であり、下降・上昇トレンドのみのデータです。
- 将来の保証なし: 過去の勝率は将来の結果を保証するものではありません。
📡 前向きトラッカー定点観測(基準日 2026-06-25)
本日のスイープ(FDR 多重検定補正)で signal=ma_dead が edge 候補として通過し、前向きトラッカーに新規登録しました(前向き N=0・蓄積開始直後)。また、関連する複数の仮説が引き続き蓄積中です。
📡 前向きトラッカー定点観測(期待値ベース)
| 仮説 | 種別 | 宣言基準 | 前向き現在値(平均R) | 状態 |
|---|---|---|---|---|
| 指数×ロング(全足ライブ) | edge | 前向きN≥80かつ平均RのCI下限>0 | 平均R +0.43 CI[+0.17~+0.69](46/75・勝率61%) | 🟡蓄積中 |
| trend=中立・もみあい×dir=long | gate | 前向きN≥80かつ平均RのCI上限<0 | 平均R -0.00 CI[-0.30~+0.30](24/56・勝率43%) | 🟡蓄積中 |
| group=metal | gate | 前向きN≥80かつ平均RのCI上限<0 | 平均R -0.46 CI[-0.73~-0.19](12/52・勝率23%) | 🟡蓄積中 |
| 売られすぎ逆張り買い(rsi_oversold_bounce・全足) | edge | 前向きN≥80かつ平均RのCI下限>0 | 平均R -0.45 CI[-0.74~-0.17](11/47・勝率23%) | 🟡蓄積中 |
| group=other_fx×dir=long | gate | 前向きN≥80かつ平均RのCI上限<0 | 平均R -0.22 CI[-0.57~+0.13](13/39・勝率33%) | 🟡蓄積中 |
| trend=下降×dir=short | gate | 前向きN≥80かつ平均RのCI上限<0 | 平均R +0.32 CI[-0.05~+0.70](21/37・勝率57%) | 🟡蓄積中 |
| tf=4h×dir=long | gate | 前向きN≥80かつ平均RのCI上限<0 | 平均R -0.49 CI[-0.81~-0.18](8/37・勝率22%) | 🟡蓄積中 |
| trend=中立・もみあい×dir=short | edge | 前向きN≥80かつ平均RのCI下限>0 | 平均R -0.07 CI[-0.45~+0.32](14/35・勝率40%) | 🟡蓄積中 |
| blocked=True×dir=short | edge | 前向きN≥80かつ平均RのCI下限>0 | 平均R +0.00 CI[+0.00~+0.00](0/0・勝率0%) | 🟡蓄積中(本日新規登録) |
| signal=ma_dead | edge | 前向きN≥80かつ平均RのCI下限>0 | 平均R +0.00 CI[+0.00~+0.00](0/0・勝率0%) | 🟡蓄積中(本日新規登録) |
※ 抜粋表示。全登録仮説は signal-lab-tracker.json で管理。前向き値は登録日(2026-06-25)以降の決済済みシグナルで集計。
🔭 次回の研究候補
- blocked=True × ma_dead × ショートの独立検証(最優先): 前向き N が 30 を超えた段階で、blocked=True 交絡の影響を out-of-sample で評価する
- blocked=True × dir=short の単独検証: 今回スイープで blocked=True × dir=short が FDR R=+0.42 で通過(edge 新規登録)。ma_dead との組み合わせと単独の差を比較する
- ma_dead × トレンド別精緻化: 下降トレンド中の ma_dead(7/8=87.5%)は N=8 と小さい。N が積み上がれば「下降×デッドクロス」の精度を確認できる
- signal=ma_dead × blocked=False の追試: 45.5%(5/11)だが CI[21.3%〜72.0%] が 43% をまたいで不確定(N=11)。サンプルが積み上がったタイミングで棄却か継続観察かを判定する
関連記事
本記事で使用しているデータはすべて当サイト独自の自動売買シグナル(AIシグナル)の過去発火履歴(signals-log.json)を Python で集計したものです。過去の統計データであり、将来の運用成績を保証するものではありません。本記事は特定の金融商品の売買を推奨するものではなく、投資判断はすべてご自身の責任で行ってください。当サイトは金融商品取引業者ではなく、投資助言業の登録もしていません。金融商品への投資にはリスクが伴い、元本を割り込むことがあります。