研究問題
在交易成本、滑價、walk-forward、holdout 與回撤限制都納入後,是否能建立一組可重跑、可審查、跨商品的自動交易策略,並在明確 baseline 下取得風險調整後的優勢?
Automated Quantitative Trading
在交易成本、滑價、walk-forward、holdout 與回撤限制都納入後,是否能建立一組可重跑、可審查、跨商品的自動交易策略,並在明確 baseline 下取得風險調整後的優勢?
最穩定的結果不是單一模型勝出,而是「資料協議 + 訊號族群 + 風控 overlay + 嚴格 promotion gate」的組合。期貨策略相對 live hurdle 有顯著超額報酬;台股 Top200 alpha 相對 0050 有正的 total-return 與 OOS CAGR gap。
每個資料集先固定 schema、時間區間、可交易時間點與成本模型;策略只能讀取符合 contract 的資料。
台灣指數期貨與小型期貨的 1m / 5m OHLCV bars,按台北時區校準,切分 regular / night session,保留日內停損與隔日延遲填單需要的時間欄位。
台股 Top200 historical universe 與 0050 benchmark,使用 walk-forward universe selection,避免把未來成分股或未來 benchmark 狀態洩漏到訓練期。
ADR、macro、volatility、trend、session regime 等外部特徵全部以可交易時間點前可得的 lagged values 進入模型,禁止 forward fill 到未來事件。
回測先扣 commission、futures tax、slippage、stop slippage,並將 next-bar fill、延遲填單、日損限制與合約上限納入同一套 replay。
| Target Instrument | Research Objective | Primary Baseline | Core Metrics |
|---|---|---|---|
| TX / MXF intraday futures | Find high-conviction event and regime strategies under realistic costs. | Live hurdle: 4,347% 5y return, Sharpe 1.46, MaxDD 10.04%. | 5y return, Sharpe, MaxDD, 2025+ holdout Sharpe. |
| Taiwan Top200 equities | Build benchmark-aware stock selection against broad-market exposure. | 0050 ETF benchmark. | Total return, CAGR, Sharpe, MaxDD, OOS CAGR gap. |
| CZSC low-frequency MXF cells | Convert chart-structure signals into lower-turnover futures sleeves. | Buy-and-hold / incumbent futures sleeve. | Train / holdout points, rigor gates, monthly stability. |
每個 strategy family 都必須交代訊號來源、selection rule、risk overlay、驗證 gate 與失敗條件。
Markov state, price / macro regime, CZSC structure, CCI daily, trend ensemble, time-exit repricing, and forecast overlay.
Walk-forward folds, edge buckets, Markov prior, Bayesian shrinkage, LCB ranking, and benchmark-aware stock selection.
Contract cap, Kelly fraction, daily loss limit, emergency DD, monthly loss stop, overlay haircut, and drawdown rescue.
| Strategy Family | Design Rationale | Validation Role | Public Verdict |
|---|---|---|---|
| MHF 5m price-macro | Combine state transition and macro-sensitive price structure to isolate high-conviction futures events. | Main futures alpha candidate under strict hurdle. | Verified pass |
| Overlay / haircut ensemble | Reduce exposure around known drawdown clusters without changing the base signal. | Risk-control proof and ablation target. | Verified pass |
| Top200 trend ensemble | Select stock sleeves only when benchmark-aware trend evidence survives walk-forward selection. | Equity alpha vs 0050. | Verified pass, deployment gated |
| Kronos forecast overlay | Fine-tune a time-series foundation model per walk-forward fold, then use forecasts as position scaling rather than standalone orders. | Implementation example below; research candidate due to true-DD caveat. | Candidate |
| Regime / DD gate sweep | Search only risk-control coordinates after the signal is frozen. | Controls overfitting by limiting the search space. | Verified pass |
流程重點是 fold 隔離、固定輸入 schema、低學習率 fine-tune、forecast 延遲生效,以及把模型輸出放進既有風控 replay。
輸入欄位固定為 timestamp、open、high、low、close、volume、amount。時間以台北時區校準,night session 與 regular session 不混用未來資訊。
每個測試 fold 約半年;訓練資料只到 cutoff 為止。2021-2026 combined audit 覆蓋 11 個 folds,產生 298,253 筆 forecast rows。
lookback_window = 512、predict_window = 1。模型只預測下一根 5m bar 的相對方向分數,不直接下單。
Kronos 分數只調整既有部位大小;所有交易仍經過 contract cap、日損限制、emergency drawdown 與成本滑價 replay。
| Stage | Concrete Setting | Why It Matters |
|---|---|---|
| Pretrained base | Kronos tokenizer base + Kronos small predictor. | 把 foundation model 當成可微調的 sequence prior,而不是重新訓練大型模型。 |
| Windowing | 512-bar context, 1-bar prediction, value clip = 5.0. | 限制每次樣本只看固定長度歷史,並降低極端價格變動對 tokenizer 的影響。 |
| Train / validation | 90% train, 10% validation inside each fold, no test rows inside fine-tune data. | 測試區間只能用於 forecast replay,不能回流到 fine-tune 或 model selection。 |
| Optimization | Tokenizer 1 epoch, predictor 1 epoch, batch size 8, learning rate 1e-5. | 用低學習率做 domain adaptation,避免在單一 fold 上過度改寫 pretrained weights。 |
| Adam settings | beta1 = 0.9, beta2 = 0.95, weight decay = 0.1, seed = 17. | 固定 optimizer 與 random seed,讓不同 folds 的差異主要來自資料而不是訓練漂移。 |
| Audit rule | trained_through_ts must be no later than fold cutoff; effective_from_ts must be after decision_ts. | 這是防止 look-ahead 的硬檢查;不通過就不進入結果表。 |
input_schema = ["timestamp", "open", "high", "low", "close", "volume", "amount"]
for fold in walk_forward_folds:
train = bars.where(timestamp <= fold.cutoff)
test = bars.where(fold.start <= timestamp < fold.end)
model = KronosSmall.from_pretrained()
model.fit(
train,
lookback_window=512,
predict_window=1,
train_ratio=0.90,
val_ratio=0.10,
batch_size=8,
epochs={"tokenizer": 1, "predictor": 1},
learning_rate=1e-5,
weight_decay=0.1,
seed=17,
)
forecasts = model.predict(test)
assert forecasts.trained_through_ts.max() <= fold.cutoff
assert all(forecasts.effective_from_ts > forecasts.decision_ts)
每筆輸出包含 decision_ts、effective_from_ts、trained_through_ts、score、horizon_bars、confidence、model_id。缺任何一個時間欄位就不能進 replay。
實驗版使用 inverted daily forecast feature;同向時把 target exposure 放大到 overlay scale,反向、中性或缺資料時回到原始 exposure,最後再套 max_abs_position cap。
Daily overlay research replay: 7,073.48% return、15.24% MaxDD、998 forecast days。Event replay: 5,059.10% return、monthly Sharpe 1.526,但 true-DD caveat 仍需處理。
期貨策略比較 live hurdle;股票策略比較 0050。若沒有 baseline,就不宣稱「贏」。
Any futures claim must survive return, Sharpe, drawdown, and holdout gates after cost and slippage.
Any Top200 claim must show benchmark-aware excess return and OOS strength, not only absolute bull-market beta.
表格只接受已指定 baseline、成本模型、回撤口徑與驗證狀態的結果;candidate 不視為 production claim。
| Experiment | Baseline | Result | Risk | Conclusion |
|---|---|---|---|---|
| MHF 5m fixed baseline | Live hurdle 4,347% | 7,712.08% 5y return, Sharpe 2.993 | MaxDD 8.085% | Primary verified futures result. |
| MHF Markov + Deep | Same hurdle | 5,194.43% 5y return, Sharpe 2.732 | MaxDD 9.895% | Model selection passes strict hurdle. |
| Overlay haircut ensemble | Base signal and live hurdle | 5,782.78% 5y return, Sharpe 2.098 | MaxDD 9.764% | Risk overlay survives ablation and neighborhood checks. |
| Parity DD-gate sweep | Live config MaxDD 10.04% | 4,452.10% return, daily Sharpe 1.592 | MaxDD 5.94% | Valid risk-control improvement after signal is frozen. |
| Top200 strict ensemble | 0050 total return 515.14% | 846.33% total return, CAGR 30.01% | MaxDD 28.65% vs 0050 33.83% | Verified equity alpha with positive OOS CAGR gap. |
| CZSC 5-cell MXF portfolio | Single-cell / low-frequency sleeve | 12,352 holdout points, Sharpe 6.8 | 13 / 13 rigor pass | Validated low-frequency structure portfolio. |
| Kronos TX overlay | Live-risk replay | 5,059.10% event replay return | Reset DD 6.11%, true DD caveat | Fine-tuned overlay candidate; not broker-ready. |
任何策略若只有 return 而缺少成本、holdout、回撤、ablation 或 execution identity,會被降級為 candidate 或 rejected path。
固定 train / test windows,讓 selection rule 在每個 fold 中只看過去資料;Kronos audit 要求 fold leakage violations = 0。
2025+ 或 predefined out-of-sample window 必須維持 Sharpe、return、drawdown 的基本品質。
Commission、tax、slippage、stop slippage 先進入 replay,再談任何績效宣稱。
Overlay 類策略需要移除單一元件後仍能說明其貢獻,並檢查不是單點參數幸運。
Reset drawdown 與 true drawdown 分開報告;若 true DD 過大,不升級為 production claim。
未過 strict gate 的 15m / 5m walk-forward、independent replacement、direct fusion 都只保留為 guardrail。
本研究支持一個實務結論:跨商品自動交易要先建立資料協議、baseline、風控與驗證 gate,再讓策略族群競爭。MHF、overlay ensemble、Top200 strict ensemble 與 CZSC portfolio 顯示了可驗證的優勢;Kronos fine-tuning 則提供一個可重跑的 forecast overlay 範例,但仍需更嚴格的 true-DD 與 deployment parity 檢查。