量化策略迭代方法论:影子系统 / 并行策略验证
一、为什么必须“双系统并行”
1 新策略可能有逻辑 Bug
这是最基础的一层。
任何新的过滤器,例如:
volatility_filter
liquidity_filter
trend_filter
都可能出现:
- 边界条件错误
- 数据异常处理错误
- API异常
- 状态机错误
例如:
ATR = 0
导致:
division by zero
或者:
NaN信号
这种问题只要跑几天:
一定会暴露出来。
2 新过滤器可能“杀死 Alpha”
这是更重要的一层。
量化策略最常见的错误是:
过滤掉盈利机会。
例如:
原系统:
一天 200 个信号
胜率 52%
加入过滤器后:
一天 20 个信号
胜率 60%
看起来更好了,但真实情况可能是:
真实盈利下降
因为:
交易频率下降太多。
真实量化收益公式其实是:
收益 = 胜率 × 盈亏比 × 交易次数
很多人只看:
胜率
这是非常危险的。
3 市场环境适配问题
新的过滤器可能只适合:
- 震荡行情
- 趋势行情
但不适合另一种。
例如:
trend_filter
在震荡市场会:
严重降低收益。
二、双系统并行的标准结构
A/B Strategy Testing
结构通常是:
系统A(旧策略)
系统B(新策略)
两套系统:
- 同样市场
- 同样数据
- 同样时间
唯一不同:
策略逻辑
两种常见模式
模式1:信号对比(最常见)
A系统:真实交易
B系统:只记录信号
记录:
signal_A
signal_B
然后统计:
差异交易
例如:
A交易了
B没交易
这就是:
过滤掉的交易
然后观察:
这些交易是盈利还是亏损
模式2:真实双账户(更真实)
A账户:旧策略
B账户:新策略
两套真实交易。
然后比较:
PNL
drawdown
sharpe
但这种成本稍高。
三、为什么测试周期必须是“几天”
市场具有:
状态切换
例如:
亚洲盘
欧美盘
或者:
震荡
趋势
如果只测试:
1天
很容易:
样本偏差
一般来说:
最少:
3–7天
比较合理。
如果是:
低频策略
甚至要:
几周
四、策略收紧其实是一个“信号熵压缩过程”
这是一个比较底层的视角。
原始策略:
信号熵很高
噪音很多
逐步降低:
signal entropy
但问题是:
如果压缩过度:
信息也被压缩掉
这就是:
Alpha Loss
所以正确方式不是:
一次性大幅过滤
而是:
渐进式压缩
你现在做的:
滚动收紧
就是最安全的方式。
五、你现在用的是“滚动优化模型”
整个流程其实是:
宽信号系统
↓
发现问题
↓
增加过滤
↓
并行验证
↓
上线
↓
继续发现问题
↓
继续过滤
这个过程叫:
Rolling Optimization
或者:
Incremental Hardening
很多成熟系统都是这样进化的。
六、为什么这种方法比“回测优化”强
传统量化流程是:
历史数据
↓
回测
↓
参数优化
↓
上线
问题是:
市场是非平稳系统
历史数据并不代表未来。
而你的方法是:
真实市场
↓
真实交易
↓
真实反馈
↓
策略修正
这是:
在线学习系统(Online Learning System)
比传统方法:
鲁棒很多。
七、最终成熟系统会进入“收敛阶段”
当系统跑到一定阶段,会出现一个现象:
可优化空间越来越小
例如:
新过滤器带来的改进:
PNL +10%
慢慢变成:
PNL +1%
最后变成:
PNL +0.1%
这时候系统其实已经:
接近稳定结构。
八、顶级量化团队还有一个额外层
在你的双系统之外,他们还会加:
第三层
研究系统
↓
影子系统
↓
生产系统
结构:
Research Strategy
↓
Shadow Trading
↓
Production Trading
你现在其实已经:
做到了第二层。