Lab · 狀態切分
加密微觀結構的隱馬可夫狀態切分
在 (logret, vol, trend) 特徵上的高斯 HMM,狀態數 K 由 BIC 選定,為風險與部位規模產生持久且可解讀的狀態。
數學原理
隱馬可夫模型將長度為 T 的觀測序列 x1:T 透過一個具 K 個狀態的隱 馬可夫鏈 z1:T 加以因式分解。聯合密度為
對於連續特徵,我們令每個發射為高斯分布: 。 參數 θ = (π, A, {μk, Σk}) 由 Baum–Welch (套用於 HMM 的 EM)估計。E 步是前向-後向遞迴
平滑後驗 γt(k) ∝ αt(k) βt(k) 即是我們交付給 下游部位規模規則的東西。它是一個機率,而非硬標籤,而其逐列熵是一個 自然的狀態信心分數。
以 BIC 選擇 K
當特徵位於 d 維時,具完整共變異數的 K 狀態高斯 HMM 有 p = K − 1 + K(K−1) + Kd + Kd(d+1)/2 個自由參數。貝氏訊息準則
以 log n 的速率在樣本內擬合與複雜度之間取捨。我們掃描 K = 2, 3, 4,…,挑選 K* = arg minK BIC(K)。在 30 分鐘 LTC/USDT 上(n = 270,171 根 K 棒;d = 3 個特徵), 掃描結果毫不含糊:BIC 從 K = 2 的 1.633M 降至 K = 3 的 1.366M,再降至 K = 4 的 1.251M。在我們試過的每個資產上 K = 4 都勝出。相同的 跨資產 BIC 圖表如下所示。
持久性與駐留時間
轉移矩陣 A 具有自迴圈機率 pkk。在鏈轉換之前於狀態 k 內所 花費的預期 K 棒數為幾何均值
在 LTC 30m 上擬合,我們測得駐留機率 (0.987, 0.970, 0.969, 0.981),即駐留時間 τ ≈ (76, 34, 32, 52) 根 K 棒,在 30 分鐘時鐘下這意味著這些狀態大約持續 16–38 小時。它們並非閃爍切分的人為產物;它們在 宏觀上是穩定的。
實作範例
逐根 K 棒特徵向量 xt = (logrett, volt, trendt), 其中 logret 是 K 棒對數報酬、vol 是滾動實現標準差、trend 是平滑斜率。 在 LTC 30m 上擬合 K = 4 產生四個狀態,其標準化均值清晰分離:
- R1,drift-down(32% 的 K 棒):負的 vol z、近零的 trend。預設的 背景狀態。
- R2,trend-up(24%):平均 trend ≈ +0.58 σ。持續正向漂移、中等 vol。
- R3,trend-down(25%):平均 trend ≈ −0.60 σ。R2 的鏡像。
- R4,high-vol(20%):平均 vol ≈ +1.48 σ、近零的 trend。離散狀態。
下方的互動式示範會在一條合成價格序列上對 K ∈ {2, …, 6} 即時擬合高斯混合 模型並繪製 BIC(K),最小值會被標出。下方的條帶會依所選 K 之下推斷出的狀態 為價格路徑著色。
Demo: Gaussian-mixture BIC sweep & regime strip
Synthetic log-returns with three planted regimes. EM-fit a K-component mixture for K ∈ {2,…,6}; pick K by BIC; colour the price by MAP regime.
BIC selects K* = 2 on this synthetic series (planted K = 3). The mixture conflates the persistence structure of an HMM into pure distributional separation, so on shorter samples it can prefer K = 2 or K = 4, the production HMM uses the full transition matrix and is better calibrated. Reseed to explore that variance.
圖表
為何這對系統化策略很重要
多數策略評估會在單一混合樣本上對績效取平均並報告單一 Sharpe。 條件化於 zt 會依狀態切分該樣本,並揭露平均所隱藏的結構:一個 在 trend-up 是 +1.5 Sharpe 而在 high-vol 是 −0.8 Sharpe 的策略,與一個在每個 狀態都是 +0.3 的策略並非同一個物件,即便兩者的混合 Sharpe 相同。 HMM 給了我們所需的切分,以便量化地做出這些陳述,而,由於我們使用 平滑後驗,以狀態歸屬機率為 K 棒加權,而非在硬標籤上設門檻。
相同的後驗餵入部位規模器:依 P(zt ∈ favourable | x1:t) 縮放曝險,該值在因果前向通過中計算(用於即時的是濾波而非 平滑)。當鏈有信心時我們加碼;當熵在轉換附近飆升時我們降低風險。我們測得的 持久性(τ ≈ 16–38 h)正是讓這類條件化部位規模在 30 分鐘資料上經濟上可行的 時間尺度。
可重現性
DaruFinance / strategy-regime
Python · 開源參考實作
最小調用
import numpy as np
from strategy_regime import fit_hmm, bic_sweep, posterior
# X: T x d feature matrix (logret, vol, trend) per bar
sweep = bic_sweep(X, K_grid=[2, 3, 4, 5, 6])
K_star = min(sweep, key=lambda r: r["bic"])["K"]
model = fit_hmm(X, n_states=K_star, n_iter=200, seed=0)
gamma = posterior(model, X) # T x K smoothed P(z_t | x_{1:T})
states = gamma.argmax(axis=1) # MAP regime per bar
dwell = 1.0 / (1.0 - np.diag(model.transmat_)) # expected dwell per regime
參考文獻
- [1]Hamilton, J. D. (1989). A new approach to the economic analysis of nonstationary time series and the business cycle. Econometrica 57(2), 357–384.
- [2]Rabiner, L. R. (1989). A tutorial on hidden Markov models and selected applications in speech recognition. Proceedings of the IEEE 77(2), 257–286.
- [3]Schwarz, G. (1978). Estimating the dimension of a model. Annals of Statistics 6(2), 461–464.

