用途:该策略利用历史波动率(HV)的百分位排名捕捉波动率均值回归——在低波动状态下建仓等待波动扩张,在高波动状态下离场或做空以捕捉波动收缩。适用于任意 OHLCV 数据。
信号逻辑:先计算 HV,即过去 hv_window 天收益率的年化标准差;再计算 HV 在过去 lookback 天内的百分位排名(0-100)。当百分位低于 low_pct 时做多(波动率低,等待扩张);高于 high_pct 时离场或做空(波动率高,等待收缩);处于中间区域则保持当前仓位。
实现要点:HV = returns.rolling(hv_window).std() * sqrt(252)(年化);百分位 = hv.rolling(lookback).rank(pct=True) * 100。加密货币应使用 365 而非 252 作为年化因子。
参数与默认值:hv_window 默认 20(历史波动率计算窗口);lookback 默认 120(百分位排名回看期);low_pct 默认 20.0(低波动阈值,百分位);high_pct 默认 80.0(高波动阈值,百分位);annualize 默认 252(年化因子,中国 A 股用 252,加密货币用 365)。
信号约定:1 表示做多(低波动状态),-1 表示做空(高波动状态),0 表示观望。
常见陷阱:回看窗口未填满前数据不足,无法计算百分位,信号应置 0(fillna);波动率不代表方向,低波动状态做多并不保证价格上涨,只意味着波动扩张在统计上更可能;加密货币 7x24 交易,annualize 应设为 365。
依赖:pip install pandas numpy。
限制:资料未提供回测结果、收益表现、适用市场范围及风险控制细节。