回测绩效数据
由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: 订单IDinstrument: 标的代码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%超额收益对应
- 用途:监控策略的持续领先能力
\