收益指标的计算公式
下面给出与你当前代码实现一致的计算口径与公式(记号与代码对应:每日权益用 (B_t),上一日权益用 (B_{t-1}),风险免收益率用 (r_f)):
-
年化收益(Annual Yield)
- 先算总收益 (R_{\text{tot}}),再年化:
- (R_{\text{ann}} = (1 + R_{\text{tot}})^{365 / D} - 1)
- 其中 (D) 为起止日期的自然日数;见下方“总收益”。
-
最大回撤(Max Drawdown)
- ( \text{MDD} = \max_t \frac{M_t - B_t}{M_t} ), 其中 (M_t = \max_{i \le t} B_i)
-
总收益(Total Return)
- 取首日样本的“上一日权益”作为初始本金、末日“当日权益”为期末:
- (R_{\text{tot}} = \frac{B_{\text{end}}}{B_{\text{start-prev}}} - 1)
-
交易赢率(Trade Win Rate)
- 基于平仓记录(开平标记≠开)且有平仓盈亏:
- (\text{WinRate} = \frac{#{\text{closeProfit} > 0}}{#{\text{有 closeProfit 的平仓记录}}})
-
盈亏比(Profit-Loss Ratio)
- (\text{PL} = \frac{\sum \text{closeProfit}{>0}}{\sum |\text{closeProfit}{<0}|})
- 若分母为 0 且分子>0,则记为 (+\infty)
-
最大仓位(Max Position)
- 逐日仓位 (P_t) 口径:
- 同时有市值与保证金:(P_t = 1 - \frac{\text{Available}_t}{B_t})
- 仅有市值:(P_t = \left|\frac{\text{MarketValue}_t}{B_t}\right|)
- 仅有保证金:(P_t = \frac{\text{Margin}_t}{B_t})
- (\max P_t)
- 逐日仓位 (P_t) 口径:
-
平均仓位(Average Position)
- (\bar P = \frac{1}{N}\sum_{t=1}^{N} P_t)(按上面的逐日仓位口径)
-
夏普比率(Sharpe Ratio)
- 先算策略的日收益 (r_t = \frac{B_t}{B_{t-1}} - 1),其日均 (\bar r) 与日标准差
- (\sigma_{\text{daily}} = \sqrt{\frac{1}{N-1}\sum_t (r_t - \bar r)^2})
- 年化波动率:(\sigma_{\text{ann}} = \sigma_{\text{daily}} \sqrt{252})
- 夏普:(\text{Sharpe} = \frac{R_{\text{ann}} - r_f}{\sigma_{\text{ann}}})
-
信息比例(Information Ratio)
- 基准日收益 (r_t^{bm}),相对日超额 (d_t = r_t - r_t^{bm}),其均值 (\bar d) 与日标准差
- (\sigma^{\text{rel}}_{\text{daily}} = \sqrt{\frac{1}{N-1}\sum_t (d_t - \bar d)^2})
- 年化:(\sigma^{\text{rel}}{\text{ann}} = \sigma^{\text{rel}}{\text{daily}} \sqrt{252})
- 信息比例:(\text{IR} = \frac{R_{\text{ann}} - R{bm}_{\text{ann}}}{\sigma{\text{rel}}_{\text{ann}}})