3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 JoinQuant (聚宽) 量化平台中,set_option('use_real_price', True) 是一个非常重要且官方强烈建议开启的设置项。它用于设置是否开启动态复权(真实价格)模式。
简单来说,它的核心作用是决定你的策略在回测和模拟交易时,是使用真实的未复权价格进行撮合交易,还是使用前复权价格进行撮合交易。
以下是详细的解析:
True) 的含义与影响当你在 initialize 函数中设置 set_option('use_real_price', True) 时:
history、attribute_history、get_price 等数据获取 API 拿到的,依然是基于当天日期的前复权价格。这样你在计算均线、技术指标时不需要自己手动处理复权跳空缺口。context.portfolio)中体现,完美模拟真实账户的除权除息。False) 的弊端如果不开启(默认是 False,主要是为了兼容早期旧策略):
官方强烈建议您开启动态复权(真实价格)模式,进行模拟与回测!
开启方式:
只需在策略的 initialize 初始化函数中加入一行代码即可:
def initialize(context):
# 开启真实价格(动态复权)模式
set_option('use_real_price', True)
# 其他初始化代码...
g.security = '000001.XSHE'
history 等 API 返回的前复权价格可能是不一样的(因为基准日变了)。所以,不要把今天获取的历史数据存到全局变量里留到明天去用,每天需要数据时重新获取即可。history 拿到昨天的真实价格,需要用取得的前复权价格除以复权因子(factor)。总结:作为新人,写策略的第一步,请务必在 initialize 中写上 set_option('use_real_price', True),这能让你的回测结果更贴近实盘,少走很多弯路。