# 回應成交推送回呼

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 moomoo 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.US, host='127.0.0.1', port=11111, security_firm=SecurityFirm.FUTUINC)
trd_ctx.set_handler(TradeDealTest())
print(trd_ctx.place_order(price=595.0, qty=100, code="US.AAPL", 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
  • 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  US.AAPL        蘋果  2511067564122483295  8561504228375901919  100.0  518.0      BUY  2021-11-04 11:29:41.595                  5                   5         US     OK
1
2