# イベントコントラクト逐筆プッシュ

on_recv_rsp(self, rsp_pb)

  • 説明

    イベントコントラクト逐筆プッシュコールバック。登録済みイベントコントラクトのリアルタイム逐筆プッシュを非同期処理します。
    イベントコントラクト逐筆データプッシュの受信時にこの関数がコールバックされます。派生クラスで on_recv_rsp をオーバーライドしてください。

  • パラメータ

    パラメータ 説明
    rsp_pb Qot_UpdateEventContractTicker_pb2.Response 派生クラスでは直接処理不要
  • 戻り値

    パラメータ 説明
    ret RET_CODE API呼び出し結果
    data pd.DataFrame ret == RET_OK の場合、イベントコントラクト逐筆データを返します
    str ret != RET_OK の場合、エラーの説明を返す
    • 逐筆データのフォーマット:
      フィールド タイプ 説明
      code str コントラクトコード
      time str 約定時間
      yes_price float YES 約定価格
      no_price float NO 約定価格
      volume float 約定数量
      side PredSide 逐筆方向(YES/NO)
      sequence str 逐筆番号
  • Example

import time
from moomoo import *

class TickerTest(EventContractTickerHandlerBase):
    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_event_contract(
    code_list=['EC.KXODIMATCH-26JUL140600INDENG-IND'],
    subtype_list=[SubType.TICKER],
    subscribe_push=True)  # イベントコントラクト逐筆タイプを登録、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
22
23
24
25
  • Output
TickerTest                                   code                 time  yes_price  no_price  volume side             sequence
0  EC.KXODIMATCH-26JUL140600INDENG-IND  2026-07-13 04:27:13        0.5       0.5   96.61  YES  7661926304047955968
1
2