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

JoinQuant 平台设置动态复权 `set_option('use_real_price', True)` 是否作用于指数?

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

问题描述

动态复权也作用于指数上么

请教各位,设置动态复权set_option('use_real_price', True)时是只作用于股票还是也包括指数呢?

解决方案

明确地说,设置动态复权 set_option('use_real_price', True) 对指数是不生效的(或者说没有意义)

为什么对指数不生效?

  1. 指数本身的特性:股票指数(如沪深300、上证50等)在编制和计算时,交易所已经自动处理了成分股的分红、配股、拆分等除权除息事件。因此,指数的点位本身就是连续的,不存在“复权”的概念
  2. 数据获取结果:无论您是否开启 use_real_price,或者在获取数据时 fq 参数设置为 'pre''post' 还是 None,获取到的指数历史价格数据都是完全一样的。

use_real_price 的实际作用范围

根据 JoinQuant 官方文档,set_option('use_real_price', True) 的作用范围如下:

  • 股票(Stock)完全生效且强烈建议开启。开启后,回测和模拟交易将使用真实的未复权价格进行撮合,并在发生分红送转时自动调整账户的持仓数量和现金,从而完美避免“未来函数”并还原真实交易场景。
  • 场内基金(Fund)生效,但不建议开启。因为场内基金在拆分/合并时除权日披露不标准,目前采用的是折算基准日,和实际除权日可能有差异,容易导致计算误差。
  • 期货(Futures)不生效。期货合约不存在分红派息,因此不需要复权。
  • 指数(Index)不生效。如前文所述,指数本身不需要复权。

总结

在编写策略时,如果您操作的是股票,强烈建议在 initialize 函数中加入 set_option('use_real_price', True)。如果您只操作指数(例如获取指数作为择时信号),这行代码写与不写都不会对指数的数据产生任何影响。