# 响应成交推送回调

# TradeDealHandlerBase

on_recv_rsp(self, rsp_pb)

  • 介绍

    响应成交推送,异步处理 OpenD 推送过来的成交状态信息。
    在收到 OpenD 推送过来的成交状态信息后会回调到该函数,您需要在派生类中覆盖 on_recv_rsp。
    该接口只支持实盘交易,不支持模拟交易。

  • 参数

    参数 类型 说明
    rsp_pb Trd_UpdateOrderFill_pb2.Response 派生类中不需要直接处理该参数
  • 返回

    参数 类型 说明
    ret RET_CODE 接口调用结果
    data pd.DataFrame 当 ret == RET_OK 时,返回交易成交列表
    str 当 ret != RET_OK 时,返回错误描述
    • 交易成交列表格式如下:
      字段 类型 说明
      trd_side TrdSide 交易方向
      deal_id str 成交号
      order_id str 订单号
      code str 股票代码
      stock_name str 股票名称
      qty float 成交数量
      price float 成交价格
      create_time str 创建时间
      counter_broker_id int 对手经纪号
      counter_broker_name str 对手经纪名称
      status DealStatus 成交状态
  • Example

from futu import *
from time import sleep
class TradeDealTest(TradeDealHandlerBase):
    """ order update push"""
    def on_recv_rsp(self, rsp_pb):
        ret, content = super(TradeDealTest, self).on_recv_rsp(rsp_pb)
        if ret == RET_OK:
            print("TradeDealTest content={}".format(content))
        return ret, content

trd_ctx = OpenSecTradeContext(filter_trdmarket=TrdMarket.HK, host='127.0.0.1', port=11111, security_firm=SecurityFirm.FUTUSECURITIES)
trd_ctx.set_handler(TradeDealTest())
print(trd_ctx.unlock_trade(pwd_unlock))
print(trd_ctx.place_order(price=595.0, qty=100, code="HK.00700", trd_side=TrdSide.BUY))

sleep(15)
trd_ctx.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  • Output
TradeDealTest content=  trd_env      code stock_name              deal_id             order_id    qty  price trd_side              create_time  counter_broker_id counter_broker_name trd_market status
0    REAL  HK.00700       腾讯控股  2511067564122483295  8561504228375901919  100.0  518.0      BUY  2021-11-04 11:29:41.595                  5                   5         HK     OK
1
2