3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 ptrade 量化平台中,获取 Level-2 逐笔委托行情主要通过 get_individual_entrust 接口实现。需要注意的是,该接口需开启 Level-2 行情权限方可获取数据。
get_individual_entrust(stocks=None, data_count=50, start_pos=0, search_direction=1, is_dict=False)
['600570.SS', '000001.SZ'])。True,能大幅提升取数速度。接口返回的数据包含以下核心字段:
0: 卖单(Sell)1: 买单(Buy)2: 借入3: 出借通过检查 business_direction 字段的值即可明确区分委托属性:当 business_direction == 1 时为买入委托;当 business_direction == 0 时为卖出委托。
以下策略展示了如何在 ptrade 盘中(如 handle_data 或 run_interval)实时获取逐笔委托行情,筛选大单(例如委托金额大于 50 万元)并输出日志:
def initialize(context):
g.security = '600570.SS'
set_universe(g.security)
# 设置大单金额阈值(50万元)
g.large_order_threshold = 500000
def handle_data(context, data):
# 使用 is_dict=True 以获得更高性能
entrust_data = get_individual_entrust(stocks=[g.security], data_count=100, is_dict=True)
if not entrust_data or g.security not in entrust_data:
return
orders = entrust_data[g.security]
fields = entrust_data.get("fields", [])
# 获取各字段索引位置
time_idx = fields.index("business_time")
px_idx = fields.index("hq_px")
amount_idx = fields.index("business_amount")
dir_idx = fields.index("business_direction")
for item in orders:
px = item[px_idx]
amount = item[amount_idx]
direction = item[dir_idx]
order_money = px * amount
# 筛选大于阈值的大单
if order_money >= g.large_order_threshold:
dir_str = "买单" if direction == 1 else ("卖单" if direction == 0 else "其他")
log.info("[大单监控] 时间: %s | 代码: %s | 方向: %s | 价格: %.2f | 数量: %d | 金额: %.2f" %
(item[time_idx], g.security, dir_str, px, amount, order_money))
None 或空数据。is_dict=True,避免 Panel/DataFrame 转换带来的性能开销。