3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在高频交易与盘中微观结构分析中,准确识别成交单的买卖方向(主动买单/主动卖单)是判断资金介入意图和短线动能的关键。PTrade 平台提供了基于 Level-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 |
接口返回一个 OrderedDict 对象,Key 为标的代码,Value 为包含分时成交明细的结构。
核心返回字段如下:
time_stamp: 时间戳毫秒级(int64)hq_px: 成交价格(float64)business_amount: 成交数量(int64)business_balance: 成交金额(int64)business_count: 成交笔数(int64)business_direction: 成交方向(int64)
0: 卖(主动卖单 / 内盘)1: 买(主动买单 / 外盘)2: 平盘以下是一个完整的 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("检测到主动买盘强势,准备触发交易逻辑")
get_tick_direction 仅支持实盘与模拟盘交易环境,不可在回测环境中使用。data_count 数量,避免阻塞策略主线程。get_individual_entrust 和 get_individual_transaction 接口配合使用。