实时行情接口

来自www.baostock.com
跳转至: 导航搜索

服务时间

交易日 9:00——16:30,其他时间不提供服务。

获取实时行情

示例代码

import baostock as bs

# 每次收到实时行情后,回调此方法
def callbackFunc(ResultData):
    print(ResultData.data)

if __name__ == '__main__':
    # 登陆
    login_result = bs.login_real_time()
    print('login respond error_code:' + login_result.error_code)
    print('login respond  error_msg:' + login_result.error_msg)
    # 订阅
    rs = bs.subscribe_by_code("sh.600000,sz.000001", 0, callbackFunc, "", "user_params")
    if rs.error_code != '0':
        print("request real time error", rs.error_msg)
    else:
        # 使主程序不再向下执行。使用time.sleep()等方法也可以
        text = input("press any key to cancel real time \r\n")
        # 取消订阅
        cancel_rs = bs.cancel_subscribe(rs.serial_id)
    # 登出
    login_result = bs.logout_real_time()
  • 代码解释

def callbackFunc(ResultData):自定义处理逻辑。

rs = bs.subscribe_by_code("sh.600000,sz.000001", 0, callbackFunc, "", "user_params"):订阅2支股票;订阅方式 0:按证券代码订阅;callbackFunc:定义回调方法。

if rs.error_code != '0':当服务器正确处理请求后,返回error_code为0,当非0时,服务器处理出错,请详细查看错误信息。

text = input("press any key to cancel real time \r\n"):使主程序不再向下执行。主程序一旦停止,订阅逻辑同样将停止,可使用合适的方式拦截主程序向下执行。

bs.cancel_subscribe(rs.serial_id):通过订阅时返回的rs,取消订阅时取出序列号。


  • 返回对象:ResultData
   取出对象中的行情数据:ResultData.data,此数据类型为字典,key为证券代码,value为行情信息。

行情信息按顺序含义依次为:字段含义:日期、时间、证券代码、股票名字、今日开盘价、昨日收盘价、当前价格、今日最高价、今日最低价、成交量、成交金额、委买一价格、委买一笔数、委买二价格、委买二笔数、委买三价格、委买三笔数、委买四价格、委买四笔数、委买五价格、委买五笔数、委卖一价格、委卖一笔数、委卖二价格、委卖二笔数、委卖三价格、委卖三笔数、委卖四价格、委卖四笔数、委卖五价格、委卖五笔数。 示例数据如下ResultData.data: {'sh.600000': ['2018-04-23', '09:28:09', 'sh.600000', '浦发银行', '11.560', '11.610', '11.560', '11.560', '11.560', '200000', '2312000.000', '11.560', '103300', '11.550', '48200', '11.540', '63800', '11.530', '36200', '11.520', '29600', '11.580', '5900', '11.590', '3000', '11.600', '1430', '11.610', '33343', '11.650', '2300']}

登录实时行情

login_real_time()

方法说明:登录实时行情系统。

使用示例:lg = login_real_time()

返回信息:

  • lg.error_code:错误代码,当为“0”时表示成功,当为非0时表示失败;
  • lg.error_msg:错误信息,对错误的详细解释。

登出实时行情

logout_real_time()

方法说明:登出系统

使用示例:lg = logout_real_time()

返回信息:

  • lg.error_code:错误代码,当为“0”时表示成功,当为非0时表示失败;
  • lg.error_msg:错误信息,对错误的详细解释。

订阅实时行情数据

subscribe_by_code()

方法说明:订阅实时行情,范围包含:全部A股、全部B股、“公式与数据说明”中的指数数据。

数据说明:

       停牌数据:日期及时间不为空,昨日收盘价有数据,其他数据为0;
       指数数据:委买一笔数、委买一价格 至 委卖五笔数、委卖五价格 价格为0;

参数含义:

  • code_list: 每只证券代码之间用“英文逗号分隔符”,结尾不存在“英文逗号分隔符”;证券代码格式:sh.600000,前两位为证券市场:“sz”深圳、“sh”上海,上限500支,多余500支时将取前500支。
  • subscribe_type: 订阅方式 0:按证券代码订阅, 1:按行情数据类型订阅。0.7.6版本只支持按证券代码订阅。
  • fncallback: 自定义回调方法。当回调方法为空时,会调用默认回调方法,打印出ResultData.data。
  • options: 预留参数,暂时不会使用。
  • user_params: 用户参数,回调时原样返回。

返回信息:

  • 返回对象:ResultData
   取出对象中的行情数据:ResultData.data,此数据类型为字典,key为证券代码,value为行情信息。

行情信息按顺序含义依次为:字段含义:日期、时间、证券代码、股票名字、今日开盘价、昨日收盘价、当前价格、今日最高价、今日最低价、成交量、成交金额、委买一价格、委买一笔数、委买二价格、委买二笔数、委买三价格、委买三笔数、委买四价格、委买四笔数、委买五价格、委买五笔数、委卖一价格、委卖一笔数、委卖二价格、委卖二笔数、委卖三价格、委卖三笔数、委卖四价格、委卖四笔数、委卖五价格、委卖五笔数。 示例数据如下ResultData.data: {'sh.600000': ['2018-04-23', '09:28:09', 'sh.600000', '浦发银行', '11.560', '11.610', '11.560', '11.560', '11.560', '200000', '2312000.000', '11.560', '103300', '11.550', '48200', '11.540', '63800', '11.530', '36200', '11.520', '29600', '11.580', '5900', '11.590', '3000', '11.600', '1430', '11.610', '33343', '11.650', '2300']}

   取出对象中的用户参数:ResultData.user_params。


取消订阅实时行情数据

cancel_subscribe()

方法说明:取消订阅实时行情。

参数含义:

  • ident: 订阅时返回的序列号,详情见示例代码。


数据说明

实时行情数据来源自新浪财经、腾讯证券,Baostock只负责转发,用户可根据以下链接自定义实时行情。

新浪财经:http://hq.sinajs.cn/list=sh600000

腾讯证券:http://qt.gtimg.cn/q=sh600000