回测绩效数据

由bqjgnw6x创建,最终由bqjgnw6x 被浏览 5 用户

利用平台回测函数

performance.get_stats()

可以得到如下指标,示例如图:

1. 累计收益率(return_ratio):62.53%

含义:从回测开始到结束,投入的资金增长了多少。

  • 解读:初始投入 100 万元,最终变成 162.53 万元,总共赚了 62.53 万元
  • 对标:这个收益率涵盖了 4 年多的回测期(2022-2026),在A股整体低迷的时期,这个成绩相对不错

2. 年化收益率(annual_return_ratio):13.27%

含义:假设每年都能取得这样的收益,折合成年化的收益率。

  • 计算方式:将 4 年的 62.53% 收益平均到每一年
  • 对标意义
    • 银行理财产品:3-4%
    • 债券基金:5-8%
    • 本策略:13.27% ✓ 明显高于无风险资产
    • 沪深 300 年化:~5%(同期基准)

3. 基准收益率(benchmark_ratio):-3.96%

含义:如果什么都不做,直接持有沪深 300 指数,这 4 年的收益。

  • 解读
    • 基准下跌 3.96%(市场走熊)
    • 策略收益 62.53%
    • 超额收益 = 62.53% - (-3.96%) = 66.49%
    • 这说明策略在熊市中逆势上涨,具有很强的选股能力

4. 夏普比率(Sharpe Ratio):0.53

含义:每承受 1% 的波动,能获得多少收益。这是衡量风险调整收益的重要指标。

  • 计算逻辑:(年化收益率 - 无风险利率) / 收益波动率
  • 对标
    • 夏普比 < 0.5:不太理想
    • 夏普比 0.5-1.0:还不错 ✓ 本策略在这个区间
    • 夏普比 > 1.0:优秀
    • 夏普比 > 2.0:非常优秀
  • 解读:策略的风险调整收益处于中等水平,说明在承受风险的同时,获得了合理的回报

5. 信息比率(Information Ratio):0.76

含义:策略相对于基准的超额收益有多稳定。

  • 计算方式:超额收益 / 跟踪误差
  • 对标
    • IR < 0.5:一般
    • IR 0.5-1.0:较好 ✓ 本策略在这个区间
    • IR > 1.0:优秀
  • 实际意义:策略不仅跑赢了基准,而且这种超额收益相对稳定,不是偶然性的波动

6. 收益波动率(return_volatility):22.64%

含义:收益的波动程度,反映了策略的不稳定性。

  • 对标
    • 波动率 < 15%:低波动,适合保守投资者
    • 波动率 15%-30%:中波动 ✓ 本策略在这个区间
    • 波动率 > 30%:高波动
  • 解读:策略的收益虽然稳定性一般,但这是选股型策略的常见特征。相比股票投资者的个股波动(40-60%),已经相对温和了

7. 最大回撤(max_drawdown):34.3%

含义:从策略的最高点到最低点,最大亏损了多少。

  • 解读
    • 最坏情况下,投资者可能经历过从 100 万跌到 65.7 万的情况
    • 这通常发生在 2022-2023 年的熊市期间
  • 心理考验:这是衡量投资者心理承受力的关键指标
    • 如果不能承受 34% 的回撤,这个策略风险承受度太高
    • 但相比大盘同期回撤(50%+),已经相对抗跌

8. 贝塔系数(Beta):0.73

含义:策略与市场的相关性。贝塔 = 1 表示跟随市场。

  • 对标
    • Beta < 1.0:策略相对市场波动更小 ✓ 本策略
    • Beta = 1.0:完全跟随市场
    • Beta > 1.0:波动比市场更大
  • 实际意义
    • 当大盘涨 10% 时,本策略平均涨 7.3%
    • 当大盘跌 10% 时,本策略平均跌 7.3%
    • 这说明策略具有防守性,在熊市中下跌幅度更小

9. 阿尔法值(Alpha):0.15

含义:扣除系统风险(贝塔)后,策略获得的超额收益。

  • 解读
    • 这 0.15 是策略独有的能力,不是来自市场方向
    • 说明选股能力真实存在,而不是只靠运气或追涨跌
  • 对标
    • Alpha > 0:有真实的超额收益能力 ✓ 本策略
    • Alpha = 0:完全跟随市场
    • Alpha < 0:选股能力不足

10. 胜率(win_ratio):57.43%

含义:在所有交易中,赚钱的交易占比。

解读: 100 次调仓中,57 次赚钱,43 次亏钱 这是一个正常的胜率,说明策略选股有一定准确度

对标: 胜率 40-50%:一般,依靠盈亏比获利

胜率 50-60%:中等 ✓ 本策略在这个区间

胜率 > 60%:较好

11. 盈亏比(profit_loss_ratio):1.4

含义:平均赚钱交易与亏损交易的金额比。

计算:平均单次盈利 / 平均单次亏损 = 1.4

