3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 PTrade 的 get_fundamentals 函数中,date_type 参数决定了系统是根据公告日期还是会计周期截止日期来筛选财务数据。
简单来说,不填(默认)是“按实际看到的时间”,填 1 是“按财报归属的时间”。
以下是详细的区别解析:
date_type=None(默认模式)publ_date)。date)之前(含当日)已经公开发布的财务数据。date_type=1end_date)。date)之前的财务数据。假设某股票的财务数据发布时间表如下:
end_date) 为 2023-03-31,实际公告日 (publ_date) 为 2023-04-25。如果你在 2023-04-10 调用 get_fundamentals:
date_type=None (默认):
date_type=1:
date_type(使用默认值),以防止策略利用未来信息进行作弊,导致回测结果虚高。date_type=1。Q: 在回测中使用了 date_type=1 会有什么后果?
A: 会导致“未来函数”问题。策略会在财报实际发布之前就“提前”知道了财报的好坏并进行买卖,导致回测收益率异常高,但实盘中无法复现该业绩。
Q: 如果我想获取最近一个季度的财报,无论它是否发布,该怎么写?
A: 使用 date_type=1。例如查询日期设为 20230401,通常能匹配到 end_date 为 20230331 的数据(前提是数据库中有该记录),但这仅限于研究用途。
Q: get_fundamentals 接口如果不传 date 参数,默认是什么时间?
A: 在回测中,默认取当前回测周期的日期(context.blotter.current_dt);在研究或交易模式下,默认取系统当前日期。