您好!我们使用TqSdk 3.10.2的 get_kline_data_series、query_symbol_settlement 和交易日历接口,下载并冻结了上期所具体合约的完整日线数据。为满足研究数据的可复现与审计要求,想请官方书面确认以下事项:
1. TqSdk历史Tick、K线、结算价及交易日历在首次发布后,是否可能因交易所更正、供应商清洗、生成算法调整或其他原因被追溯修订?
2. 若可能修订,通常触发条件、修订范围和处理流程是什么?再次调用相同接口与相同日期区间时,是否可能取得不同结果?
3. 是否保留历史数据的时点版本、版本号或修订记录,用户能否复现某一获取日期当时的数据?
4. 历史数据发生更正时,通过何种渠道通知用户,例如版本日志、公告、邮件或接口字段?
5. 官方建议用户采用何种方式冻结数据版本、记录修订状态并保证回测可复现?
6. 上述政策是否适用于TqSdk提供的全部国内期货历史数据,包括日K、Tick、结算价和交易日历?如各类数据政策不同,请分别说明。
如已有正式文档,请提供对应链接或文件名称。谢谢!
您好,按您的问题逐项回复:
- 历史数据是否可能修订?
TqSdk 的期货行情直接接收并转发交易所数据,不经过第三方数据供应商清洗。历史数据通常保持不变,但我们不承诺所有数据永久不作修复;如果发现数据接收、存储或 K 线生成存在问题,可能修复受影响的数据。 - 什么情况下修订?再次查询会不会不同?
主要包括交易所最终数据发生调整、发现历史数据缺失或异常。修复后查询会有不同。 - 是否保留历史时点版本?
目前没有向用户提供历史数据的时点版本、数据版本号或逐次修订记录,也不能通过接口重新获取某个历史日期当时提供的数据版本。 - 数据更正如何通知?
目前没有针对每次历史数据修复的统一通知接口、邮件或修订字段。涉及 TqSdk 程序、接口或数据处理逻辑的重要修改,一般会记录在版本变更中,但版本日志不是完整的数据修订清单。 - 如何保证回测可复现?
如果业务有严格的审计要求,需要自行保存当时取得的数据版本。对于一般策略研究,回测的主要用途是验证信号、开平仓、仓位和风控等重要逻辑是否正确,并检查策略在不同市场阶段的稳健性,不建议一味追求回测结果与历史每一笔行情或实际成交完全一致。回测收益也不能视为未来收益。 - 不同数据类型是否存在差异?
存在差异:
Tick 来源于交易所实时行情,正常情况下不会被事后任意修改;K 线由行情数据生成,可能受底层数据修复或生成逻辑修复影响,正常情况下也不会修改,因为清洗数据也要花很长时间;结算价以交易所最终结算结果为准,交易所在特定情况下有权决定或调整当日结算价;交易日历根据交易所安排维护,未来交易日可能因节假日或临时安排调整,已经发生的历史交易日通常不会变化。
有其他问题也可以到官方Q群748265037反馈