解读: 每次亏损 1 元,平均能赚 1.4 元 虽然胜率只有 57%,但因为赚钱时赚得多,亏钱时亏得少,所以整体盈利

数学验证: 盈利交易贡献:57% × 1.4 = 79.8 个单位收益

亏损交易贡献:-43% × 1.0 = -43 个单位收益

净收益 = 79.8 - 43 = 36.8 个单位 ✓ 符合整体赚钱的逻辑


如果想了解更详细的指标数据,可以采用如下函数:

performance.raw_perf

该函数输出的是回测的原始明细数据,包含每日的详细交易、持仓、基准等信息。以下是各字段详解:

date,trading_days略过

portfolio_value - 投资组合总价值

2022-01-04: 1000000.00    (初始资金)
2022-01-05: 1003146.25    (已浮盈 3146.25)
2026-01-21: 1625347.84    (最终价值)
  • 计算方式:长头价值 + 短头价值 + 现金
  • 最重要指标:这个值的变化就是策略的收益来源

starting_value - 当日起始持仓价值

2022-01-04: 0.0           (初始无持仓)
2022-01-05: 0.0           (第一天还在下单)
2022-01-06: 1002599.0     (开始有持仓)
  • 当天市场开盘前的持仓市值
  • 用于计算当日收益率

ending_value - 当日结束持仓价值

2022-01-05: 1002599.0
2022-01-06: 1003020.0
  • 当天收盘时的持仓市值
  • 用途:与starting_value对比,可看出当日浮盈变化

starting_cash - 当日起始现金

2022-01-04: 1000000.00    (初始全现金)
2022-01-05: 1000000.00    (下单中)
2022-01-06: 547.25        (大部分现金已用于买股)
2026-01-21: 1314.88       (基本没闲置现金)
  • 当天开盘前账户的现金余额
  • 反映了资金使用情况

ending_cash - 当日结束现金

2022-01-04: 1000000.00 2022-01-05: 547.25 (买入消耗现金) 2022-01-06: 547.25 (维持不变) 2026-01-21: 839.84 (调仓卖出增加现金)

  • 当天收盘后的现金余额
  • 会随着买卖操作变化

starting_value - 当日起始持仓价值

2022-01-04: 0.0           (初始无持仓)
2022-01-05: 0.0           (第一天还在下单)
2022-01-06: 1002599.0     (开始有持仓)
  • 当天市场开盘前的持仓市值
  • 用于计算当日收益率

ending_value - 当日结束持仓价值

2022-01-05: 1002599.0
2022-01-06: 1003020.0
  • 当天收盘时的持仓市值
  • 用途:与starting_value对比,可看出当日浮盈变化

💵 现金与持仓字段

starting_cash - 当日起始现金

2022-01-04: 1000000.00    (初始全现金)
2022-01-05: 1000000.00    (下单中)
2022-01-06: 547.25        (大部分现金已用于买股)
2026-01-21: 1314.88       (基本没闲置现金)
  • 当天开盘前账户的现金余额
  • 反映了资金使用情况

ending_cash - 当日结束现金

2022-01-04: 1000000.00
2022-01-05: 547.25        (买入消耗现金)
2022-01-06: 547.25        (维持不变)
2026-01-21: 839.84        (调仓卖出增加现金)
  • 当天收盘后的现金余额
  • 会随着买卖操作变化

long_value - 多头持仓价值

2022-01-05: 1002599.0
2022-01-06: 1003020.0
2026-01-21: 1624508.0
  • 所有持有的多头头寸的总市值
  • 本策略是纯多头,所以 long_value + ending_cash = portfolio_value

short_value - 空头持仓价值

全为 0.0
  • 所有空头头寸的总市值
  • 本策略没有做空,始终为 0

📊 盈亏相关字段

positions_pnl - 持仓盈亏

2022-01-04: 0.00          (无持仓)
2022-01-05: 3146.25       (浮盈)
2022-01-06: 3567.25       (浮盈增加)
2022-01-10: 27562.25      (浮盈进一步增加)
...
2026-01-15: -160392.20    (浮亏 - 逆向波动)
2026-01-21: -106490.16    (浮亏)
  • 含义:当前持仓的未实现盈亏
  • 计算:当前持仓市值 - 持仓成本价
  • 用途:监控实时收益情况

gross_leverage - 总杠杆率

全部在 0.99916 ~ 0.99948 之间
  • 含义:总持仓价值 / 账户总价值
  • 解读
    • 0.9991 意味着 99.91% 的资金用于持股,仅 0.09% 是现金
    • 本策略是全仓或接近全仓状态
    • 这解释了为什么cash始终很低(547.25元)

📝 交易明细字段

transactions - 成交明细

2022-01-04: []                    (无成交)
2022-01-05: [{'instrument': '601086.SH', 'trade_id': '...', 
              'side': 'buy', 'price': 9.65, 'qty': 100400, ...}]
