强化学习框架由五要素组成:
| 要素 | 在量化中的含义 |
|---|---|
| State(状态) | 高维行情数据、因子、持仓信息、波动率等 |
| Action(动作) | 买入 / 卖出 / 平仓 / 持仓比例调整 |
| Reward(奖励) | 收益、夏普率、收益风险比、成本等 |
| Policy(策略) | 神经网络输出的动作分布 |
| Environment(环境) | 市场价格序列(模拟或真实) |
强化学习要解决的核心问题是:
在动态市场中,找到能长期获利的策略,而非只优化单步收益。
Q-Learning 是最基础的 RL 算法,但存在严重限制:
状态必须离散化(不适合集合高维行情数据)
动作也需离散化(难以做仓位控制)
无法处理连续空间
无法泛化
因此,在量化中 Q-Learning 只是教学示例。
DQN 用神经网络逼近 Q 值,使其能:
处理高维市场数据
使用 CNN 或 LSTM 识别时序模式
训练稳定性提升(使用经验回放 + target network)
0:卖出
1:持仓
2:买入
注意:DQN 不能处理连续动作 → 无法交易仓位或量化交易规模。
PPO 相比 DQN 的优势:
| DQN | PPO |
|---|---|
| 动作必须离散 | 可连续动作(仓位、杠杆) |
| 训练不稳定 | 训练稳定(clip loss) |
| 无法处理复杂策略 | 能优化长期收益、风险、夏普比 |
| 只能预测动作 | 能优化策略分布(policy gradient) |
因此,PPO 是当前 AI 量化交易中最常用的 RL 模型。
PPO 优化的目标不是“预测市场上涨”,而是:
reward 通常设计为:
收益 reward:Rt = portfolio_return
风险惩罚:– λ * max_drawdown
杠杆成本:– γ * leverage
滑点 + 手续费成本:– c
最终 reward:
PPO 会自动学习:
怎么持仓
怎么控制仓位
怎么处理波动
怎么减少过度交易行为
这是开发 RL 交易策略的关键环节,包括:
典型状态向量包含:
K 线价格(高开低收)
成交量
技术指标(MA, RSI, MACD)
因子值(波动率、动量)
当前持仓(position)
当前资金(cash)
状态 shape:
连续动作:(推荐,用 PPO)
动作输出范围:[-1, 1]
映射为仓位比例:
-1 = 满仓做空
0 = 空仓
+1 = 满仓做多
离散动作:(DQN)
0:做空
1:持仓
2:做多
奖励函数直接决定策略风格。
PPO 会自动学习减少回撤并扩大利润。
训练完模型后需要严格回测。
年化收益
夏普比
最大回撤
盈亏比
胜率
交易次数(防止过度交易)
交易成本敏感性
不能泄漏未来数据(no look-ahead)
不能对环境过度拟合(需多品种、多周期训练)
需考虑滑点 + 成本 + 买卖深度
需做随机性稳定性测试(seed test)
模拟市场的噪声远小于真实市场噪声。
RL 需要大规模训练数据。
监管、风控团队容易拒绝 RL 策略。
黑天鹅事件会导致 reward 崩溃。
需要持续在线更新与模型监控。
以下给出可立即执行的开发流程:
历史行情(K 线、成交量)
技术因子
新闻情绪因子(可选)
仿照 OpenAI Gym:
推荐:
初学者:DQN
中级:A2C、DDPG
高级:PPO(主流)
组合型:PPO + 模仿学习(Behavior Cloning)
使用 stable-baselines3:
多周期验证(2017–2019、2020–2022)
多市场验证(股指、数字货币、期货)
每日重训练或周期性微调
风控限制最大仓位、杠杆
强化学习适合:
高频以外的中低频策略
多因子 + 动态仓位策略
风险控制与长期收益优化
不适合:
高频
极端行情
数据不足的市场
但当与:
深度学习
因子工程
情绪分析
组合时,强化学习策略往往能获得 更高夏普、更小回撤、更稳收益 的结构化提升。
免费获取专属报价方案