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

ptrade 中 get_tick_direction 最多能获取多少条数据?为什么设置了没生效?

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

问题描述

get_tick_direction最多能获取多少条分时成交数据?

使用get_tick_direction设置data_count=300但只返回了很少的数据,为什么?

解决方案

在 ptrade 量化交易平台中,使用 get_tick_direction 接口获取分时成交数据时,关于数据条数限制和返回数据异常的原因如下:

1. get_tick_direction 最多能获取多少条分时成交数据?

根据 ptrade API 文档规定,get_tick_direction 接口的 data_count 参数最大值为 200。默认值为 50。因此,单次调用该接口最多只能获取 200 条分时成交数据。

2. 为什么设置 data_count=300 但只返回了很少的数据?

如果您设置了 data_count=300,但实际返回的数据很少,通常由以下几个原因导致:

  • 参数上限限制:如前所述,data_count 的系统硬性上限是 200。即使您传入 300,系统最多也只会尝试返回 200 条数据。
  • Level2 行情权限未开通:这是最常见的原因。官方文档明确指出:分时成交数据需开通 Level2 行情才有数据推送,否则无数据返回。如果您没有开通 L2 行情,可能会获取不到数据或只能获取到极少量的基础快照切片。
  • 实际成交笔数不足:如果您查询的股票交易非常冷清,在您查询的时间段(或指定的 start_pos 附近)实际发生的逐笔成交本来就很少,那么返回的数据自然达不到您设定的上限。
  • 查询日期限制:目前行情只支持查询当日的数据(query_date=0 或当日日期),无法获取历史分时成交。

💡 建议与代码示例

如果您需要获取最新的分时成交,请确保您的账户已开通 Level2 行情,并将 data_count 设置在合法范围内(<=200)。

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

def handle_data(context, data):
    # 合法调用:获取最大允许的 200 条分时成交数据
    direction_data = get_tick_direction(g.security, data_count=200)
    
    if direction_data and g.security in direction_data:
        # 获取实际返回的数据条数
        actual_count = len(direction_data[g.security]['business_amount'])
        log.info(f"成功获取 {actual_count} 条分时成交数据")
    else:
        log.warning("未获取到数据,请检查是否开通 Level2 行情!")