| Deposit | Net SR | Net CAGR | Annual Profit | Verdict |
|---|---|---|---|---|
| ¥150 万 | 3.78 | +58.2% | +87 万 | ◎ Phase D 並走開始 |
| ¥300 万 | 5.15 | +81.0% | +243 万 | ◎ |
| ¥800 万 | 4.97 | +92.5% | +740 万 | ◎ |
| ¥3000 万 ★ | 4.77 | +96.8% | +2904 万 | CAGR ピーク |
| ¥1 億 | 3.52 | +66.2% | +6623 万 | profit ピーク |
| ¥3 億 | -7.61 | -69% | -2 億 | ✗ MI 崩壊 |
src/strategy/profit2_approach_a.py
| Period | SR (gross) | SR (net 0.76) | MDD | Win | Capacity | |
|---|---|---|---|---|---|---|
| approach_a w=2.0 (Phase A→D 継続) | 11.5y | 8.40 | 6.38 | 5.9% | 71.7% | ¥150万固定 |
| sn_approach_a (Phase D 並走) | 5y | 5.23 | 5.15 | 3.7% | 66.1% | ~¥1億 |
| PCA + GapFade (旧) | 11y | 1.79 | ~1.4 | 19.8% | ~58% | ~¥200万 |
| Crash Recovery (補助) | — | N/A | +9.7% | 8.9% | 94% | depth-based |
| Phase | Deposit | approach_a | sn_approach_a | 注記 |
|---|---|---|---|---|
| A. 全力 | ~¥150 万 | 全額投入 | — | ETF MI 天井まで |
| B. 固定+idle | ¥150–250 万 | 150万固定 | idle 待機 | sn_a 最低100万必要 |
| D. 並走 | ¥250 万~ | 150万固定 | 余剰全額 | 2α源泉同時稼働 |
| Cap (校正前) | ¥3000 万~ | 150万固定 | 校正待ち | MI 校正必須 |
| 指標 | 値 |
|---|---|
| median 到達年数 | 6.8 年 |
| P(8 年以内) | 98.3% |
| P(10 年以内) | 100.0% |
| 25%ile | 6.4 年 |
| 75%ile | 7.2 年 |
| 90%ile | 7.5 年 |
2 つの独立した α 源泉を組み合わせて長期的に資産を増やす設計。資金規模に応じて 2 戦略を並走。approach_a は退場せず 150 万固定で継続。
対象: 日本セクター ETF 15 銘柄
α 源泉: 米国引け → 日本寄りのリードラグ + 寄付 3 秒前 mid 情報
BT: 11.5 年 (2015-2026) SR 8.40, MDD 5.9%, 全 12 年 positive
approach_a: 150 万固定で継続 (ETF MI 天井付近)
余剰資金: idle 待機 (sn_approach_a は最低 100 万必要、250万 - 150万 = 100万で起動可能)
approach_a: 150 万固定で継続 (退場しない)
sn_approach_a: 余剰資金で運用。個別株 48 銘柄 / 10 セクター、sector-neutral
BT (sn_a): 5 年 (2021-2026) SR 5.23, MDD 3.69%, OOS SR 5.87
両方とも 純イントラデイ (毎日 寄付買 → 引成売、持ち越しなし)。信用デイトレ枠で手数料・金利・貸株料すべて 0 円。
並走モデル: approach_a は 150 万固定で走り続け、sn_approach_a は余剰で独立運用。2 つの独立 α 源泉を同時稼働。
毎朝 8:59:57 (寄付の 3 秒前) に以下を実行:
1. 当日朝 07:30 に GitHub Actions の daily_signal.yml が計算した
「PCA score」を読む (= 米国市場前夜引け → 日本セクターの本日の予測リターン)
2. kabu API から 15 銘柄全部の現在 mid (= 寄付推定価格) を取得
3. 各銘柄について:
observed_z = (mid / 前日終値 - 1) を z-score 化
residual = signal_z - 2.0 × observed_z
↑ PCA 予測から「8:59:57 までに既実現した分」を引いた残りエッジ
4. residual 上位 4 銘柄 → LONG
residual 下位 4 銘柄 → SHORT
5. 9:00:00 寄付成行で 8 銘柄発注、15:25 引成で全決済
米国引け (前日 5:00 JST) → 日本寄り (9:00 JST) は 4 時間のラグ。 この間に PCA モデルが予測する「JP セクターが今日動くべき方向」が、 寄付までに どこまで実現したか を見る。
subtract_weight = 2.0 は「実現分の 2 倍を割引く」係数。
5 年 BT で w=1.5-2.0 plateau 確認、overfit ではない。
| 項目 | 結果 |
|---|---|
| 11.5 年 BT (2015-2026) SR (gross) | 8.40 |
| Net SR (look-ahead × 0.95 × cost × 0.80 = 0.76) | 6.38 |
| 全年 positive | 12 年連続 ✓ |
| MDD | 5.9% |
| 勝率 | 71.7% |
| ablation 検証 (yesterday_reversal / pure_mr 切り分け) | overfit でない ✓ |
| 3 秒前 mid retention | 0.95 想定 (Phase B 実測待ち) |
| 年 | SR ann | 年 | SR ann |
|---|---|---|---|
| 2015 | +12.15 | 2021 | +6.04 |
| 2016 | +11.92 | 2022 | +8.48 |
| 2017 | +10.93 | 2023 | +5.21 |
| 2018 | +8.22 | 2024 | +7.32 |
| 2019 | +7.61 | 2025 | +6.79 |
| 2020 | +8.93 | 2026 (YTD) | +12.38 |
重要: sn_approach_a は PCA を使わない。
個別株 PCA モデルが存在しないため、approach_a の signal_z (PCA 由来) の代わりに
slow_z (yesterday CC reversal) を使う。
ETF の approach_a と 数式は同じだが、入力 signal が違う。
1. 日本個別株 48 銘柄 (10 セクター × 4-6 銘柄) を対象
2. 各セクター内で 2 つの z-score を計算:
slow_z = (D-2 close → D-1 close) のセクター内 z-score
↑ approach_a の signal_z (PCA) の代わりに使う「方向の predictor」
obs_z = (D-1 close → D 9:00 mid) のセクター内 z-score
↑ 今朝までに既に実現した分
3. residual ranking:
score = slow_z - 2.0 × obs_z
↑ 前日上昇 + 今朝下げ = score 高 = LONG 候補
↑ 前日下落 + 今朝上げ = score 低 = SHORT 候補
(approach_a と完全に同じ数式、入力 signal が PCA → yesterday CC に変わるだけ)
4. 各セクターで score 上位 1 銘柄 LONG, 下位 1 銘柄 SHORT
= 10 セクター × (1 long + 1 short) = 22 銘柄 trade
5. 9:00 寄付成行 → 15:25 引成で全決済
| approach_a (ETF) | sn_approach_a (Stocks) | |
|---|---|---|
| slow signal | PCA リードラグ (米国引け→日本寄り) | Yesterday CC reversal (前日終値→終値) |
| 観測 (obs) | 8:59:57 mid (寄付直前) | 9:00 mid (寄付推定) |
| residual | PCA 予測の「未消化分」 | 前日 reversal の「未消化分」 |
| エッジ性質 | リードラグ | Cross-sectional mean reversion |
ETF の approach_a は「米国セクター → 日本セクター」のリードラグを PCA で捉える。個別株では:
→ 同じ residual ranking フレームで、入力だけ「PCA」から「前日 reversal」に差し替える設計。
Cross-sectional mean reversion (横断的平均回帰): 同セクター内で、前日上がった銘柄ほど今朝弱い という統計的傾向。 個人投資家の overreaction や algo の反転狙いから生まれる。
セクター中立 (long と short 同セクター) なので:
48 銘柄 = 10 セクター × 4-6 銘柄。全期間 BT で 下位 4 銘柄を除外:
(年次 BT で 3 年以上 bottom 10 入り + 全期間 cum マイナス)
| 項目 | 結果 |
|---|---|
| 5 年 BT (2021-2026) SR | 5.23 |
| MDD | 3.69% |
| OOS SR (2024-2026) | 5.87 (IS より良い) |
| 4 銘柄除外の robustness | stability test 通過 ✓ |
| profit2/ 過去研究との分離検証 (Test B/C/D) | 独立 α 源泉 ✓ |
| deposit | net SR | net CAGR | 判定 |
|---|---|---|---|
| 150 万 | 3.78 | +58% | ◎ Phase D 並走開始可能 |
| 300 万 | 5.15 | +81% | ◎ |
| 800 万 | 4.97 | +93% | ◎ |
| 3000 万 | 4.77 | +97% | ◎ CAGR ピーク |
| 1 億 | 3.52 | +66% | ◎ profit 金額ピーク |
| 3 億 | -7.61 | -69% | ✗ MI で崩壊 |
deposit < 150 万円: → Phase A: approach_a 全額投入 → ETF MI なし、全力運用 deposit ∈ [150 万, 250 万]: → Phase B: approach_a 150 万固定 + 余剰 idle → sn_approach_a は最低 100 万必要のため待機 deposit > 250 万円: → Phase D: approach_a 150 万固定 + sn_approach_a 余剰全額 → 2 つの独立 α 源泉を並走 → approach_a は退場しない (150 万固定で継続)
前提: 30 万円スタート + 月 5 万円入金, 公式 haircut 0.76 適用
| 月 | deposit | 戦略 |
|---|---|---|
| 1 | 30 → 37 万 | Phase A (approach_a 全力) |
| 4 | 54 → 66 万 | Phase A (approach_a 全力) |
| 12 | 156 → 168 万 | Phase B (approach_a 150万固定 + idle) |
| 18 | 238 万 | Phase B → D 移行 (sn_a 起動) |
| 24 | 354 万 | Phase D (並走: a150万 + sn_a 余剰) |
| 36 | 742 万 | Phase D 並走 |
| 48 | 1527 万 | Phase D 並走 |
| 60 | 3090 万 | Phase D 並走 (sn_a ピーク帯) |
| 72 | 6017 万 | Phase D 並走 |
| 82 | 10181 万 | 1 億 達成 |
| 指標 | 値 |
|---|---|
| 1 億到達 median | 6.8 年 |
| P(8 年以内) | 98.3% |
| P(10 年以内) | 100.0% |
| 25%ile | 6.4 年 |
| 75%ile | 7.2 年 |
| 90%ile | 7.5 年 |
| 項目 | 旧 PCA + GF | approach_a | sn_approach_a |
|---|---|---|---|
| 入力 | 米国引値 (PCA) | 同 + 8:59:57 mid | 個別株 D-1/D mid |
| ロジック | GapFade (gap >1%) | residual ranking | sector-neutral MR |
| 取引銘柄 | 8 (4L+4S) | 8 (4L+4S) | 22 (10sec×2) |
| 11.5 年 SR | 1.79 | 8.40 | — |
| 5 年 SR | ~2-3 | ~7+ | 5.23 |
| 運用資金 | 30 万~ | 150 万固定 | 余剰 (250万~) |
| capacity 天井 | ETF 流動性 | ETF MI (~150 万) | 個別株 MI (~1 億) |
| 並走時の役割 | 廃止 | Phase A→D 常時稼働 | Phase D で並走 |
| 項目 | 場所 |
|---|---|
| approach_a 実装 | src/strategy/approach_a.py |
| sn_approach_a 実装 | src/strategy/profit2_approach_a.py |
| 11.5 年 BT スクリプト | scripts/research/long_bt_approach_a_15y.py |
| capacity ladder | scripts/research/sn_approach_a_ticker_mi.py |
| 1 億到達計算 (Monte Carlo) | .claude/memory/project_approach_a_holy_grail.md |
| look-ahead 補正の根拠 | HANDOVER.md L680-684 |
| このページの markdown 元 | docs/STRATEGIES.md |
Last updated: 2026-04-11 / Strategy version: approach_a_w2.0 + sn_approach_a (4-ticker exclusion)
subtract_weight = 2.0 採用根拠。
residual = signal_z − w × observed_z で「残りエッジ」を計算し、それで re-rank → 新 long 4 / short 4 を選定。
| strategy | days | cum P&L | SR (ann) | MDD | win rate |
|---|---|---|---|---|---|
| yesterday_reversal (no look-ahead baseline) | 2743 | +83.1% | +0.64 | 41.5% | 52.0% |
| approach_a w=0.5 | 2743 | +665.2% | +5.26 | 7.7% | 64.3% |
| approach_a w=1.0 | 2743 | +973.8% | +7.45 | 6.3% | 70.1% |
| approach_a w=2.0 ★ (production) | 2743 | +1142.7% | +8.40 | 5.9% | 71.7% |
| pure_mr (w=∞, observation only) | 2743 | +1160.8% | +8.24 | 6.2% | 72.1% |
| 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | 2026 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| +12.15 | +11.92 | +10.93 | +8.22 | +7.61 | +8.93 | +6.04 | +8.48 | +5.21 | +7.32 | +6.79 | +12.38 |
scripts/research/long_bt_approach_a_15y.py /
結果: output/long_bt_approach_a_15y.json