MARKET RESEARCH
方法論
這個系統為什麼可信——以及它目前哪裡還不可信
這個系統在做什麼
以 TX 台指期為真標的的預測系統:每個交易日 18:30 自動產出隔日、 3 日、5 日的方向機率與 80% 價格區間,記錄下來,到期用真實收盤價結算, 累積可驗證的成績。不下單、不接經紀商、不做即時盤。
目前所有預測都是 record_only(僅記錄)狀態—— 機率尚未通過校準閘門,因此不構成任何部位建議。這是設計,不是故障。
三條價格序列——期貨回測最容易錯的地方
期貨每月到期,價格序列必須拼接。 拼接方式錯了,回測會很好看而且所有檢查都會通過。
| 序列 | 用途 | 為什麼 |
|---|---|---|
px_raw | 基差、停損點數、保證金、回測成交價 | 真實點位;轉倉日保留跳空(那是事實) |
px_ratio | 技術指標(MA/RSI/布林/ATR%) | 比例調整;日報酬恆等於 ret_roll(實測差 4.4e-16) |
ret_roll | 標籤與績效的唯一來源 | 永不跨合約相減——用某一個合約自己的 T−1→T 報酬 |
實測:跨合約直接相減會產生假跳空,271 個轉倉日平均 0.55%、最大 3.67%。累積下來年化 15.18% vs 9.60%——而值域檢查、跨來源 比對、no-lookahead 測試全部都會通過。
防自欺的四道機器
1. 預先登記(preregistration)——判準在跑實驗之前寫進
設定檔並凍結。事後訂標準等於沒有標準。已登記 30 份,
而已經下過判定的多數結論是「沒有增量價值」——例外是 2026-09-04b(選擇權 IV → 次日已實現波動,✅ 有增量預測力),而同一條資訊沒有轉化成更好的區間(09-04c ❌)。其餘多數仍在觀察期、還沒有結論,進度見判定日曆與被監看的條件。如實記錄不粉飾。其中 9 份
在檔案開頭就揭露「寫定時已經看過結果」(有的寫 written_before_any_data = false,有的把「重大揭露」寫在檔頭散文裡——兩種都算進上面那個數字)——那種提案本身就有移動球門柱的形式,
揭露不是禮貌,是讓後人能重新評估。
2. 校準閘門——機率的 ECE 必須 < 0.05 才准給部位建議。 目前三個 horizon 全部未通過,所以全部只記錄。這道閘門是為了避免 「宣稱七成把握、實際三成命中」還照樣輸出。
3. 保留集動用要留痕,動了就不能再當保留集——最後 250 個
交易日原本封存不用,只在模型定案後做一次終檢。實際發生的事要如實記:
reports/holdout_touch_log.md 累計 22 筆動用
(2026-08-21 GARCH 區間終檢、08-25 方向終檢與 2026 回補、08-25/26
全期逐日紀錄;含 API 寫錯的重跑,每一筆留痕不刪),並於
2026-08-26 併入常規 walk-forward——從那天起這個專案沒有任何
未動用的資料,唯一乾淨的裁判只剩往後累積的事前 live。
原則沒有被丟掉,是被用完了;用完要說出來,不能還寫「只動過一次」。
4. 品質哨兵——每日重建後、出預測前檢查語意恆等式 (標籤是否真的等於次日報酬、OHLC 是否自洽)。FAIL 就不出預測: 用壞資料出的預測比沒有預測更糟。
晉升階梯——上真錢之前必須走完
L1 record_only 僅記錄,無部位建議 ← 目前在這裡
L2 紙上口數 live ≥60 筆/horizon、h=1 涵蓋率落在 [0.70, 0.90],
且 config/costs.toml [account] 已填 + 品質哨兵連續 20 日無 FAIL
L3 最小真錢 紙上 60 日淨利為正、最大回撤 ≤15%
L4 規模化 實際滑價 ≤ 假設的 2 倍、零執行錯誤
🔴 其中 [account] 目前還沒填——權益基準與單筆風險上限只有使用者知道,config/costs.toml 裡標的是 pending_user_input。也就是說筆數滿了 L2 仍然不會過;判定日曆上的日期是「第一次可以下判定」的那一天,不是晉升日。
門檻數字在 還沒有任何成績可看的時候就凍結 (2026-08-21)——那是訂門檻最誠實的時點。降級自動觸發,允許人工降級, 禁止人工升級跳關:人在虧損時最會替系統找藉口。
目前的誠實結論
這些設定的方向模型未達事先寫定的效用門檻。三條特徵路徑(58/74/117 欄)
全部未通過事先判準——這是對「這些設定」的結論,不等於「資料沒有訊號」或
「方向預測不可能有價值」(審核 A13);其他設定沒有測過,就沒有結論。
⚠️ 這裡刻意不拿原始命中率去比「永遠猜震盪」。模型以
class_weight="balanced" 訓練,最佳化的是平衡準確率,
而「永遠猜震盪」最佳化的是原始準確率——兩者直接比,模型必輸,
而那個比法說明不了事情(本站 2026-08-24 自己更正過,並寫成明文禁令)。
公平的比較是平衡命中率 0.3840 vs 無資訊基準 0.3333
(歷史模擬 h=1,n=4,101),五折全部為正、t = 7.09:
此設定的描述性分類分數略高於對照,但仍須處理 fold 相依與研究選擇;不能據此宣稱交易能力。
原始口徑一併列出以免只挑好看的:原始 0.3782、多數類 0.4299。
區間模型輸給 GARCH(1,1)。用 4 個參數的 GARCH 涵蓋率 0.81, 58 個特徵的分位數迴歸只有 0.76——所以每日區間改用 GARCH, 那是公開知識,不是我們的優勢。GARCH 區間的區間分數只比「過去一年的經驗分位」略好, 差距集中在高波動期(見命中率與校準「跟事前基準比」)。
研究凍結分兩層。live 管線與帳(record_only、判準、晉升階梯) 維持凍結——那是唯一乾淨的裁判,每天 3 筆、到期真實結算, 每 horizon 各滿 60 筆才有第一次判定。離線研究自 2026-08-31 起依 使用者決定解凍,照 prereg+驗證折進行:驗證折累計 43 次(超過 5 次後任何正面判讀一律註明偏樂觀)、 登記 30 份 prereg。 這兩個數字從 log 現算——先前寫死的「8 次」在盤點時已漂到近 4 倍。
一個會誠實說「我還沒有 edge」的系統,比一個回測 漂亮的系統值錢得多。這一節不會因為難看而被刪掉。
已知限制(每份報告都必須複述)與 /params 同一份清單(單一來源,不再各寫各的)
- 成本參數:每口手續費(fee)與滑價(slippage)為使用者裁定的假設值(2026-08-31),帳戶參數待填 → 所有績效一律標 assumed-cost(裁定 ≠ 查證,橫幅不撤)
- 夜盤特徵自 2017-05、期貨三大法人自 2017-07 起,之前為硬缺口,禁止插補
- 沒有 bid/ask,滑價永遠只能是假設值;TX 建模/MTX 執行的落差未量化
- 漲跌停鎖死日(實測 4 天)無法成交,回測強制沿用前一日部位
- 訓練樣本不含 2008 金融海嘯等級的崩盤(跨市場面板自 2011-08 起)
- 1 分 K 已封存 65 天(期交所滾動視窗只給約 30 天,從封存第一天起每日 +1),日內回測能力隨時間累積
- 本系統不下單、不接經紀商、不做即時盤
5f92ccf(第 163 次提交,2026-10-14) | 資料建置於 2026-10-14 10:30 UTC | 行情與研究結果供查看;會員可管理觀察清單並要求更新個股分析