# リアルタイム板情報コールバック

on_recv_rsp(self, rsp_pb)

  • 概要

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

  • パラメータ

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

    パラメータ 説明
    ret RET_CODE API呼び出し結果
    data dict ret == RET_OK の場合、板情報データ
    str ret != RET_OK の場合、エラーの説明を返す
    • 板情報データフォーマットは以下の通り:

      フィールド タイプ 説明
      code str 銘柄コード
      name str 銘柄名
      svr_recv_time_bid str moomoo サーバーが取引所から買い板データを受信した時刻
      svr_recv_time_ask str moomoo サーバーが取引所から売り板データを受信した時刻
      Bid list 各タプルに以下の情報を含む:委託価格、委託数量、委託注文数、委託注文明細
      Ask list 各タプルに以下の情報を含む:委託価格、委託数量、委託注文数、委託注文明細

      Bid と Ask フィールドの構造体は以下の通りです:

      'Bid': [ (bid_price1, bid_volume1, order_num, {'orderid1': order_volume1, 'orderid2': order_volume2, …… }), (bid_price2, bid_volume2, order_num,  {'orderid1': order_volume1, 'orderid2': order_volume2, …… }),…]
      'Ask': [ (ask_price1, ask_volume1,order_num, {'orderid1': order_volume1, 'orderid2': order_volume2, …… }), (ask_price2, ask_volume2, order_num, {'orderid1': order_volume1, 'orderid2': order_volume2, …… }),…] 
      
  • Example

import time
from moomoo import *
class OrderBookTest(OrderBookHandlerBase):
    def on_recv_rsp(self, rsp_pb):
        ret_code, data = super(OrderBookTest,self).on_recv_rsp(rsp_pb)
        if ret_code != RET_OK:
            print("OrderBookTest: error, msg: %s" % data)
            return RET_ERROR, data
        print("OrderBookTest ", data) # OrderBookTest 独自の処理ロジック
        return RET_OK, data
quote_ctx = OpenQuoteContext(host='127.0.0.1', port=11111)
handler = OrderBookTest()
quote_ctx.set_handler(handler)  # リアルタイム板情報コールバックの設定
ret, data = quote_ctx.subscribe(['US.AAPL'], [SubType.ORDER_BOOK])  # 板情報タイプを登録すると、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
  • Output
OrderBookTest  {'code': 'US.AAPL', 'name': '苹果', 'svr_recv_time_bid': '', 'svr_recv_time_ask': '', 'Bid': [(179.77, 100, 1, {}), (179.68, 200, 1, {}), (179.65, 2, 2, {}), (179.64, 27, 1, {}), (179.6, 9, 2, {}), (179.58, 39, 2, {}), (179.5, 13, 4, {}), (179.48, 331, 2, {}), (179.4, 1002, 2, {}), (179.38, 330, 1, {}), (179.37, 2, 1, {}), (179.3, 47, 1, {}), (179.28, 330, 1, {}), (179.21, 2, 1, {}), (179.2, 1000, 1, {}), (179.18, 330, 1, {}), (179.17, 100, 1, {}), (179.16, 1, 1, {}), (179.13, 400, 1, {}), (179.1, 3000, 1, {}), (179.08, 330, 1, {}), (179.05, 125, 2, {}), (179.01, 17, 2, {}), (179.0, 81, 7, {})], 'Ask': [(179.95, 400, 2, {}), (180.0, 360, 2, {}), (180.05, 20, 1, {}), (180.1, 246, 4, {}), (180.18, 20, 1, {}), (180.2, 2030, 3, {}), (180.23, 20, 1, {}), (180.3, 23, 1, {}), (180.33, 15, 1, {}), (180.4, 2000, 2, {}), (180.49, 5, 1, {}), (180.59, 253, 1, {}), (180.6, 2000, 2, {}), (180.8, 2010, 3, {}), (181.0, 2018, 4, {}), (181.08, 1, 1, {}), (181.2, 1009, 2, {}), (181.3, 17, 3, {}), (181.4, 1, 1, {}), (181.5, 50, 1, {}), (181.79, 9, 1, {}), (181.9, 66, 2, {})]}
1

ご注意

  • このAPIは継続的にプッシュデータを取得する機能を提供します。一括でリアルタイムデータを取得する場合は リアルタイム板情報取得 APIをご利用ください
  • リアルタイムデータの取得とリアルタイムデータコールバックの違いについては、 如何から登録 API で取得してくださいリアルタイム相場情報?
  • 米国株市場のリアルタイム板情報コールバックは、現在の取引時間帯のリアルタイム板情報を継続的にプッシュします。時間帯の設定は不要です。