Wind的实时行情API使用

主宰稳场 提交于 2020-10-25 04:13:44

        很久以前用过Wind的实时行情接口,最近又要开始用的时候,居然一下子忘记怎么用了。所以写个文章做个记录,毕竟网上也没有人写过这个。

        Wind的实时行情是通过回调函数来实现的。也就是大框架下,我们是让主程序一直while循环,然后有新的行情到来的时候,wind的API会自动调用我们写好的回调函数。

if __name__ == '__main__':

    w.wsq("000002.SZ,2202.HK",
              "rt_date,rt_time,rt_last,rt_ask1,rt_bid1,rt_asize1,rt_bsize1", func=AH_raio_calculatte)
    while True:
        pass

        首先,在主程序里面,很明显,就是设置好我们需要的行情内容。这边笔者需要的是万科A和港股的万科企业的实时行情。然后func参数就是我们后面需要写的一个回调函数。

        设置完需要的数据和回调函数的名称之后,就把主线程打入死循环即可。

# 回调函数,新的行情来的时候运行
def AH_raio_calculatte(rt_trading_data):
    global A_target_pos,H_target_pos
    try:
        # 获取基本数据,后面进行分解
        sec_code = rt_trading_data.Codes
        fields_list = rt_trading_data.Fields
        rt_data_list = rt_trading_data.Data
        if len(sec_code) > 1:  # 如果是一开始,很可能两个股票的信息一起过来
            if sec_code[0] == A_share_code and sec_code[1] == H_share_code:
                for item, content in zip(fields_list, rt_data_list):
                    A_share_list[name2pos_dict[item]] = content[0]
                    H_share_list[name2pos_dict[item]] = content[1]
            elif sec_code[0] == H_share_code and sec_code[1] == A_share_code:
                for item, content in zip(fields_list, rt_data_list):
                    A_share_list[name2pos_dict[item]] = content[1]
                    H_share_list[name2pos_dict[item]] = content[0]
        elif len(sec_code) == 1: # 仅有一个股票更新,常态的时候,分别拆解更新数据
            if sec_code[0] == A_share_code:
                for item, content in zip(fields_list, rt_data_list):
                    A_share_list[name2pos_dict[item]] = content[0]
            elif sec_code[0] == H_share_code:
                for item, content in zip(fields_list, rt_data_list):
                    H_share_list[name2pos_dict[item]] = content[0]
    except:
        ......

        然后我们需要编写这个名字叫做AH_raio_calculatte的回调函数。在新的行情到来的时候,wind会自动把新的行情数据传递给我们的回调函数,我们的函数要做的事情就是解析一下回调函数中的数据,并实现自己想要的功能。这里,笔者的例子是有两个股票,所以逻辑会稍微复杂一点。建议大家可以自行调试,获得wind传入的数据结构,然后编写获取数据的函数和处理的代码。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!