问题描述
/
解决方案
在 ptrade 量化交易平台中,调用 get_price 和 get_history 接口获取历史行情数据时,存在明确的时间限制。
核心解答
根据 ptrade API 文档规定,get_price 和 get_history 接口只能获取 2005 年之后的数据。
如果您尝试获取 2005 年之前的历史行情,接口将无法返回有效数据。
接口调用重要注意事项
为了确保您在策略中正确、稳定地获取历史数据,除了时间限制外,还需要注意以下几点:
1. 停牌数据的处理机制
针对股票停牌场景,这两个接口没有跳过停牌的日期。无论您是对单只股票还是多只股票进行调用,时间轴均为二级市场交易日日历。停牌时,系统会使用停牌前的数据进行填充,且成交量(volume)为 0。在编写日 K 线策略时,可以通过判断成交量是否为 0 来过滤停牌日的数据。
2. 多线程调用限制
get_history 接口与 get_price 接口不支持多线程同时调用。在 run_daily 或 run_interval 等定时函数中,请不要与 handle_data 等框架模块在同一时刻调用这两个接口,否则会偶现获取数据为空的异常现象。
3. 非标准交易所数据的差异
如果您获取的是证监会行业、聚源行业、概念板块、地域板块所对应标的的行情数据,请注意这些数据为非标准的交易所下发数据,是由数据源自行按照成分股分类规则进行计算的,可能存在与第三方数据源不一致的情况。在策略中使用前,请自行评估该数据的合理性。
4. 接口参数差异
get_history:主要用于获取最近 N 条(count)历史行情 K 线数据,包含当前周期可通过include=True设置。get_price:支持获取指定日期前 N 条,或者指定时间段(start_date到end_date)内的历史行情数据。需要注意的是,get_price返回的数据内容不包括当天数据。
合理利用 is_dict=True 参数可以返回字典格式数据,这在获取大量数据时能相对提升取数速度。