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

ptrade 接口 get_tick_direction 获取分时成交数据为空怎么办?

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

问题描述

get_tick_direction返回空数据是什么原因?

使用get_tick_direction获取分时成交数据时,返回的数据为空,为什么?

解决方案

在 ptrade 量化交易平台中,使用 get_tick_direction 接口获取分时成交数据时返回空数据,通常是由以下几个原因导致的:

1. 未开通 Level2 行情权限(最常见原因)

根据 ptrade API 文档的明确说明:分时成交数据需开通 Level2 行情才有数据推送,否则无数据返回。普通的 Level1 行情无法获取逐笔/分时成交的详细数据。请联系您的券商确认您的账户是否已经开通了 Level2 行情权限。

2. 查询日期的限制

get_tick_direction 接口的 query_date 参数目前只支持查询当日的数据。如果您尝试传入历史日期(例如昨天的日期),接口将无法返回数据。默认情况下 query_date=0 即表示查询当日。

3. 标的当日无交易或停牌

如果您查询的股票在当日处于停牌状态,或者在您查询的时间点(如集合竞价前)尚未产生任何成交,接口也会返回空数据。

4. 接口调用环境限制

请确保该接口是在交易模块中调用的。文档指出该函数仅在交易模块可用,如果在回测或研究模块中调用,可能无法获取到预期的实时数据。

排查建议

  1. 确认权限:首先向券商客服确认您的资金账户是否绑定了有效的 Level2 行情。
  2. 检查参数:确保 query_date 参数为 0 或当天的日期(格式 YYYYMMDD)。
  3. 测试热门标的:尝试查询流动性好的热门股票(如 000001.SZ600000.SS),以排除个股无成交的情况。

示例代码(正确调用方式):

def initialize(context):
    g.security = '000001.SZ'
    set_universe(g.security)

def handle_data(context, data):
    # 获取当日分时成交数据,默认 query_date=0
    direction_data = get_tick_direction(g.security)
    if direction_data and g.security in direction_data:
        log.info('成功获取数据')
        business_amount = direction_data[g.security]['business_amount']
        log.info('最新分时成交量:%s' % business_amount)
    else:
        log.warning('获取数据为空,请检查 Level2 权限或交易状态')