實驗室

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.

K (states)3
seed=7
K* by BIC
2
BIC at K*
-3602
log L̂ at K
1820
BIC at K
-3590
n bars
500
planted K
3
BIC = −2·log L̂ + p(K)·log n, with p(K) = (K−1) + 2K. Lower is better. The argmin (highlighted amber) is the BIC-preferred mixture.
-3605-3587-3568-3550-3532K=2-3602K=3-3590K=4-3572K=5-3553K=6-3535BIC(K), lower is better-0.070.370.80cumulative log-price coloured by MAP regime (K = 3)t = 0t = 500

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.

圖表

Fig. 1:十個 30 分鐘加密交易對的 BIC(K)。在每個資產上曲線都單調遞減至 K = 4,之後邊際增益急遽縮減,BIC 普遍選擇 K = 4。
Fig. 2:LTC/USDT 30m 價格依 K = 4 HMM 下推斷出的狀態著色。長段單色反映了高駐留機率(0.97–0.99)與 32–76 根 K 棒的駐留時間。
Fig. 3:相同的 K = 4 擬合於 BTC/USDT 30m。四狀態結構跨資產轉移,trend-up、trend-down、drift 與一個獨特的 high-vol 狀態無需任何重新調校即可回復。
Fig. 4:LTC 30m 上估計的轉移矩陣 A。對角主導,每個 p_kk 都高於 0.97,正是讓這些狀態有用的原因:狀態估計穩定到足以據以條件化風險。
Fig. 5:在具三個已知狀態的合成資料上進行健全性檢查。EM 以 ≥98% 的逐根準確率回復植入的狀態序列;BIC 在此正確地辨識出 K* = 3。

為何這對系統化策略很重要

多數策略評估會在單一混合樣本上對績效取平均並報告單一 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. [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. [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. [3]Schwarz, G. (1978). Estimating the dimension of a model. Annals of Statistics 6(2), 461–464.