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

ptrade 平台 get_price 获取不到当天行情的解决办法

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

问题描述

为什么get_price获取的数据不包含当天行情?

使用get_price获取某只股票的数据时,发现返回的数据中缺少今天的K线,这是怎么回事?

解决方案

在 ptrade 量化交易平台中,使用 get_price 函数获取不到当天的行情数据是正常现象。根据 ptrade 官方 API 文档的说明,这与该接口的设计机制有关。

原因分析

根据 ptrade API 文档中关于 get_price 接口的注意事项:

数据返回内容不包括当天数据

get_price 主要被设计用于获取指定日期之前的历史 K 线数据,因此它在底层实现上过滤掉了当前交易日的数据。

解决方法

如果您在策略中需要获取包含当天的 K 线数据或实时的行情信息,可以使用以下替代方案:

方案一:使用 get_history 函数(推荐获取 K 线)

get_history 函数同样用于获取历史行情,但它提供了一个 include 参数,允许您控制是否包含当前周期的数据。

  • 参数设置:将 include 参数设置为 True

代码示例:

def handle_data(context, data):
    # 获取过去5天(包含今天)的日K线收盘价
    # include=True 表示包含当前周期(即今天)
    his_data = get_history(5, '1d', 'close', security_list='600570.SS', include=True)
    log.info(his_data)

方案二:使用 get_snapshot 函数(推荐获取实时切片)

如果您只需要获取当天的最新价格、开盘价、最高价、最低价或成交量等实时快照信息,而不需要完整的 K 线序列,使用 get_snapshot 是最高效的选择。

代码示例:

def handle_data(context, data):
    # 获取当前股票的实时行情快照
    snapshot = get_snapshot('600570.SS')
    if snapshot:
        # 获取最新成交价
        last_price = snapshot['600570.SS']['last_px']
        # 获取今开盘价
        open_price = snapshot['600570.SS']['open_px']
        log.info(f"最新价: {last_price}, 今开价: {open_price}")

总结

  • 查历史(不含今天):使用 get_price
  • 查历史(包含今天):使用 get_history 并设置 include=True
  • 查当前最新盘口/价格:使用 get_snapshot 或在 handle_data 中直接通过 data[security]['close'] 获取。