哈喽大家好,我是小叶。

今天想跟大家聊点硬核的,但也想说点大实话。如果你最近关注量化投资,肯定被“深度强化学习(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)”应用在历史回测数据的深度挖掘上。因为金融数据没法像围棋那样无限次复盘,如何从有限的、带有偏差的历史数据里学到鲁棒的策略,这可能才是未来几年的真正突破点。

合规提醒:文中提到的策略仅为学术探讨,不构成任何实盘建议。股市有风险,入市需谨慎哦!