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

PTrade 如何使用 get_tick_direction 获取分时成交行情与买卖单方向?

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

问题描述

请根据以下 SEO 主题生成完整页面内容:

Title: PTrade Level-2 进阶:使用 get_tick_direction 分析盘中分时成交方向

Question: 如何在 PTrade 中通过 get_tick_direction 获取当日分时成交数据并判断买卖单方向?

解决方案

PTrade Level-2 进阶:使用 get_tick_direction 分析盘中分时成交方向

在高频交易与盘中微观结构分析中,准确识别成交单的买卖方向(主动买单/主动卖单)是判断资金介入意图和短线动能的关键。PTrade 平台提供了基于 Level-2 行情的高级接口 get_tick_direction,允许开发者轻松获取当日的分时成交数据并判断成交方向。


1. 接口功能与适用场景

  • 适用模块:仅在 PTrade 交易模块(实盘/模拟盘)可用。
  • 数据依赖:该接口依赖 Level-2 行情权限,若未开通 L2 行情权限将无数据返回。
  • 主要用途:获取当日分时成交记录,分析主动买盘(外盘)、主动卖盘(内盘)及平盘的成交量与成交额分布。

2. get_tick_direction 语法及参数说明

get_tick_direction(symbols=None, query_date=0, start_pos=0, search_direction=1, data_count=50)
参数解析 类型 必填/可选 说明
symbols list/str 可选 标的代码或代码列表,默认为当前策略股票池(set_universe 设定的股票)
query_date int 可选 查询日期,默认为 0 表示当日(目前行情仅支持当日,格式 YYYYMMDD
start_pos int 可选 起始位置,默认为 0
search_direction int 可选 搜索方向:1 表示向前,2 表示向后,默认为 1
data_count int 可选 请求的数据条数,默认为 50,最大支持 200

3. 返回数据结构与买卖方向判别

接口返回一个 OrderedDict 对象,Key 为标的代码,Value 为包含分时成交明细的结构。

核心返回字段如下:

  • time_stamp: 时间戳毫秒级(int64)
  • hq_px: 成交价格(float64)
  • business_amount: 成交数量(int64)
  • business_balance: 成交金额(int64)
  • business_count: 成交笔数(int64)
  • business_direction: 成交方向(int64)
    • 0: 卖(主动卖单 / 内盘)
    • 1: 买(主动买单 / 外盘)
    • 2: 平盘

4. 示例代码:获取分时成交并统计主买主卖比例

以下是一个完整的 PTrade 策略示例,演示如何在盘中调用 get_tick_direction 并统计指定股票的主买与主卖力量:

def initialize(context):
    g.security = '000001.SZ'
    set_universe(g.security)
    # 设置定时任务或在 handle_data 中调用

def handle_data(context, data):
    security = g.security
    
    # 获取平安银行最近 50 条分时成交数据
    direction_data = get_tick_direction(symbols=security, data_count=50)
    
    if security in direction_data:
        df = direction_data[security]
        
        # 筛选主动买单(1)与主动卖单(0)
        buy_trades = df[df['business_direction'] == 1]
        sell_trades = df[df['business_direction'] == 0]
        
        buy_volume = buy_trades['business_amount'].sum()
        sell_volume = sell_trades['business_amount'].sum()
        
        log.info("最近 50 笔成交中 - 主买总量: %s, 主卖总量: %s" % (buy_volume, sell_volume))
        
        # 策略逻辑依据:买盘显著大于卖盘时跟进
        if buy_volume > sell_volume * 1.5:
            log.info("检测到主动买盘强势,准备触发交易逻辑")

5. 注意事项

  1. 回测环境限制get_tick_direction 仅支持实盘与模拟盘交易环境,不可在回测环境中使用。
  2. 频率与性能:频繁获取大量 Tick 级别分时成交时,建议控制请求频次及 data_count 数量,避免阻塞策略主线程。
  3. Level-2 数据配合:如需获取极速逐笔委托和逐笔成交,可结合 get_individual_entrustget_individual_transaction 接口配合使用。