《为什么量化交易用“裁剪对数收益率”更靠谱——强化学习中的回报函数选择》这是一个非常核心的强化学习环境设计问题。选择裁剪后的对数收益率Clipped Log Return而非简单收益率Simple Return主要基于以下三个层面的考量1. 为什么用「对数收益率」而非「简单收益率」维度简单收益率rPt−Pt−1Pt−1r \frac{P_t - P_{t-1}}{P_{t-1}}rPt−1​Pt​−Pt−1​​对数收益率rlog⁡(PtPt−1)r \log(\frac{P_t}{P_{t-1}})rlog(Pt−1​Pt​​)时间可加性不可加(1r1)(1r2)≠1r1r2(1r_1)(1r_2) \ne 1 r_1 r_2(1r1​)(1r2​)1r1​r2​可加∑log⁡rilog⁡(∏ri)\sum\log r_i \log(\prod r_i)∑logri​log(∏ri​)与 RL 累计奖励定义天然一致对称性不对称跌 -50% 后需要涨 100% 才回本算术均值≠0\ne 00对称x% 和 -x% 数值相等符号相反均值0 表示不赚不亏值域[−1,∞)[-1, \infin)[−1,∞)正收益无上界(−∞,∞)(-\infin, \infin)(−∞,∞)分布更接近正态梯度信号大涨时梯度爆炸小涨时梯度饱和自然压缩极端值梯度更平稳核心原因RL 的目标是最大化∑γtrt\sum \gamma^tr_t∑γtrt​。其中rtr_trt​是即时奖励Immediate Reward在时间步ttt执行动作后环境返回的标量反馈当日对数收益率γ\gammaγ是折扣因子Discount Factor0≤γ≤10 \le \gamma \le 10≤γ≤1用于降低未来奖励的重要性使问题有界且符合人类“重视当下”的偏好γt\gamma^tγt折扣权重时间越远的奖励权重越小指数衰减∑γtrt\sum \gamma^tr_t∑γtrt​是折扣累积回报Discounted Return表示 Agent 从初始状态开始按策略执行到终止或截断所获得的总“价值”。如果用简单收益率代理优化的是各期简单收益之和但这不等于终端资产。例如连续两天 50% 和 -50%简单收益之和为0但实际资产变为 1.5×0.50.751.5×0.50.75 亏损25%。对数收益率之和 log⁡(终值/初值)严格等价于最大化终端财富的对数这正是投资组合理论中 Kelly Criterion 的最优目标。2. 为什么要「裁剪Clip」对数收益率虽然解决了可加性和对称性问题但引入了新的风险当portfolio_value→0时log⁡(portfolio_value/pre_value)→−∞ 当 \mathrm{portfolio\_value} \rightarrow 0 时\log(\mathrm{portfolio\_value}/\mathrm{pre\_value}) \rightarrow -\infty当portfolio_value→0时log(portfolio_value/pre_value)→−∞这在训练中会导致梯度爆炸一次极端亏损产生的巨大负奖励会摧毁网络权重价值函数发散Critic 网络无法拟合包含-inf的目标值探索崩溃Agent 因恐惧极端惩罚而退化为永远持有现金的保守策略裁剪操作np.clip(log_ret, -max_log_return, max_log_return)的作用将奖励限制在有限区间内保留方向信号的同时消除数值灾难。max_log_return0.5对应单步约 ±65% 的涨跌幅对于日频交易数据已远超正常范围既不会丢失有效信息又能完全屏蔽异常值。3. 为什么不直接用简单收益率 裁剪你可能会想那直接clip(simple_return, -0.5, 0.5)不也行吗答案是可以但次优。因为即使裁剪了简单收益率仍然缺乏时间可加性。Agent 在训练中学到的最优策略仍然是对简单收益求和的最优而非对终端资产的最优。在长周期任务中这种偏差会持续累积。实践建议如果你的环境是日频且杠杆不高简单收益率裁剪后也能工作但如果涉及高频、杠杆或长episode裁剪对数收益率是业界标准做法FinRL、TensorTrade 等主流框架均采用此方案。