# 實時逐筆回呼

on_recv_rsp(self, rsp_pb)

  • 介紹

    實時逐筆回呼,非同步處理已訂閲股票的實時逐筆推送。
    在收到實時逐筆數據推送後會回呼到該函數,您需要在衍生類別中覆寫 on_recv_rsp。

  • 參數

    參數 類型 説明
    rsp_pb Qot_UpdateTicker_pb2.Response 衍生類別中不需要直接處理該參數
  • 返回

    參數 類型 説明
    ret RET_CODE 介面呼叫結果
    data pd.DataFrame 當 ret == RET_OK,返回逐筆數據
    str 當 ret != RET_OK,返回錯誤描述
    • 逐筆數據格式如下:
      欄位 類型 説明
      code str 股票代碼
      name str 股票名稱
      sequence int 逐筆序號
      time str 成交時間
      price float 成交價格
      volume int 成交數量
      turnover float 成交金額
      ticker_direction TickerDirect 逐筆方向
      type TickerType 逐筆類型
      push_data_type PushDataType 數據來源
  • Example

import time
from moomoo import *

class TickerTest(TickerHandlerBase):
    def on_recv_rsp(self, rsp_pb):
        ret_code, data = super(TickerTest,self).on_recv_rsp(rsp_pb)
        if ret_code != RET_OK:
            print("TickerTest: error, msg: %s" % data)
            return RET_ERROR, data
        print("TickerTest ", data) # TickerTest 自己的處理邏輯
        return RET_OK, data
quote_ctx = OpenQuoteContext(host='127.0.0.1', port=11111)
handler = TickerTest()
quote_ctx.set_handler(handler)  # 設定實時逐筆推送回呼
ret, data = quote_ctx.subscribe(['US.AAPL'], [SubType.TICKER], session=Session.ALL) # 訂閲逐筆類型,OpenD 開始持續收到伺服器的推送
if ret == RET_OK:
    print(data)
else:
    print('error:', data)
time.sleep(15)  # 設定腳本接收 OpenD 的推送持續時間為15秒
quote_ctx.close()   # 關閉當條連線,OpenD 會在1分鐘後自動取消相應股票相應類型的訂閲	
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  • Output
TickerTest        code name                     time   price  volume  turnover ticker_direction             sequence     type push_data_type
0  US.AAPL   蘋果  2025-04-07 05:25:44.116  179.81       9   1618.29          NEUTRAL  7490500033117159426  ODD_LOT          CACHE

1
2
3

提示

  • 此介面提供了持續獲取推送數據的功能,如需一次性獲取實時數據,請參考 獲取實時逐筆 介面
  • 獲取實時數據 和 實時數據回呼 的差別,請參考 如何透過訂閲介面獲取實時行情?
  • 行情連線斷開重連後,OpenD 拉取斷開期間,距離當前最近的(最多 50 根)逐筆數據並推送,可透過逐筆推送類型欄位區分