blindTest V16 vs karmaResearch V9
5 參數簡單系統 vs 20+ 參數複雜系統
| Train Return | Train Sharpe | Val Return | Val Sharpe | Test Return | Test Sharpe | Full Sharpe | MaxDD | Val/Train | 參數數 |
| V16 |
+159% | 2.04 |
+49% | 2.19 |
+30.5% | 1.84 |
2.00 | 18.2% |
0.31 | 5 |
| V9 |
+146% | 2.20 |
+99% | 3.37 |
-3.8% | -0.13 |
2.15 | 16.4% |
0.68 | 20+ |
V16 — 完整流程(一張圖看完)
flowchart TD
START["每根 K 棒"] --> WAIT{"有掛單?\nOR 暖機中?"}
WAIT -->|是| SKIP["跳過"]
WAIT -->|否| HAS_POS{"有持倉?"}
HAS_POS -->|無| ENTRY["進場判斷"]
HAS_POS -->|有| EXIT["出場判斷"]
ENTRY --> HOUR{"幾點 UTC?"}
HOUR -->|"06-12"| TH_ACTIVE["閾值 = 2000"]
HOUR -->|"其他"| TH_OFF["閾值 = 5000"]
TH_ACTIVE & TH_OFF --> OB_CHECK{"ob_dif > 閾值?"}
OB_CHECK -->|否| SKIP
OB_CHECK -->|是| BB_CHECK{"price <= BB upper?\n(240h, 1.5σ)"}
BB_CHECK -->|否| SKIP
BB_CHECK -->|是| LIQ_CHECK{"overall_liq\n>= Q95?"}
LIQ_CHECK -->|是| BUY_15["買入 1.5x"]
LIQ_CHECK -->|否| BUY_10["買入 1.0x"]
EXIT --> EXIT_CHECK{"ob_dif < 0\nOR 持倉 >= 24h?"}
EXIT_CHECK -->|是| CLOSE["平倉"]
EXIT_CHECK -->|否| HOLD["繼續持有"]
style START fill:#1f6feb,color:#fff
style BUY_15 fill:#238636,color:#fff
style BUY_10 fill:#238636,color:#fff
style CLOSE fill:#da3633,color:#fff
style SKIP fill:#30363d,color:#8b949e
V16 參數(全部 5 個)
active_entry
2000
06-12 UTC ob_dif 閾值
offpeak_entry
5000
其他時段 ob_dif 閾值
bb_period / bb_std
240 / 1.5
BB 上軌 veto
leverage / liq_leverage
1.0 / 1.5
基礎 / 爆倉確認
V9 — 簡化流程
flowchart TD
START2["每根 K 棒"] --> SHORT_Q{"持空?"}
SHORT_Q -->|是| SHORT_MGR["空單管理\n4 種出場條件\nadaptive sizing\n3 tranches"]
SHORT_Q -->|否| REBAL{"24h rebal?"}
REBAL -->|否| SKIP2["跳過"]
REBAL -->|是| REGIME["Regime 判斷\nBB(2000h, 1.3σ)"]
REGIME --> R_BEAR{"BEAR?"}
R_BEAR -->|是| TRY_SHORT{"MPI(12h) > 65\nprice < SMA(200)?"}
TRY_SHORT -->|是| DO_SHORT["開空"]
TRY_SHORT -->|否| LONG_SIZE["做多 sizing"]
R_BEAR -->|否| LONG_SIZE
LONG_SIZE --> SIGNALS["計算底部訊號\n(ARI, ob_dif, skew, usdc)"]
SIGNALS --> S0{"0 個訊號"}
SIGNALS --> S12{"1-2 個"}
SIGNALS --> S3{"3+ 或 strong"}
S0 --> MPI_N["MPI neutral\n(6 段 lookup)"]
S12 --> POS70["0.70x"]
S3 --> POS200["2.0-3.0x"]
MPI_N & POS70 & POS200 --> EXIT_MULT["MPI monthly exit\n(720h window)\nMPI scalp target"]
EXIT_MULT --> DD_CAP["DD 保護\n8% → 2x\n15% → 1.5x\n22% → 0.7x"]
DD_CAP --> HARD_CAP["3x 硬上限"]
HARD_CAP --> EXEC["調整倉位"]
style START2 fill:#1f6feb,color:#fff
style SHORT_MGR fill:#da3633,color:#fff
style DO_SHORT fill:#da3633,color:#fff
style EXEC fill:#238636,color:#fff
style SKIP2 fill:#30363d,color:#8b949e
核心差異
V16 — 簡單
Long only 5 參數 1 個指標 (ob_dif)
- 進場:ob_dif 超過閾值 + BB veto
- 出場:ob_dif 歸零 or 24h timeout
- 不做空,不用 regime
- BB 只做 veto(不進場依據)
- overall_liq 只調 leverage(1x vs 1.5x)
V9 — 複雜
Long + Short 20+ 參數 6+ 指標
- 進場:4 個底部指標 × 2 級 + MPI neutral
- 出場:MPI monthly range + scalp target
- 做空系統(3 tranches, adaptive, confirmations)
- BB regime 切換 (BULL/BEAR)
- DD 保護 3 級
關鍵觀察
| 觀察 | 結論 |
| V9 Val Sharpe 3.37 但 Test -3.8% | Val 被間接 overfit(幾百次迭代看 Val 數字) |
| V16 Val Sharpe 2.19 但 Test +30.5% | 簡單系統泛化能力更好 |
| V16 只用 ob_dif 一個指標 | ob_dif 是真正有 alpha 的核心訊號 |
| V9 的 MPI/ARI/skew/usdc 疊加 | 可能大部分是 noise fitting |
| V16 不做空 | 做空系統增加複雜度但未必增加 alpha |
| V16 用時段過濾 (06-12 UTC) | 亞洲盤時段 ob_dif 更有效 |