# 实时分时回调

# RTDataHandlerBase

on_recv_rsp(self, rsp_pb)

  • 介绍

    实时分时回调,异步处理已订阅股票的实时分时推送。
    在收到实时分时数据推送后会回调到该函数,您需要在派生类中覆盖 on_recv_rsp。

  • 参数

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

    参数 类型 说明
    ret RET_CODE 接口调用结果
    data pd.DataFrame 当 ret == RET_OK,返回分时数据
    str 当 ret != RET_OK,返回错误描述
    • 分时数据格式如下:
      字段 类型 说明
      code str 股票代码
      name str 股票名称
      time str 时间
      is_blank bool 数据状态
      opened_mins int 零点到当前多少分钟
      cur_price float 当前价格
      last_close float 昨天收盘的价格
      avg_price float 平均价格
      volume float 成交量
      turnover float 成交金额
  • Example

import time
from futu import *

class RTDataTest(RTDataHandlerBase):
    def on_recv_rsp(self, rsp_pb):
        ret_code, data = super(RTDataTest, self).on_recv_rsp(rsp_pb)
        if ret_code != RET_OK:
            print("RTDataTest: error, msg: %s" % data)
            return RET_ERROR, data
        print("RTDataTest ", data) # RTDataTest 自己的处理逻辑
        return RET_OK, data
quote_ctx = OpenQuoteContext(host='127.0.0.1', port=11111)
handler = RTDataTest()
quote_ctx.set_handler(handler)  # 设置实时分时推送回调
ret, data = quote_ctx.subscribe(['HK.00700'], [SubType.RT_DATA]) # 订阅分时类型,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
RTDataTest         code  name                 time  is_blank  opened_mins  cur_price  last_close   avg_price     turnover   volume
0  HK.00700  腾讯控股  2023-07-19 16:00:00     False          960      333.0       336.4  330.400642  588143620.0  1766300
1
2

提示