| Deposit | Net SR | Net CAGR | Annual Profit | Verdict |
|---|---|---|---|---|
| ¥150 万 | 3.78 | +58.2% | +87 万 | ◎ Phase 2 開始 |
| ¥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 1) | 11.5y | 8.40 | 6.38 | 5.9% | 71.7% | ~¥200万 |
| sn_approach_a (Phase 2) | 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 | 注記 |
|---|---|---|---|---|
| 1A. Ramp-up | ¥30–36 万 | 100% lev1.67 | — | CAGR ~26% |
| 1B. Growth | ¥36–54 万 | 100% lev2.0 | — | CAGR ~31% |
| 1C. Expand | ¥54–150 万 | 100% lev3.0 | — | CAGR ~47% |
| 移行期 | ¥150–200 万 | MI 効き始め | 起動可能 | BT mean 高い方 |
| 2. Phase 2 | ¥200 万–¥3000 万 | 退場 | 100% | CAGR 70-97% |
| 3. Cap (校正前) | ¥3000 万–¥1 億 | — | 校正待ち | 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 つの独立した α 源泉を組み合わせて長期的に資産を増やす設計。資金規模に応じて自動で最適戦略に切替。
対象: 日本セクター ETF 15 銘柄
α 源泉: 米国引け → 日本寄りのリードラグ + 寄付 5 秒前 mid 情報
BT: 11.5 年 (2015-2026) SR 8.40, MDD 5.9%, 全 12 年 positive
対象: 日本個別株 48 銘柄 (10 セクター, sector-neutral)
α 源泉: cross-sectional mean reversion (横断的平均回帰)
BT: 5 年 (2021-2026) SR 5.23, MDD 3.69%, OOS SR 5.87
両方とも 純イントラデイ (毎日 寄付買 → 引成売、持ち越しなし)。信用デイトレ枠で手数料・金利・貸株料すべて 0 円。
毎朝 8:59:55 (寄付の 5 秒前) に以下を実行:
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:55 までに既実現した分」を引いた残りエッジ
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 でない ✓ |
| 5 秒前 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:55 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 2 開始可能 |
| 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 1 (approach_a) のみ → ETF MI なし、CAGR 100%+ 圏 deposit ∈ [150 万, 200 万]: → 移行期、両方候補 → BT mean 比較で良い方を選択 deposit > 200 万円: → Phase 2 (sn_approach_a) のみ → 個別株、CAGR 60-95% 圏 (deposit 依存)
前提: 30 万円スタート + 月 5 万円入金, 公式 haircut 0.76 適用
| 月 | deposit | 戦略 |
|---|---|---|
| 1 | 30 → 37 万 | Phase 1 (lev 1.67x) |
| 4 | 54 → 66 万 | Phase 1 (lev 3.0x 開始) |
| 12 | 156 → 168 万 | Phase 1 (MI 効き始め) |
| 18 | 238 万 | Phase 2 切替済 |
| 24 | 354 万 | Phase 2 加速 |
| 36 | 742 万 | Phase 2 |
| 48 | 1527 万 | Phase 2 |
| 60 | 3090 万 | Phase 2 ピーク帯 |
| 72 | 6017 万 | Phase 2 |
| 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:55 mid | 個別株 D-1/D mid |
| ロジック | GapFade (gap >1% で反転) | residual ranking | sector-neutral MR |
| 取引銘柄 | 8 (4 long + 4 short) | 8 (同) | 22 (10 sec × 2) |
| 11.5 年 SR | 1.79 | 8.40 | — |
| 5 年 SR | ~2-3 | ~7+ | 5.23 |
| 必要資金 | 30 万~ | 30 万 ~ 200 万 | 150 万 ~ 3 億 |
| capacity 天井 | ETF 流動性 | ETF 流動性 (~200 万) | 個別株 MI (~1 億) |
| 項目 | 場所 |
|---|---|
| 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