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

PTrade 平台 tick_data 函数的执行时间与频率是什么?

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

问题描述

PTrade中tick_data函数的执行时间和频率是什么?

想了解tick级别策略的执行时机

解决方案

在 PTrade 量化交易平台中,tick_data 函数是专门用于处理 tick 级别高频策略的核心回调函数。关于它的执行时间和频率,官方文档有明确的规定:

1. 执行频率

  • 频率tick_data 函数每隔 3 秒执行一次
  • 说明:当策略选择 tick 频率运行时,交易的最小频率可以达到 3 秒运行一次,这使得策略能够捕捉到盘中极短时间内的价格和盘口变化。

2. 执行时间

  • 时间段:该函数的执行时间为交易日的 9:30 -- 14:59
  • 说明:它覆盖了正常的连续竞价交易时段,不包含盘前集合竞价和 14:59 之后的尾盘集合竞价阶段。

3. 使用场景与注意事项

  • 适用模块:该函数仅在交易模块可用,回测环境中不支持。
  • 下单限制:在 tick_data 函数中,只能使用 order_tick 接口进行对应的下单操作,不能使用常规的 order 系列函数。
  • 数据结构tick_data 函数中的 data 参数与 handle_data 中的 data 结构完全不同。它是一个嵌套字典,包含了 order(逐笔委托)、tick(当前tick快照数据)和 transcation(逐笔成交)三项内容。
  • Level2 行情依赖:参数 data 中包含的逐笔委托(order)和逐笔成交(transcation)数据,必须开通 Level2 行情才会有数据推送,否则对应字段会返回 None

4. 简单代码示例

def initialize(context):
    g.security = '600570.SS'
    set_universe(g.security)

def tick_data(context, data):
    security = g.security
    # 获取买一价
    current_price = eval(data[security]['tick']['bid_grp'][0])[1][0]
    log.info("当前买一价: %s" % current_price)
    
    # 简单的触发逻辑:如果买一价大于指定价格,则按买一档价格下单
    if current_price > 38.19:
        order_tick(security, 100, 1)

def handle_data(context, data):
    pass

总结来说,如果您需要编写对时间极其敏感、依赖盘口档位或逐笔数据的策略,tick_data 是您的首选,但务必注意其 3 秒的执行间隔以及对 Level2 行情的依赖。