2022-01-06: []                    (无新成交)
2026-01-21: [{'instrument': '605368.SH', ...}, ...]
  • 列表格式:每天可能有多笔成交
  • 包含内容
    • instrument: 股票代码(如601086.SH 是上海银行)
    • trade_id: 成交编号
    • side: 买卖方向(buy/sell)
    • price: 成交价格
    • qty: 成交数量
    • 手续费、时间戳等
  • 用途:追踪每笔交易的详情,分析交易成本

📋 订单信息字段

orders - 订单记录

2022-01-04: [{'instrument': '601086.SH', 'order_id': '1_0_...', 
              'status': 'filled', ...}]
2022-01-05: [{'instrument': '601086.SH', ...}]
2022-01-06: []                    (无新订单)
2026-01-21: [{'instrument': '605368.SH', ...}, ...]
  • 列表格式:可能有多个订单
  • 包含内容
    • order_id: 订单ID
    • instrument: 标的代码
    • status: 订单状态(filled已成交/partial部分/rejected拒绝)
    • direction: 方向
    • volume: 订单数量
    • price: 订单价格
  • 注意:订单不一定成交,transactions才是真实成交

📍 持仓明细字段

positions - 日终持仓

2022-01-04: []                    (无持仓)
2022-01-05: [{'instrument': '601000.SH', 'amount': 116900, 
              'quantity': 12100, 'price': 9.65, ...}]
2022-01-06: [{'instrument': '601000.SH', ...}, ...]
2026-01-21: [{'instrument': '605377.SH', ...}, ...]
  • 列表格式:每天最多3只股票(因为持股3只)
  • 包含内容
    • instrument: 股票代码
    • amount: 持仓金额(数量×价格)
    • quantity: 持股数量
    • price: 成本价格
    • 浮盈、浮盈率等

📖 日志字段

LOG - 策略运行日志

2022-01-04: [{'level': 'INFO', 'msg': 'order[93000000][id:...'}]
2022-01-05: []
2022-01-06: []
...
2026-01-21: []
  • 列表格式:一天可能有多条日志
  • 包含内容
    • level: 日志级别(INFO/WARNING/ERROR)
    • msg: 日志消息
    • 时间戳
  • 用途:调试策略,了解策略每天的决策过程

📈 基准对标字段

benchmark_close - 基准收盘价

2022-01-04: 4917.7653
2022-01-05: 4868.1202    (下跌)
2022-01-06: 4818.2318    (继续下跌)
...
2026-01-21: 4723.0692
  • 基准:沪深300指数
  • 用途:计算基准收益率

benchmark_returns - 基准日收益率

2022-01-04:  0.000000    (首日无对比)
2022-01-05: -0.010095    (基准跌 1.01%)
2022-01-06: -0.010248    (基准跌 1.02%)
2022-01-07:  0.000859    (基准涨 0.09%)
2022-01-10:  0.004495    (基准涨 0.45%)
  • 计算:(benchmark_close - pre_close) / pre_close
  • 含义:基准每天的涨跌幅
  • 对标:可与策略的日收益率对比

benchmark_period_return - 基准累计收益率

2022-01-04:  0.000000
2022-01-05: -0.010095
2022-01-06: -0.020240    (从年初跌 2.02%)
2022-01-10: -0.014991    (从年初跌 1.50%)
...
2026-01-21: -0.039590    (整个回测期基准跌 3.96%)
  • 含义:从回测开始至该日期的累计收益率
  • 用途:对标策略的累计收益率(62.53%)

🎯 超额收益字段

relative_returns - 日超额收益率

2022-01-04:  0.000000    (首日无数据)
2022-01-05:  0.013241    (策略领先 1.32%)
2022-01-06:  0.010668    (策略领先 1.07%)
2022-01-07:  0.005589    (策略领先 0.56%)
2022-01-10:  0.012855    (策略领先 1.29%)
...
2026-01-15: -0.001154    (策略落后 0.12%)
2026-01-21: -0.004702    (策略落后 0.47%)
  • 计算:策略日收益率 - 基准日收益率
  • 含义:该日策略相对基准的表现
  • 用途:找出策略最强的日子和最弱的日子

relative_period_return - 累计超额收益率

2022-01-04: 0.000000
2022-01-05: 0.013241    (累计领先 1.32%)
2022-01-06: 0.024050    (累计领先 2.41%)
2022-01-07: 0.029774    (累计领先 2.98%)
2022-01-10: 0.043012    (累计领先 4.30%)
...
2026-01-15: 0.575434    (累计领先 57.54%)
2026-01-20: 0.644853    (累计领先 64.49%)
2026-01-21: 0.637119    (累计领先 63.71%)
  • 最重要的指标:这就是策略的核心价值
  • 含义:从回测开始至该日期,策略相对基准的累计超额收益
  • 最后一行数值 0.6371 与之前的66.49%超额收益对应
  • 用途:监控策略的持续领先能力

\

{link}