“炼金”还是“炼心”?当我在量化里用强化学习跑赢基准的那一刻
哈喽大家好,我是小叶。
今天想跟大家聊点硬核的,但也想说点大实话。如果你最近关注量化投资,肯定被“深度强化学习(DRL)”刷屏了。什么 FinRL、DQN 选股,听起来就像是拿到了打开财富之门的金钥匙。
我去年也迷上了这个。作为一个上财在读、又爱撸码的小程序媛,我当时觉得:既然 AlphaGo 能下赢围棋,那我喂给它全市场的 K 线和因子,它不就能帮我实现财务自由了吗?
1. 那些被“神化”的 DRL 曲线
当时我照着一篇顶会论文复现了一个基于 PPO(Proximal Policy Optimization)的资产组合优化策略。在不考虑手续费和滑点的“理想国”里,那条净值曲线简直美得不像话,年化收益 40%+,夏普比率 3.0。
我当时兴奋得差点就在校友群里发红包了。但当我冷静下来,把万分之三的滑点和千分之一的印花税加进去后,曲线瞬间塌方。
我的反思: 很多 DRL 在量化上的“成功”,其实是拟合了噪声,或者是通过高频换仓在赚那些根本拿不到的虚假利润。强化学习最大的敌人不是模型,而是真实交易里的摩擦成本。
2. 状态空间(State Space)的真相:你喂的是信息还是垃圾?
写代码时,我们喜欢把各种因子、指标一股脑全丢进 Observation 空间。但如果你真的去跑,你会发现模型在面对这些低信噪比的数据时,极其容易陷入“局部最优”。
实战笔记:
我后来换了个思路。与其让模型直接预测涨跌,不如让它学“博弈”。我把状态空间简化为:
- 因子暴露度的偏离情况
- 当前持仓与目标持仓的距离
- 市场的波动率水平
这种简化反而让模型收敛得更快。因为它不再试图在噪声里找规律,而是在约束条件下找最优路径。
3. 给同行的几句真心话
如果你也想入坑 DRL,我有几个踩过坑的建议:
- Reward 别只写 Profit:如果你只看收益,模型会变成一个极度激进的赌徒。试试
Reward = Sharpe - Lambda * Turnover。加入调仓成本的惩罚,模型才会变得“稳重”。 - 环境(Environment)一定要有噪声注入:训练时,给行情加点抖动,给成交加点随机性。只有在“不完美”环境里练出来的模型,才能在真实市场里活下来。
- 别迷信 End-to-End:直接从像素或原始价格到动作的端到端学习,在金融里几乎不可行。传统的因子挖掘依然是内功。DRL 应该是那个帮你在多因子约束下,做动态仓位管理的“大脑”。
4. 写在最后
量化投资其实是一场关于“不确定性”的修行。计算机只是我们的武器,而对市场的敬畏才是核心。
最近我在尝试把“离线强化学习(Offline RL)”应用在历史回测数据的深度挖掘上。因为金融数据没法像围棋那样无限次复盘,如何从有限的、带有偏差的历史数据里学到鲁棒的策略,这可能才是未来几年的真正突破点。
合规提醒:文中提到的策略仅为学术探讨,不构成任何实盘建议。股市有风险,入市需谨慎哦!