Signal 5 — Volatility Mean Reversion
| Thuộc tính | Giá trị |
|---|---|
| Phân loại | Volatility |
| Khung thời gian | Daily / 4H |
| Paper gốc | Andersen-Bollerslev (1998); Corsi (2009) HAR-RV |
| Loại dữ liệu | OHLCV |
| Hướng giao dịch | Volatility convergence (sell options / vol-targeting) |
| Capacity | Cao |
Logic. Tính ATR(14) và z-score của ATR so với mean 60 ngày. Khi ATR_z > 2, biến động đang ở cực đoan → kỳ vọng vol mean-revert → giảm position size (vol-targeting) hoặc sell straddle (nếu có options). Khi ATR_z < -1, vol thấp bất thường → nâng size hoặc mua options.
Code Python.
python
def atr(df, period=14):
tr = pd.concat([
df['high'] - df['low'],
(df['high'] - df['close'].shift()).abs(),
(df['low'] - df['close'].shift()).abs()
], axis=1).max(axis=1)
return tr.rolling(period).mean()
def vol_target_size(df, target_vol=0.01, lookback=60):
a = atr(df)
realized = a / df['close']
size_mult = target_vol / realized
return size_mult.clip(0.1, 3.0)QuantConnect setup. Dùng self.ATR(symbol, 14, MovingAverageType.Wilders, Resolution.Daily). Trong Rebalance, set SetHoldings(symbol, base_weight × size_mult) thay vì position cố định. Đây là pattern risk parity sử dụng bởi Bridgewater All Weather.