2026/09/05
2026/09/03
20260903
綜合行動結論
- 大腦淨力腦 看空 ▼ 信心 高 決斷 ✔ 機率(▲9|區間 19|▼72)
- 四象限儀表盾 dir_s=+0.0443 流 dir_f=-0.4789 (日盤矛) 守攻 pin_q=+0.2062 均衡 bal=0.1815 │ 門檻 θ_dir 0.20 · θ_pin 0.20 · θ_bal 0.33 │ 守上 11,539 · 守下 2,094 · 攻 8,973 (盾的四象限聚合)
- 三劇本上行 (15) 先攻 46,300, 突破後看上方 │ 區間 (20) 於支撐壓力間震盪消耗, 邊界未破前高拋低接 │ 下行 (65) 下方無可靠流量錨
- 認定劇本看空 ▼ (與大腦這一拍同向) │ 待補建(已認定但倉還沒建齊) │ 上次轉倉 2026-09-02 16:47 本週期第 3 次 收租結構 BCS
2026/09/02
20260902
綜合行動結論
- 大腦淨力腦 看空 ▼ 信心 低 非決斷 ✘ 機率(▲14|區間 27|▼59)
- 四象限儀表盾 dir_s=-0.1373 流 dir_f=-0.3238 (日盤矛) 守攻 pin_q=+0.6323 均衡 bal=0.4867 │ 門檻 θ_dir 0.20 · θ_pin 0.20 · θ_bal 0.33 │ 守上 29,587 · 守下 14,400 · 攻 9,908 (盾的四象限聚合)
- 三劇本上行 (33) 先攻 46,400, 突破後看上方 │ 區間 (33) 於支撐壓力間震盪消耗, 邊界未破前高拋低接 │ 下行 (34) 下方無可靠流量錨
- 認定劇本尚無認定劇本 (bot 自本輪啟動以來未觸發過劇本轉換)
- 影子腦決策 (參考)計票腦 盤整 —(認定 看空 ▼) 信心 高 非決斷 ✘ 機率(▲12|區間 45|▼43) │ 流量腦 盤整 —(認定 盤整 —) 信心 低 非決斷 ✘ 機率 —(缺席)
2026/09/01
20260901
綜合行動結論
- 大腦VOTE → 看多 ▲ 信心 高 決斷 ✔ 票 4多/0空 score 43.70(八證據) 機率(▲57|區間 30|▼13) 一致度 1.00(>= 0.8 高 / >= 0.65 中 / 其餘 低)
- 三劇本上行 (57%) 上方無可靠流量錨 │ 區間 (30%) 於支撐壓力間震盪消耗, 邊界未破前高拋低接 │ 下行 (13%) 先破 46,500, 跌破後看下方
- 認定劇本看多 ▲ (與大腦這一拍同向) │ 待補建(已認定但倉還沒建齊) │ 上次轉倉 2026-08-31 13:30 本週期第 3 次 收租結構 BCS
- 影子腦決策流量腦 看多 ▲(認定 看多 ▲) 信心 高 決斷 ✔ 機率(▲78|區間 15|▼7) │ 淨力腦 看多 ▲(認定 看多 ▲) 信心 中 非決斷 ✘ 機率(▲75|區間 17|▼8)
2026/08/28
20260828
綜合行動結論
- 大腦VOTE → 盤整 — 信心 中 非決斷 ✘ 票 1多/2空 score 1.37(八證據) 機率(▲31|區間 40|▼29) 一致度 0.67(>= 0.8 高 / >= 0.65 中 / 其餘 低)
- 三劇本上行 (31%) 先攻 46,400, 突破後看上方 │ 區間 (40%) 於支撐壓力間震盪消耗, 邊界未破前高拋低接 │ 下行 (29%) 下方無可靠流量錨
- 認定劇本尚無認定劇本 (bot 自本輪啟動以來未觸發過劇本轉換)
- 影子腦決策流量腦 盤整 —(認定 盤整 —) 信心 低 非決斷 ✘ 機率 —(缺席) │ 淨力腦 盤整 —(釘)(認定 盤整 —) 信心 高 決斷 ✔ 機率(▲6|區間 88|▼6)
2026/08/27
20260827
綜合行動結論
- 大腦VOTE → 看空 ▼ 信心 高 決斷 ✔ 票 0多/2空 score -23.05(八證據) 機率(▲22|區間 30|▼48) 一致度 1.00(>= 0.8 高 / >= 0.65 中 / 其餘 低)
- 三劇本上行 (22%) 先攻 46,300, 突破後看上方 │ 區間 (30%) 於支撐壓力間震盪消耗, 邊界未破前高拋低接 │ 下行 (48%) 先破 45,500, 跌破後看下方
- 認定劇本盤整 — ⚠ 大腦這一拍已改口 看空 ▼ │ 上次轉倉 2026-08-27 13:35 本週期第 5 次 收租結構 BPS
- 影子腦決策流量腦 盤整 —(認定 盤整 —) 信心 高 決斷 ✔ 機率(▲8|區間 79|▼13) │ 淨力腦 看空 ▼(認定 盤整 —) 信心 低 非決斷 ✘ 機率(▲15|區間 29|▼56)
2026/08/26
20260826 16:05
綜合行動結論
- 大腦VOTE → 盤整 — 信心 中 非決斷 ✘ 票 2多/1空 score 2.87(八證據) 機率(▲31|區間 40|▼29) 一致度 0.67(>= 0.8 高 / >= 0.65 中 / 其餘 低)
- 三劇本上行 (31%) 先攻 46,000, 突破後看上方 │ 區間 (40%) 於支撐壓力間震盪消耗, 邊界未破前高拋低接 │ 下行 (29%) 下方無可靠流量錨
- 認定劇本尚無認定劇本 (bot 自本輪啟動以來未觸發過劇本轉換)
- 影子腦決策流量腦 盤整 —(認定 盤整 —) 信心 高 決斷 ✔ │ 淨力腦 看多 ▲(認定 ∅) 信心 低 非決斷 ✘
2026/08/25
20260825
綜合行動結論
- 大腦VOTE → 看多 ▲ 信心 中 非決斷 ✘ 票 3多/1空 score 36.91(八證據)
- 三劇本上行 (46%) 先攻 45,800, 突破後看上方 │ 下行 (14%) 先破 44,600, 跌破後看下方 │ 區間 (40%) 於支撐壓力間震盪消耗, 邊界未破前高拋低接
- 認定劇本看多 ▲ (與大腦這一拍同向) │ 上次轉倉 2026-08-25 12:46 本週期第 5 次 收租結構 BCS
- 三向量力場斜率盾 m_S=+4,778 風 m_W=-2,312 矛 m_P=-1,067 │ σ√τ (= EM) 598.5 點
- 影子腦決策流量腦 盤整 — 信心 高 決斷 ✔
2026/07/31
2026/07/07
不由得嘴角上揚
好不容易完成的初版 - 選擇權交易機器人, 今晚寫了以下的 log, 讓我不由得嘴角上揚!
不是它有多厲害, 是我終於建立了專屬於我的自動下單機, 而且賦予了它我接近20年的全職操作選擇權經驗(手動)
[22:12:00] terrain 重新載入 (Spot=45386, DTE=1.0, basis=+61, Night盤)
[22:13:00] terrain 重新載入 (Spot=45356, DTE=1.0, basis=+53, Night盤)
[22:13:00] terrain 已歸檔 → Terrain_20260707_221218.txt | Predict: ▲上 18% | 區間 30% | ▼下 52% 一致性: 高(0多/3空) 決斷度: +22pt | 空手
[22:14:00] terrain 重新載入 (Spot=45340, DTE=1.0, basis=+53, Night盤)
[22:14:00] [轉倉完成] DOWN→DOWN 結構=['KICK_DN'] 單數=2 總口=2 (未建全: 報價閘: TX247000G6: spread 1.4 > 上限 0.6 (bid=4.5 ask=5.9); BUY_PUT44950 debit 201 > 預算 100)
==============================================================================
OPBOT 選擇權 PAPER TRADE — 留倉現況
==============================================================================
更新時間 : 2026-07-07 22:14:00 模式: LIVE(paper) (EXEC=paper, 未送任何真實委託)
前緣週選 : TX2202607 到期 2026-07-08 13:30 (DTE=0.64)
小台 Spot : 45393 Predict 上15%/區30%/下55% 一致=高 決斷度=+25pt top=DOWN
Terrain : OK [Night盤/Classic] (Spot=45340, DTE=0.64(自算), 產出 07/07 22:13, MaxGamma 47000(SELLER_CALL) | 籌碼Predict 漲15%/盤30%/跌55% 一致100%)
策略模式 : V5 terrain-driven+payoff+vol對稱 | 持倉劇本=DOWN | 最近trigger=2026-07-07T21:55 (本週期 2 次) | ★補建 pending
Payoff對齊 : ChartB斜率@spot +7130口 | ρ(書,B)=-0.90 | ChartA兩平 — 高原 (44600, 45350) | ★上棒閘否決
市場Payoff : ▇▇▇██████████▇▇▇▆▅▅▄▃▃▂▁ (44340~46340, ChartA振幅 3,596,800 點·口)
Vol量尺 : EM=±688點(ATM straddle) | IVw=38.5% IVn=35.4% 期限比=1.09 | RV(1d/2d/5d)=35%/34%/34% VRP=1.13 [賣閘 SHADOW]
------------------------------------------------------------------------------
# 合約 買賣 口數 成交均價 現價 浮損(點) 進場理由
1 TX245300S6 買 1 322.0 320.0 -2.0 KICK_DN 買凸性 (debit 78.0)
2 TX245100S6 賣 1 244.0 245.0 -1.0 KICK_DN 降 debit 腿
------------------------------------------------------------------------------
風險狀態 : 總口數 2/20 | Defined-Risk 最大損失 78.0 點 = NT$3,900 | 不變式自檢 PASS
Payoff檢核 : 組合C份額 0.50 | WCL/MaxGain=inf (Rule5.2 參考值, ≤1 佳)
True Payoff: 已實現 +0.0 + 未實現 -3.0 − 摩擦成本 3.0 (1.5點/腳) = -6.0 點 (NT$-300)
==============================================================================
歷史軌跡 (時序; 由此可完整重建上方留倉)
==============================================================================
時間 事件 動作 合約 口 價 實現(點) 總口 理由
2026-07-07 22:14:00 TRIG_DOWN→DOWN 買 TX245300S6 1 322.0 0.0 1 KICK_DN 買凸性 (debit 78.0)
2026-07-07 22:14:00 TRIG_DOWN→DOWN 賣 TX245100S6 1 244.0 0.0 2 KICK_DN 降 debit 腿
==============================================================================
[22:15:00] terrain 重新載入 (Spot=45313, DTE=1.0, basis=+51, Night盤)
[22:15:00] [報價鏈] TX2202607 中心 45364 ±2036 → 188 檔
[22:16:00] terrain 重新載入 (Spot=45312, DTE=1.0, basis=+37, Night盤)
[22:16:00] terrain 已歸檔 → Terrain_20260707_221518.txt | Predict: ▲上 17% | 區間 30% | ▼下 53% 一致性: 高(0多/3空) 決斷度: +23pt | 留倉 2口 未實現+2.0點
[22:16:00] [報價鏈] TX2202607 中心 45349 ±2051 → 190 檔
[22:17:00] terrain 重新載入 (Spot=45328, DTE=1.0, basis=+30, Night盤)
[22:18:01] terrain 重新載入 (Spot=45305, DTE=1.0, basis=+40, Night盤)
[22:18:01] [報價鏈] TX2202607 中心 45345 ±2055 → 190 檔
2026/04/29
要找到具有 alpha potential 的策略真的很難
幾乎所有(99.99%)的策略在 pipeline: CPCV C(5,3) 10 (IS/OOS) combs (5年資料, 切割每1年為1個 fold 共 5 folds) -> Bootstrap CI 1.05 -> 26-grid Plateau -> WFA (4 anchored expanding windows) -> Risk Control sweep -> Stratified Top-N Ranking -> Blind Test (holdout) 1 年資料 的淬鍊之下都會陣亡
回測了快一個月, 下面是最有 potential 的一個
2026/04/12
策略(Trend, Swing, Dual)在選擇權上的應用可能性? (回測結果終於出爐)
Axis Strategy : CPCV v4 Non-Sequential 4-Combo Backtest Report
https://individual-trader.blogspot.com/2021/04/blog-post_18.html
━━━━━━━━━━━━━ ━━━━━━━━━━━━━━
目標:開發出一套台指期貨和選擇權買賣兩方全都適用的方向或調整點指標
特性:當 TX 期貨端能用 → 選擇權買方可用機率高;但賣方特性迥異,無法共用期貨勝出的參數,必須另外按照選擇權賣方特性擇優
開發策略 + 自建 Python 回測平台:3 週
回測 (v1 ~ v4):5 天(還好 backtest 平台沒當機,應該是我把 DRAM 拔掉兩根共 32G 更穩定)
策略版本:Dual Axis (POC Unpruned Matrix) + Stage 2 Risk Control
回測標的:MXF 小台指期貨 (1-min 連續資料)
資料期間:2020-03-02 ~ 2026-03-31 (1,814 交易日,6.1 年)
WFA 結構:Combinatorial Purged Cross-Validation (CPCV), 4 Non-Sequential Combos
Stage 1 組合數:1,166,400 x 8 runs (4 combos x IS/OOS) = 9,331,200 次信號評估
Stage 2 組合數:3,334 seeds x 1,145 risk combos x 8 runs = 7,634,860 次
評分公式:(Net_Profit / (|MDD|+1)) * Net_PF * (Win_Rate/100)
報告日期:2026-04-12
整套回測引擎、篩選管線、交叉驗證框架、分析報表全部自行用 Python 開發(Numba JIT 加速核心回測迴圈、multiprocessing 多核平行化、自動化 Stage 1→篩選→Stage 2→跨 Combo 交集的完整 pipeline)。
版本差異:v4 打破 v2/v3 的 Anchored Expanding 順序結構,改用非連續時間區塊的自由組合,驗證策略在任意市況拼接下的穩健性。IS 不再被迫從 COVID 熊市起始,Trend 策略首次獲得「公平起跑線」。
━━━━━━━━━━━━━━━━━━ ━━━━━━━━━
【核心發現摘要 Executive Summary】
1. 763 萬次 Stage 2 回測,只有 842 個 (0.011%) 活了下來。4 道 Gate、4 段非連續 OOS 環境淬鍊,Confidence A 級 238 個 (0.0031%)。v4 的通過率是 v3 (0.0052%) 的 2 倍——不是因為更寬鬆,而是因為 CPCV 的非連續 OOS 涵蓋了更多市況組合,讓更多 Swing 策略有機會在不同排列中展示穩健性。
2. K=15 Swing_Only 取代 K=20 成為絕對王者。全部 842 個倖存者中,K=15 佔 687 個(81.6%),A 級 219 個。K=20 僅 155 個(18.4%),A 級只有 19 個。v3 冠軍 K=20 在 v4 的非連續驗證中被 K=15 徹底壓制。當 IS 起點不再被錨定在 COVID 後的極端波動期,K=15 的中頻均值回歸顯示出更強的跨市況適應力。
3. Trend_Only 再次全軍覆沒——即使獲得了「公平起跑線」。v4 的設計初衷是讓 Trend 有機會:C1 的 IS 從 AI 牛市開始,C3 只用 2 年純牛市做 IS。但結果 0 個 Trend 策略通過 4-Gate。Trend 的問題不是 IS 起點偏差,而是本質上無法在跨市況 OOS 中維持 PF > 1.0。這是 v4 最重要的結論——它用實驗設計排除了 v3 報告中「IS 錨定偏誤可能壓制 Trend」的假說。
4. 冠軍配備追蹤停利,年均交易 205 筆。與 v3 冠軍的「裸奔」28 筆/年形成鮮明對比。v4 冠軍是一個更活躍、帶追蹤停利的策略——4 段 OOS 累計淨利 112.8 萬,平均 PF=1.45,最差 combo 仍有 PF=1.21。v4 選出的是「中頻穩定型」而非 v3 的「低頻精準型」。
━━ ━━━━━━━━━━━━━━━━━━━━ ━━━━
【1. 績效全景縱向分析 Performance Landscape】
▍1.1 CPCV 區塊定義與組合設計
6 年資料切分為 6 個約 1 年的區塊,按市場特徵命名:
● A (2020/03 - 2021/03):COVID 復甦
● B (2021/04 - 2022/03):升息前夕
● C (2022/04 - 2023/03):升息熊
● D (2023/04 - 2024/03):AI 市
● E (2024/04 - 2025/03):高檔震盪
● F (2025/04 - 2026/03):關稅戰
4 個 CPCV 組合:
● C1:IS=[D,E,F] 3yr → OOS=[A,B,C]
設計意圖:牛市起始 IS,驗古 3 年
● C2:IS=[C,D,E] 3yr → OOS=[A,B,F]
設計意圖:含熊+牛 IS,OOS 含最新
● C3:IS=[D,E] 2yr → OOS=[A,B,C,F]
設計意圖:最短牛市 IS,4 段 OOS 最嚴格
● C4:IS=[A,D,E,F] 4yr → OOS=[B,C]
設計意圖:跳過升息期,驗 Trend 在熊市的生死
設計邏輯:v2/v3 的 IS 都從 2020/03(COVID + 升息熊市)開始,天生不利 Trend。v4 的 C1/C3 讓 IS 從 AI 牛市開始,C4 跳過升息期,給 Trend 最公平的機會。即便如此,Trend 仍然全軍覆沒。
▍1.2 Stage 1 信號績效熱圖 (Score)
以 C2(IS 含熊+牛+震盪,最平衡)的 S1 為例,各 K-bar x Axis 最高 Score:
● K=1:Trend 7.87(最強軸向 Trend)
● K=3:Trend 4.35 / Swing 5.20(最強 Swing
● K=5:Trend 2.33 / Swing 10.96(最強 Swing)
● K=10:Trend 5.13 / Swing 5.20 / Dual 2.89(最強 Swing)
● K=15:Trend 6.27 / Swing 14.17 / Dual 9.13(最強 Swing=王座)
● K=20:Trend 5.31 / Swing 12.78 / Dual 9.13(最強 Swing)
● K=30:Trend 3.84 / Swing 3.23 / Dual 9.80(最強 Dual)
● K=60:Trend 5.56 / Swing 5.56 / Dual 4.69(平手)
關鍵洞察:
● K=15 Swing (Score 14.17) 取代 v3 K=20 Swing (11.45) 成為絕對冠軍。v4 的非連續 IS 不再從極端波動期開始,K=15 的中頻信號在更均衡的 IS 中勝出。
● 全 9 個 K 值都有 Plateau Pass 的種子進入 S1——這是 v4 與 v3 最大的差異。v3 只有 3 個 K 值(15, 20, 60)能進 S2,v4 的 S1 保留了完整的 K 值頻譜。但經過 S2 + 4-Gate 後,只有 K=15 和 K=20 存活。
● Dual 在 K=30 有高分 (9.80),但最終 4-Gate 只有 14 個 Dual 策略存活(全是 B 級)。Dual 模式的兩軸衝突在跨市況驗證中依然脆弱。
▍1.3 種子篩選流量
Python 自動化管線:Stage 1 全量搜索 → 參數穩定性篩選 (Plateau Check + PF/Trades/Recovery 門檻) → Stage 2 風控組合 → 跨 4 Combo OOS 交集。
● C1 (3yr IS):S1 全量 1,166,400 → 篩後種子 780 → S2 共 1,786,200 次
● C2 (3yr IS):S1 全量 1,166,400 → 篩後種 613 → S2 共 1,403,770 次
● C3 (2yr IS):S1 全量 1,166,400 → 篩後種子 1,775 → S2 共 4,064,750 次
● C4 (4yr IS):S1 全量 1,166,400 → 後種子 166 → S2 共 380,140 次
● 合計:S1 共 4,665,600 → 種子 3,334 → S2 共 7,634,860 → 4-Gate 交集 842
C3 的種子最多 (1,775),因為 2 年純牛市的 IS 讓更多策略輕鬆通過 S1 門檻。但「容易通過」不代表「品質好」——C3 的 OOS 是 4 段(最嚴格),大量種子在跨市況驗證中被淘汰。
C4 的種子最少 (166), 為 4 年 IS 包含 COVID 復甦期的極端波動,S1 門檻不容易達標。但 C4 的少數種子品質高——它們是在最多樣化的市況中都能獲利的倖存者
▍1.4 MDD 深度解構與 Recovery Ratio
Top 策略的 OOS 績效:
● #1 (A 級, K=15, 帶追蹤停利)
OOS 累計 NP=1,128,100 / 最深 MDD=-129,850 / Recovery=8.7x / 交易數 818
● #3 (A 級, K=15, 帶追蹤停利,不同回撤檔位)
OOS 累計 NP=1,158,000 / 最深 MDD=-129,550 / Recovery=8.9x / 交易數 818
● #11 (A , K=15, 無任何風控)
OOS 累計 NP=813,950 / 最深 MDD=-76,950 / Recovery=10.6x / 交 數 762
● #14 (B 級, K=15, 無任何風控)
OOS 計 NP=1,062,250 / 最深 MDD=-136,850 / Recovery=7.8x / 交易數 818
Recovery Ratio 解讀:#11(無風控)的 RR=10.6x 是 Top 20 中最高,MDD 只有 7.7 萬——但 NP 也較低(81.4 萬)。帶追蹤停利的 #1 和 #3 犧牲了一些 RR 換取更高的 NP。
v4 vs v3 的策略風格差異:v3 冠軍年均 28 筆(精準狙擊),v4 冠軍 OOS 共 818 筆交易橫跨 4 combo 的 OOS 區間。v4 是更活躍、更依賴追蹤停利管理的策略。
▍1.5 交易次數與成本負擔比
小台手續費以 46 元/來回計算(含交易稅):
● #1 帶追蹤停利:OOS 總交易 818 / 年均 ~205 / 年均手續費 9,430 / 年均 OOS NP ~282,025 / 成本佔比 3.3%
● #11 無風控:OOS 總交易 762 / 年均 ~191 / 年均手續費 8,786 / 年均 OOS NP ~203,488 / 成本佔比 4.3%
v4 的交易頻率遠高於 v3 (28 筆/年),成本佔比從 0.4% 上升到 3.3%。但仍在可接受範圍——小台的超高流動性保證了滑價最小化。
━━━━━━━━━━━━━━━ ━━━━━━━━ ━━━
【2. 策略穩定性與參數孤島檢測 Sensitivity & Robustness】
▍2.1 冠軍群落的核心參數
A 級策略中存在 7 個獨立的核心參數組合(群落標識):
● Alpha 群落:A 級大量,代表 #1, #3
● Beta 群落:A 級大量,代表 #11, #13, #15
● Gamma 群落:A 級少量,代表 #37+
● Delta 群落:A 級少量,代表 #64+
● Epsilon 群落:A 級少量,代表 #183+
● Zeta 群落:A 級少量,代表 #210+
● Eta 群落:A 級少量,代表 #255+
v4 vs v3 的群落結構差異:
● v3 只有 2 個群落(K=20 和 K=15)
● v4 有 7 個群落,參數空間明顯更寬
● v4 的兩大主力群落 Alpha 和 Beta 與 v3 冠軍的參數完全不同
▍2.2 Alpha 群落 (K=15) 的敏感度
Top 20 中有 14 個策略屬於 Alpha 群落,只差追蹤停利的回撤檔位和 POC 自適應開關。242 個策略共用同一組核心信號參數——這是一個巨大的高原,不是孤島。
追蹤停利回撤檔位的影響(同一核心參數,僅風控微調不同):
● 回撤檔位 A (#1):AvgPF=1.449 / NP=1,128,100
● 回撤檔位 B (#3):AvgPF=1.461 / NP=1,158,000
● 回撤檔位 C (#2):AvgPF=1.444 / NP=1,114,450
● 回撤檔位 D (#8):AvgPF=1.389 / NP=977,300
● 無追蹤停利 (#14):AvgPF=1.390 / NP=1,062,250
不同回撤檔位的 PF 變動僅 +-5%——追蹤停利的回撤寬度對績效的影響極小。甚至不帶追蹤停利 (#14) 的表現也在同一量級。這代表 Alpha 群落的核心優勢來自信號本身,不是風控微調。
▍2.3 Beta 群落 (K=15) 特殊價值
Beta 群落的 #11 值得特別關注,與 Alpha #1 的對比:
Alpha #1 → 帶追蹤停利 / AvgPF=1.449 / MinPF=1.213 / MDD=-129,850 / NP=1,128,100 / p-value=0.027
Beta #11 → 無任何風控 / AvgPF=1.292 / MinPF=1.252 / MDD=-76,950 / NP=813,950 / p-value=0.0002
(兩者的核心信號參數不同,但具體數值恕略。)
Beta 的 p=0.0002 遠勝 Alpha 的 p=0.027 —統計顯著性高了兩個數量級。MinPF=1.252 也比 Alpha 的 1.213 更穩(最差 combo 仍有 25% 獲利餘裕)。MDD 只有 7.7 萬,是 Alpha 的 59%。
Beta 犧牲了 28% 的 NP,換取了極高的統計信心和極淺的回撤。如果你的優先順序是「穩」而非「多」,Beta 是更好的選擇。
▍2.4 Plateau Check 觀察
v4 的 Python 自動篩選管線在 S1 和 S2 之間執行了 Plateau=Pass 篩選(對每個參數做鄰域擾動測試,確認績效不是孤峰)。進入 S2 的 3,334 個種子全部通過 Plateau Check——與 v3 相同的模式:不穩的根本進不來。
━━━━━━━━━ ━━━━━━━━━━━━━━━━━━
【3. 風險解構與邊界審計 Risk & Edge Audit】
▍3.1 四段非連續市場壓力測試
以冠軍 #1 的四個 OOS 績效:
C1 OOS (A+B+C: COVID 復甦 + 升息前夕 + 升息熊市, 2020/03-2023/03)
涵蓋 COVID 恢復、升息啟動到熊市底部——3 年完整牛熊周期。
→ PF=1.213, WR=64.2%, NP=+155,050
→ 解讀:冠軍在完整牛熊周期中最弱(PF=1.21)但仍獲利。這段期間包含了 2022 年的暴力升息——Swing 策略在單邊暴跌中信號稀疏,但不至於虧損。
C2 OOS (A+B+F: COVID 前期 + 升息前夕 + 關稅戰, 非連續)
兩段古老市場 + 最新關稅戰——時間跨度最大的 OOS。
→ PF=1.834, WR=68.1%, NP=+439,750
→ 解讀:最強的 combo。COVID 復甦期的劇烈波動 + 關稅戰的高波動,都是 Swing 的天然獵場。非連續的時間跳躍(2022→2025)完全不影響策略表現——證實了指標在全量資料上連續計算的架構設計是正確的。
C3 OOS (A+B+C+F: 全部最嚴格的 4 段, 非連續)
4 段 OOS 涵蓋 4 年不同市況——v4 中最嚴格的驗證。
→ PF=1.515, WR=67.3%, NP=+426,300
→ 解讀:4 段 OOS 且仍有 PF=1.52——策略的韌性毋庸置疑。
C4 OOS (B+C: 升息前夕 + 升息熊市, 2021/04-2023/03)
純升息環境——對均值回歸最不利的單邊趨勢期。
→ PF=1.235, WR=65.4%, NP=+107,000
→ 解讀:與 C1 OOS 同為最弱(PF~1.2),因為都包含升息熊市。但 PF 仍 > 1.2——策略在最不利環境中不會虧損,只是賺得少。
▍3.2 IS → OOS PF 衰退矩陣
● C1:IS PF=1.598 → OOS PF=1.213 / Decay=0.759(可接受衰退)
● C2:IS PF=1.075 → OOS PF=1.834 / Decay=1.705(OOS 遠超 IS)
● C3:IS PF=1.144 → OOS PF=1.515 / Decay=1.324(OOS 優於 IS)
● C4:IS PF=1.454 → OOS PF=1.235 / Decay=0.850(可接受衰退)
● 平均:IS PF=1.318 → OOS PF=1.449 / Decay=1.100(OOS 整體優於 IS)
v4 冠軍的 IS PF (1.318) 遠低於 v3 冠軍 (2.41)——這不是弱點,而是特徵。CPCV 的非連續 IS 讓策略不容易在 IS 上獲得異常高的 PF,因此 OOS 的衰退也更溫和。平均 Decay=1.10 比 v3 的 1.54 更接近 1.0——這是更健康的 IS/OOS 關係。
C2 的 Decay=1.705 值得注意:IS 的 PF 只有 1.075(接近損益兩平),但 OOS 跳到 1.834。這是因為 C2 的 IS (C+D+E: 熊市+牛市+震盪) 包含了對 Swing 不利的熊市,壓低了 IS PF;而 OOS (A+B+F) 恰好都是高波動環境。策略在「困難」的 IS 上只是勉強獲利,在「友善」的 OOS 上大放異彩——這是穩健策略的正常行為。
▍3.3 勝率與盈虧比的物理制衡
● v4 冠軍:平均勝率 66.3% / Avg OOS PF=1.449 / OOS 總交易 818 / 帶追蹤停利
● v3 冠軍:平均勝率 57.7% / Avg OOS PF=3.72 / OOS 總交易 112 / 無風控
● v2 冠軍:平均勝率 71-88% / Avg OOS PF=1.93 / OOS 總交易 416 / 帶追蹤停利
v4 的 WR (66.3%) 介於 v2 和 v3 之間——比 v3 的 57.7% 更容易在心理上承受,但 PF 從 3.72 降到 1.45。這 因為 v4 的交易頻率高出很多(818 vs 112 筆),更頻繁的交易自然帶來更多的小虧損,拉低 PF。
但 v4 的「期望值乘以次數」更高:v3 冠軍 4 年 OOS 賺 117.3 萬(PF 3.72 x 112 筆),v4 冠軍 4 combo OOS 賺 112.8 萬(PF 1.45 x 818 筆)。兩者總獲利接近,但 v4 的樣本量大了 7 倍——統計信心更高 (p=0.027 vs p=0.052)。
━━━━━━━━━━━━━━ ━━━━━━━━━━━ ━
【4. 統計分佈與期望值 Statistical Distribution】
4.1 跨 Combo 績效分佈
238 個 A 級策略的 OOS 綜合指標分佈:
● OOS PF 平均:1.248 ~ 1.694 (均值 1.434)
● OOS PF 最小:1.201 ~ 1.583
● OOS 累計 NP:100,400 ~ 2,433,050
● OOS 最深 MDD:-149,550 ~ -12,350
● PF Decay:0.726 ~ 2.288 (均值 ~1.1)
● t-test p 值:0.0000 ~ 0.0308
● OOS 總交易數:589 ~ 833
核心觀察:
● 所有 238 個 A 級策略的 p < 0.031——在 5% 顯著水準下全部通過。v3 冠軍的 p=0.052 無法通過 5%,v4 解決了這個統計信心問題。
● MinPF 下限 1.201——最差 combo 仍有 20% 獲利餘裕
● Decay 範圍較寬 (0.73~2.29),但均值 ~1.1,代表 IS/OOS 之間沒有系統性的過擬合。
▍4.2 Axis Mode 全景
● Swing_Only:總數 828 / A 級 238 / B 級 590 / 最高 AvgPF=1.694
● Dual:總數 14 / A 級 0 / B 級 14 / 最高 AvgPF=1.143
● Trend_Only:總數 0 / A 級 0 / B 級 0 / 全軍覆沒
v4 的 Trend 實驗結論:
● C1:IS 從 AI 牛市開始 → Trend 在 S1 有高 PF,但 OOS (COVID+熊市) PF < 1.0
● C3:最短 2yr 純牛市 IS Trend 在 S1 表現最好,但 4 段 OOS 直接崩潰
● C4:跳過升息期 → Trend 在 S1 勉強通過,但 OOS (升息+熊市) 全面虧損
結論是決定性的:Trend 策略在 MXF 上不具備跨市況穩健性。這不是資料偏差的問題——v4 已經窮盡了所有有利於 Trend 的 IS 組合。
▍4.3 K=15 vs K=20 的環境互補性
● C1 OOS (牛熊全周期):K=15 冠軍 PF=1.213 / K=20 最佳 A 級 PF ~1.1
● C2 OOS (古老+最新):K=15 冠軍 PF=1.834 / K=20 最佳 A 級 PF ~1.3
C3 OOS (4 段最嚴):K=15 冠軍 PF=1.515 / K=20 最 A 級 PF ~1.2
● C4 OOS (純 息):K=15 冠軍 PF=1.235 / K=20 最佳 A 級 PF ~1.1
K=15 在所有 combo 的 OOS 中都優於 K=20。v3 中 K=20 的優勢來自其 IS 錨定在 COVID 後期的極端波動環境——打破錨定後,K=15 的中頻信號在更多市況中更穩定。
━━━━━ ━━━━━━━━━━━━━━━━━━━━━━
【5. 市場環境適應性 Market Regime Mapping
▍5.1 CPCV 組合的獨立壓力測試意義
v4 的 4 個 combo 本質上是 4 種不同的「如果歷史是這樣排列」假設:
● C1 → IS 問:如果只用牛市訓練? OOS 答:能在 COVID + 熊市存活嗎?
● C2 IS 問:如果用最均衡的市況訓練? OOS 答:能在古老 + 最新市場都賺嗎?
● C3 → IS 問:如果訓練資料極少(2yr)? OOS 答:能通過最多段 (4段) 驗 嗎?
● C4 → IS 問:如果跳過最艱難的升息期? OOS 答:被迫面對升息時會怎樣?
冠軍在所有 4 個問題中都給出了正面答案(PF > 1.2)。CPCV 比 WFA 更嚴格之處在於:WFA 的 OOS 是時間順序的(永遠是「用過去預測未來」),但 CPCV 也測試了「用未來預測過去」(C1)和「用跳躍式資料預測連續市場」(C2/C4)。
▍5.2 多空偏向性分析
K=15 Swing_Only 的行為模式:
● 升息期 OOS (C1/C4):PF ~1.2。升息造成的單邊走勢壓縮了均值回歸機會,策略「苦撐」但不虧。
● 高波動 OOS (C2/C3):PF 1.5~1.8。波動加劇 = 極端偏離頻率上升 = Swing 的盛宴。
● 結論:策略的獲利引擎是「波動率」,不是「方向」。高 VIX 環境下表現最佳,低 VIX 環境中減速但不停轉。這個特性與選擇權賣方(sell premium in high IV)的獲利邏輯天然互補。
━ ━━━━━━━━━━━ ━━━━━━━━━━━━━━
【6. 實戰執行損耗模擬 Execution Reality Check】
▍6.1 滑價靈敏度測試
● 0 tick 滑價:年均滑價 0 / 佔年均 NP 0%
● 1 tick 滑價:每趟額外 100 / 年均 205 筆 / 年均滑價 20,500 / 佔年均 NP 7.3%
● 2 tick 滑 :每趟額外 200 / 年均 205 筆 / 年均滑價 41,000 / 佔年均 NP 14.5%
v4 的滑價敏感度高於 v3 (1.0%)——因為年均交易數從 28 筆暴增到 205 筆。即使只 1 tick,年度成本就達 2 萬。但 v4 冠軍的年均 NP 約 28 萬,1 tick 滑價後仍有 25.5 萬淨利——可以接受但必須嚴控滑價。實盤 Python 交易程式使用 IOC 限價單 + 追價容忍機制來控制滑價。
▍6.2 手續費 + 滑價 + 交易稅綜合損耗
● 手續費(來回):每趟 46 x 年均 205 次 = 年成本 9,430
● 交易 :每趟 ~10 x 年均 205 次 = 年成本 2,050
● 滑價(1 tick):每趟 100 x 年均 205 次 = 年成本 20,500
● 合計年成本:31,980(佔年均 NP 11.3%)
v3 的綜合損耗僅 1.5% v4 跳到 11.3%。這是 v4 中頻策略的代價。低頻策略(如 v3)在執行成本上有天然優勢。
▍6.3 成交流動性
MXF 日均成交量超過 10 萬口。年均 205 筆(每天不到 1 筆),完全不存在流動性問題。
━━━━━━━━━━━━━━━━━━━━━ ━━━━━━
【7. 最終決策矩陣 Final Decision Matrix】
▍7.1 Validated Top 10 推薦表
(具體參數恕略)
Top 10 關鍵觀察:
● #1~#10 全是 Alpha 群落,只差追蹤停利檔位和 POC 自適應開關。
● #11 (Beta 群落) 是統計上最穩的 — p=0.0002、MinPF=1.252、MDD 只有 7.7 萬。
● 所有 Top 11 都是 Swing_Only + NE=False(中性不退場)— 指標永遠輸出多或空方向,不會有空窗。這與選擇權賣方「永遠需要知道該防守哪一側」的需求完美對齊。
▍7.2 部署配置建議
Tier 1(核心持倉 — 期貨實盤):
● 穩健優先 → Beta 群落 #11(無風控, p=0.0002):追求統計信心、低回撤
● 獲利優先 → Alpha 群落 #1(帶追蹤停利):追求最高 NP
● 折衷 → Alpha 群落 #3(不同追蹤停利檔位):A 級最高 NP、適度風控
Tier 2(選擇權方向羅盤):
本次 CPCV 分析的一個重要副產品:Beta 群落的無風控配置,同時出現在我另外開發的「選擇權方向羅盤」Python 工具的宏觀錨 Top 3。這意味著同一組信號參數可以一魚兩吃——期貨端做實盤交易,同時作為週選擇權賣方(Broken Wing Butterfly)的多空方向判斷依據。
選擇權賣方需要的是「永遠有方向、永不空窗」的羅盤信號,而 NE=False 的 Swing 策略恰好滿足這個需求。加上另一組 K=1m Trend 微觀觸發器(用於順勢加碼時機),形成「宏觀定方向 + 微觀定時機」的雙層選擇權羅盤架構。
不推薦:Trend_Only 策略在 v4 中被決定性地排除。如需趨勢曝險,僅將 Trend 信號作為選擇權加碼觸發,不作為期貨交易依 。
▍7.3 帳戶資金規劃
● 穩健方案:Beta #11 / 1 口小台 / 最低帳戶 25 萬 / 預期年均 NP ~20 萬 / 最大回撤預估 ~8 萬
● 進攻方案:Alpha #1 / 1 口小台 / 最低帳戶 40 萬 / 預期年均 NP ~28 / 最大回撤預估 ~13 萬
● 雙群落方案:#1 + #11 各 1 口 / 最低帳戶 55 萬 / 預期年均 NP ~48 萬 / 最大回撤預估 ~15 萬
▍7.4 v3 → v4 配置演化
● 核心策略:v3 K=20 Swing 無風控 → v4 K=15 Swing 帶追蹤停利(K 縮短、加風控)
● 核心信號參數:v4 採用不同的參數組合(具體數值恕略)
● 年均交易:v3 28 筆 → v4 ~205 筆 (+632%)
● 年均 NP:v3 ~29 萬 → v4 ~28 萬 (-3%)
● Recovery Ratio:v3 9.6x → v4 8.7x (-9%)
● p-value:v3 0.052 → v4 0.027(統計信心提升)
● 綜合損耗:v3 1.5% → v4 11.3% (+653%)
● 驗證方法:v3 Anchored WFA → v4 CPCV(更嚴格)
v4 的核心升級不是績效——而是驗證方法。NP 和 RR 與 v3 接近,但 CPCV 排除了 IS 錨定偏誤、確認了非連續市況的穩健性、將 p 值從勉強通過 (0.052) 壓到確定通 (0.027)。如果 Beta 群落的 p=0.0002 更符合你的風險偏好,統計信心的提升就更加顯著。
━━━━━━━━ ━━━━━━━━━━━━━━━━━━━
【8. 死角與未解問題】
1. Trend 問題已有定論。v4 的 CPCV 設計是專門為了回答「IS 起點偏差是否壓制了 Trend?」這個問題。答案是否定的。Trend 在 MXF 小台上缺乏跨市況穩健性,這是策略邏輯的根本限制,不是資料偏差。未來版本不需要再為 Trend 辯護。
2. 滑價的相對重要性上升。v3 的 1.5% 損耗率讓滑價幾乎可以忽略,v4 的 11.3% 則需要認真對待。實盤的 Python 自動交易程式使用 IOC 限價單嚴控滑價,並持續監控實際成交滑差統計。如果滑價持續 > 1 tick,考慮切換到 Beta 群落(交易頻率略低)。
3. CPCV 的 OOS 不是真正的「未來」。v4 的 C1 combo 用 2023~2026 做 IS、2020~2023 OOS——OOS 在時間上早於 IS。這驗證了參數的穩健性,但不等同於「用過去預測未來」的實盤情境。最誠實的驗證仍然是:上實盤跑 3 個月。
4. Alpha 群落的追蹤停利依賴性。Top 10 全部帶追蹤停利,而無風控的 #14 排在 B 級。相比之下,Beta 群落 #11 不帶任何風控就拿到 A 級。如果你擔心追蹤停利在實盤中因為滑價而表現不如回測,Beta 群落是更安全的選擇。
5. K=20 在 v4 中的退化。v3 的 K=20 冠軍在 v4 只拿到 155 個席位(vs K=15 的 687 個),A 級僅 19 個。這暗示 K=20 的優勢高度依賴 v3 的 IS 錨定在 COVID 後期——打破錨定後,K=20 的信號頻率太低,在部分 combo 的 OOS 中無法累積足夠的統計信心。
6. 選擇權羅盤:一魚兩吃的額外收穫。v4 的 CPCV 結果與我用 Python 另外開發的選擇權方向羅盤工具高度一致——Beta 群落同時出現在期貨 Top 11 和選擇權賣方宏觀錨 Top 3。這不是巧合——跨市況穩健的均值回歸信號,天然適合作為週選擇權賣方 (Broken Wing Butterfly) 的方向羅盤。整套從回測到實盤的 Python pipeline(信號引擎、回測框架、篩選管線、實盤交易程式、選擇權羅盤)都是自行開發的成果。
CPCV(組合淨化交叉驗證,Combinatorial Purged Cross-Validation)
AI 摘要
- 克服過度擬合: 相較於單一路徑的向前推進法(Walk-Forward),CPCV 透過產生大量非獨立的訓練-測試組合,能更準確地評估策略在不同市場行情下的表現。
- 數據淨化(Purged): 嚴格區分訓練集和測試集,避免訓練數據中包含測試集的未來資訊,防止資訊洩漏。
- 多路徑分析: 如果將數據分為 組,測試集為組,則會產生種組合中的多條路徑,幫助研究員看到策略的「真實情況」,而非僅是一個幸運的參數組合。
- 評估指標: 透過產生的多條回測路徑,計算夏普比率(Sharpe Ratio)的方差,若方差過大通常表示過度擬合。
- WALK-FORWARD (WF): 只有一條路徑,容易依賴特定的市場情境。
- CPCV: 擁有數百甚至數千條路徑,能減少錯誤發現的機率(False Discovery)。
2026/04/10
20260410 終於進到 WFA 了
# Walk-Forward Analysis Flow
## Target Platform
- **CPU**: i9-13900K — 8 P-Cores @ 5.5GHz (E-Cores off, HT off)
- **RAM**: 32GB DDR4-3200
- **SSD**: NVMe Gen4 (ADATA LEGEND 850)
- **Workers**: `--workers 7` (保留 1 core 給 OS + I/O)
## Data: MXF_1m_20200223.csv
- Range: 2020-03-02 ~ 2026-03-31 (1,814 trading days, ~6.1 years)
- Size: 1,683,477 rows (1-min bars)
- All commands run from `..\2Axis\`
## Memory Budget (7 workers)
| Component | Per Worker | 7 Workers |
|-----------|-----------|-----------|
| 1-min OHLCV cache (5 arrays × 1.68M × 8B) | 67 MB | 470 MB |
| K-min data cache (worst: K=1, same as 1-min) | 67 MB | 470 MB |
| Numba trade buffer (200K × 8 cols × 8B) | 12.8 MB | 90 MB |
| date/flag arrays + overhead | ~20 MB | ~140 MB |
| **Total** | **~167 MB** | **~1.2 GB** |
32GB RAM 綽綽有餘。Python 主進程 + Pandas 讀 seed CSV 約佔 200-500MB。
---
## Pre-run: Numba JIT Warm-up
V2 函數簽名已改(新增 `trade_date_start/end`),首次執行需重新 JIT 編譯。
```bash
# 若遇 Numba 編譯錯誤才需手動清(V2 模組名不同,通常不衝突):
rm -rf __pycache__/bt_bb_unpruned_v2.* __pycache__/bt_bb_2nd_unpruned_v2.*
```
首次 JIT 編譯約 3-5 分鐘(Stage 1 + Stage 2 各一次),之後 `cache=True` 生效,後續啟動秒開。
---
## Fold 1: IS 4yr (2020/03-2024/03) + OOS 1yr (2024/04-2025/03)
### Step 1: Stage 1 Signal Optimization (IS)
```bash
python bt_bb_unpruned_v2.py --mode opt ^
--start-date 2020-03-02 --end-date 2024-03-31 ^
--output data/fold1_s1_unpruned.csv ^
--workers 7
```
- 1,166,400 combos (5 K-bar x 3 axis x 2 neutral x 21 BB x 16 ROC x 8 Flat x POC combos)
- 含 Plateau 26-grid 鄰域檢定
- Output: `data/fold1_s1_unpruned.csv`
- **預估: 30-45 min** (首次 +5 min JIT)
### Step 2: Filter Seeds
```bash
python filter_seeds.py data/fold1_s1_unpruned.csv ^
--output data/fold1_seeds.csv ^
--years 4.0
```
- Plateau=Pass, PF>=1.5, Trades>=150, RF>=3, Calmar>2
- `--years 4.0` 對應 IS 期間,確保 Calmar/Recovery 計算正確
- **預估: < 5 秒**
### Step 3: Stage 2 Risk Optimization (IS)
```bash
python bt_bb_2nd_unpruned_v2.py data/fold1_seeds.csv ^
--output data/fold1_s2_IS.csv ^
--start-date 2020-03-02 --end-date 2024-03-31 ^
--workers 7
```
- Risk grid: ~432 combos/seed (SL×TP×Trail×TimStop, pruning 後)
- Numba 在 1-min 解析度逐棒掃描 1.68M bars × 432 combos/seed
- Output: `data/fold1_s2_IS.csv` (31 cols, 含 S1 績效)
- **預估: 60-90 min** (取決於種子數量,通常 ~2,000-3,000)
### Step 4: Stage 2 OOS Validation
```bash
python bt_bb_2nd_unpruned_v2.py data/fold1_seeds.csv ^
--output data/fold1_s2_OOS.csv ^
--start-date 2024-04-01 --end-date 2025-03-31 ^
--workers 7
```
- 相同種子、相同風控網格,不同日期窗口
- 用於 IS vs OOS 比較,偵測過度擬合
- **預估: 60-90 min** (與 IS 相同,因為全量資料都需載入)
**Fold 1 小計: ~2.5-4 小時**
---
## Fold 2: IS 5yr (2020/03-2025/03) + OOS 1yr (2025/04-2026/03)
### Step 1: Stage 1 Signal Optimization (IS)
```bash
python bt_bb_unpruned_v2.py --mode opt ^
--start-date 2020-03-02 --end-date 2025-03-31 ^
--output data/fold2_s1_unpruned.csv ^
--workers 7
```
- **預估: 30-45 min** (Numba cache 已存在,無 JIT 延遲)
### Step 2: Filter Seeds
```bash
python filter_seeds.py data/fold2_s1_unpruned.csv ^
--output data/fold2_seeds.csv ^
--years 5.0
```
- **預估: < 5 秒**
### Step 3: Stage 2 Risk Optimization (IS)
```bash
python bt_bb_2nd_unpruned_v2.py data/fold2_seeds.csv ^
--output data/fold2_s2_IS.csv ^
--start-date 2020-03-02 --end-date 2025-03-31 ^
--workers 7
```
- **預估: 60-90 min**
### Step 4: Stage 2 OOS Validation
```bash
python bt_bb_2nd_unpruned_v2.py data/fold2_seeds.csv ^
--output data/fold2_s2_OOS.csv ^
--start-date 2025-04-01 --end-date 2026-03-31 ^
--workers 7
```
- **預估: 60-90 min**
**Fold 2 小計: ~2.5-3.5 小時** (無 JIT 開銷)
---
## Full-Period Baseline (Optional)
不限日期,完整 6.1 年:
```bash
python bt_bb_unpruned_v2.py --mode opt ^
--output data/full_s1_unpruned.csv --workers 7
python filter_seeds.py data/full_s1_unpruned.csv ^
--output data/full_seeds.csv --years 6.1
python bt_bb_2nd_unpruned_v2.py data/full_seeds.csv ^
--output data/full_s2.csv --workers 7
```
- **預估: ~2.5-3.5 小時** (Stage 1 ~35min + Stage 2 ~90min)
---
## Runtime Summary
| Step | Per Fold | 瓶頸 |
|------|----------|------|
| Stage 1 (1.16M combos) | 30-45 min | Numba Tier-3 OMS loop × K-bar bars |
| Filter seeds | < 5 sec | Pandas I/O |
| Stage 2 IS (~2.5K seeds × 432 RC) | 60-90 min | 1-min 解析度 1.68M bars × 432 combos/seed |
| Stage 2 OOS (same) | 60-90 min | 同上 |
| **Per Fold Total** | **2.5-4 hr** | |
| Scenario | Estimated Total |
|----------|----------------|
| **2-Fold WFA (recommended)** | **5-8 小時** |
| + Full-Period Baseline | +2.5-3.5 小時 |
| **Complete (2 folds + baseline)** | **7.5-11.5 小時** |
### Performance Notes
- **Stage 1 瓶頸是 K=1**:1.68M 根 1 分棒佔全部 K-bar 時間的 ~40%;K=10 只需 168K 根,不到 2 分鐘
- **Stage 2 瓶頸是 seed 數量**:每顆種子需 432 次 1-min 全量掃描(~14 sec/seed @ 5.5GHz)
- **7 workers 是甜蜜點**:8 workers 會搶 OS 資源,6 workers 浪費一顆 P-Core
- **Numba cache 一次性**:首輪 JIT 約 3-5 min,後續 `cache=True` 直接載入
- **記憶體峰值 ~2 GB**:32GB DDR4-3200 不會成為瓶頸
### Optimization Tips
- 如果跑過夜,建議 Process Lasso 暫時移除 Core 綁定(釋放全部 8 cores 給 Python)
- 可用 `--workers 8` 壓榨最後一核,風險是 OS 偶爾卡頓(backtest 不影響正確性)
- Stage 2 的 seed 排序已按 K_Bar 排列(worker cache 命中率最高)
---
## WFA Validation Criteria
策略通過 WFA 的條件:
1. **OOS PF >= 1.2** (IS 門檻 1.5 的 80% 折扣)
2. **OOS Win Rate >= 45%**
3. **IS→OOS PF 衰退 < 40%** (PF_OOS / PF_IS > 0.6)
4. **OOS Net Profit > 0**
5. **兩個 Fold 都出現在 top N** (跨 Fold 穩定性)
## Analysis After All Runs Complete
提供以下 CSV 即可分析:
- `fold1_s2_IS.csv`, `fold1_s2_OOS.csv`
- `fold2_s2_IS.csv`, `fold2_s2_OOS.csv`
- (Optional) `full_s2.csv`
我可以產出:
1. Top 5 WFA-validated strategies (cross-fold intersection)
2. IS vs OOS 績效比較 Excel(含 PF decay、Calmar decay)
3. Overfitting Risk Score per strategy
4. Final agent config recommendation
## Date Format
兩個階段都接受 `YYYY-MM-DD` 或 `YYYYMMDD`(dash 自動移除)。
`filter_seeds.py` 無日期參數,用 `--years` 校正 Calmar/Recovery 計算。
---
## V2 Changes Summary
| Fix | Stage 1 | Stage 2 |
|-----|---------|---------|
| Entry price: next-bar Open (non-repainting) | Fixed | Already correct |
| Signal from `oms_position_arr[i-1]` | Fixed | Already correct |
| WFA date range (`--start-date`, `--end-date`) | Added | Added |
| Data file override (`--data-file`) | Added | Added |
| Worker initializer (Windows spawn safe) | Added | Added |
| S1 columns carried through | N/A | Yes (from Phase 3) |
| 6-year data default | Yes | Yes |









