3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 ptrade 量化交易系统中,get_tick_direction 是用于获取当日分时成交行情(Tick逐笔方向)的 Level-2 专属 API。通过分析分时成交中的主动买单(外盘)与主动卖单(内盘),量化策略可以实时捕捉盘中的资金情绪与多空力量对比。
使用前提条件:
get_tick_direction(symbols=None, query_date=0, start_pos=0, search_direction=1, data_count=50)
['000001.SZ', '600570.SS'])。0(代表当日),格式为 YYYYMMDD。0。1 表示向前,2 表示向后(默认 1)。50,最大支持 200。返回一个 OrderedDict 对象,字典的 key 为股票代码,value 为该代码的分时成交数据。其中核心字段包含:
time_stamp: 时间戳(毫秒级)。hq_px: 成交价格。business_amount: 成交数量。business_balance: 成交金额。business_count: 成交笔数。business_direction: 成交方向(0: 主动卖出/内盘,1: 主动买入/外盘,2: 平盘)。通过统计近 $N$ 笔分时成交记录中的买卖方向:
business_direction == 1 的 business_amount 累加值。business_direction == 0 的 business_amount 累加值。以下策略展示了如何在 ptrade 盘中运行周期内,定时获取股票的分时成交数据并计算多空力量比率:
def initialize(context):
# 设置股票池
g.security = '600570.SS'
set_universe(g.security)
# 设置定时任务,每10秒分析一次多空力量
run_interval(context, analyze_tick_direction, seconds=10)
def analyze_tick_direction(context):
security = g.security
# 获取最近200条分时成交数据
direction_data = get_tick_direction(symbols=security, data_count=200)
if not direction_data or security not in direction_data:
log.warning("未获取到 %s 的 Level-2 分时成交数据" % security)
return
tick_info = direction_data[security]
# 获取成交方向和成交量数组
directions = tick_info.get('business_direction', [])
amounts = tick_info.get('business_amount', [])
if len(directions) == 0:
return
buy_vol = 0 # 主动买盘总量
sell_vol = 0 # 主动卖盘总量
# 遍历计算多空成交量
for direct, amt in zip(directions, amounts):
if direct == 1: # 主动买
buy_vol += amt
elif direct == 0: # 主动卖
sell_vol += amt
total_vol = buy_vol + sell_vol
if total_vol == 0:
return
# 计算多空净买入比例
net_buy_ratio = (buy_vol - sell_vol) / float(total_vol)
log.info("[%s] 最近%d笔分时成交分析 - 主动买量: %d, 主动卖量: %d, 净买比率: %.2f%%" %
(security, len(directions), buy_vol, sell_vol, net_buy_ratio * 100))
# 策略触发信号示例:当主动买盘占比超过 60% 且无持仓时挂单买入
if net_buy_ratio > 0.2 and get_position(security).amount == 0:
log.info("多头力量强劲,触发买入信号!")
# order(security, 100)
def handle_data(context, data):
pass
get_tick_direction 最多返回 200 条记录,若需监测全天高频方向,建议结合 run_interval 高频调用并自行在策略全局变量 g 中维护数据队列。get_gear_price(十档盘口)或 get_snapshot 一起使用,结合委买委卖队列挂单情况,进一步过滤虚假拉升与挂单砸盘信号。