🚀 AI 一键生成 joinquant 策略代码
立即体验
👉 AI 生成代码 👈

JoinQuant get_backtest() 中 get_results() 的基准收益包含交易成本吗?

joinquant | 发布时间: 2026/5/29
以下内容由 EasyQuant 生成。

问题描述

请问get_backtest()问题

请问get_backtest()中get_result中基准收益是纯指数收益还是包括交易成本么?

解决方案

在 JoinQuant(聚宽)量化平台中,通过 get_backtest() 获取的 get_results() 数据里,基准收益(benchmark_returns)是纯指数收益,不包含任何交易成本(如手续费、印花税、滑点等)

详细解析

  1. 基准收益的定义
    基准(Benchmark)在量化回测中通常代表一个“买入并持有(Buy and Hold)”的被动投资组合。在聚宽平台中,默认基准是沪深300指数(000300.XSHG)。benchmark_returns 是直接根据该基准标的每日的收盘价格变动计算得出的纯收益率。

  2. 为什么不包含交易成本?
    基准的主要作用是作为衡量策略表现的“标尺”,用于计算策略的超额收益(Alpha)。为了客观反映市场整体的自然表现,基准收益被设定为理想状态下的纯收益。如果强行加入交易成本,反而会使基准失真,不利于评估策略的真实选股或择时能力。

  3. 策略收益与基准收益的对比

    • 策略收益(returns包含了您在策略中设置的所有交易成本(通过 set_order_cost 设置的佣金、印花税)以及滑点(通过 set_slippage 设置)。
    • 基准收益(benchmark_returns不包含任何交易成本和滑点。

代码示例回顾

当您在研究环境中使用 get_backtest() 时,获取的数据结构如下:

from jqdata import *

# 获取回测对象
gt = get_backtest("您的回测ID")

# 获取收益曲线数据
results = gt.get_results()

# 打印第一天的收益数据
if results:
    print("策略收益:", results[0]['returns'])
    print("基准收益:", results[0]['benchmark_returns']) # 这里的数值是纯指数涨跌幅

总结:在进行归因分析或评估策略表现时,请记住您的策略是在“负重(扣除交易成本)”与“轻装(无交易成本)”的基准进行赛跑。如果您的策略收益能稳定跑赢基准收益,说明您的策略具有真正的超额获利能力。