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

聚宽(JoinQuant)模拟交易提示“当前不是回测,'avoid_future_data'选项无效”是否需要删除代码?

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

问题描述

跑模拟盘是不是需要删掉avoid_future_data

模拟交易一个策略,运行日志提示
“当前不是回测,'avoid_future_data'选项无效”
是不是得在代码里把set_option("avoid_future_data", True)删掉呢?

解决方案

结论:不需要强制删除,但建议注释或删除以保持日志整洁。

在 JoinQuant(聚宽)平台上,当您在模拟交易中看到日志提示 “当前不是回测,'avoid_future_data'选项无效” 时,这仅仅是一个提示信息(Warning/Info),并不会导致您的策略报错或停止运行。

为什么会出现这个提示?

  1. 未来数据的本质:所谓“未来数据”,是指在回测历史行情时,策略不小心获取了当前逻辑时间点之后的数据(例如在早上9:30获取了当天的收盘价)。set_option("avoid_future_data", True) 是聚宽提供的一个专门用于回测环境的防范机制,用来帮助开发者检测和剔除未来数据。
  2. 模拟盘的运行机制:模拟盘是随着真实时间实时推进的。在现实世界中,您根本无法获取到“未来”的数据(比如今天上午不可能拿到今天下午的收盘价)。因此,在模拟盘环境中,防范未来数据的机制自然就失去了意义,系统会提示该选项无效。

处理建议

  • 如果您希望日志保持干净:建议在跑模拟盘时,将代码中的 set_option("avoid_future_data", True) 注释掉或删除。
  • 如果您的代码需要同时兼容回测和模拟:您可以保留这行代码,直接忽略这条提示信息即可,它对模拟盘的实际交易逻辑和撮合没有任何负面影响。

代码示例:

def initialize(context):
    # 在回测时开启,模拟盘时可以注释掉
    # set_option("avoid_future_data", True) 
    
    set_benchmark('000300.XSHG')
    set_option('use_real_price', True)

总结来说,这只是平台善意的提醒,您可以根据自己对日志整洁度的要求来决定是否删除。