股票觀測站台指期 · 題材 · 美股 · 論文

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 同一份清單(單一來源,不再各寫各的)

  1. 成本參數:每口手續費(fee)與滑價(slippage)為使用者裁定的假設值(2026-08-31),帳戶參數待填 → 所有績效一律標 assumed-cost(裁定 ≠ 查證,橫幅不撤)
  2. 夜盤特徵自 2017-05、期貨三大法人自 2017-07 起,之前為硬缺口,禁止插補
  3. 沒有 bid/ask,滑價永遠只能是假設值;TX 建模/MTX 執行的落差未量化
  4. 漲跌停鎖死日(實測 4 天)無法成交,回測強制沿用前一日部位
  5. 訓練樣本不含 2008 金融海嘯等級的崩盤(跨市場面板自 2011-08 起)
  6. 1 分 K 已封存 65 天(期交所滾動視窗只給約 30 天,從封存第一天起每日 +1),日內回測能力隨時間累積
  7. 本系統不下單、不接經紀商、不做即時盤
版本 5f92ccf(第 163 次提交,2026-10-14) | 資料建置於 2026-10-14 10:30 UTC | 行情與研究結果供查看;會員可管理觀察清單並要求更新個股分析