3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 JoinQuant 聚宽平台中,数据的获取逻辑与您所处的环境(回测/模拟交易 vs 投资研究)以及底层数据的更新机制密切相关。以下为您详细解答 get_price 和 alpha 因子在不同时间点的取数逻辑:
get_price 的取数逻辑您提到在 9:00 和 19:00 用 get_price 取到的股价是一样的,这通常取决于您是否指定了 end_date 以及您运行代码的环境。
在回测/模拟交易环境中:
context.current_dt)运行的。如果您在 before_trading_start(默认 9:00 运行)调用 get_price 获取日线(1d)数据,由于当天的交易尚未产生,您获取到的最新数据确实是昨天的收盘数据。after_trading_end(15:30 运行)或之后的逻辑时间调用,您获取到的将是今天的收盘数据。在投资研究环境(Jupyter Notebook)中:
end_date,get_price 默认会获取到当前系统时间之前的数据。end_date),系统可能默认返回已完全校验的 T-1 日数据。为了在 19:00 准确获取当天的收盘价,建议明确指定 end_date 为当天的日期(如 end_date='2023-10-25 15:00:00')。alpha 因子的取数逻辑对于聚宽因子库中的因子(包括 Alpha 101、Alpha 191 等),其更新机制与基础行情数据不同。
根据聚宽 API 文档说明:
“频率为天,每天 05:00 更新前一天数据”
这意味着,因子数据的计算需要依赖前一个交易日完整的收盘数据和财务数据,并在夜间进行批处理计算,直到次日凌晨 05:00 才更新完毕。
因此,无论您是在 9:00 还是 19:00 调用 alpha 因子取数函数(如 alpha_001 或 get_factor_values):
get_price):在研究环境中,若想在盘后立即获取当天数据,请务必带上包含具体时分秒的 end_date 参数(如 15:00:00)。alpha):请牢记因子数据是 T+1 日凌晨 05:00 更新 T 日数据,日内任何时间获取的最新因子均为前一交易日的结果,不存在 9:00 和 19:00 的差异。