1.22K 浏览
0

比如,在获取多合约K线时,is_changing()中输入 key=[‘id’]。 那么接收数据应该在key有变化时更新。

但运行时发现,即便key 变化了,我也没有接收任何数据更新?

在获取 单个合约的时候, 我是能够接收到数据更新的。

# 获取 两个合约的的K线
klines= api.get_kline_serial(["SHFE.rb2205", "SHFE.rb2210"], duration_seconds=5, data_length=1)
  for i in range(30):
    api.wait_update()
    if api.is_changing(klines, key=['id1']):
      print(klines)
 api.close()

yangben 已回答的问题 2022年9月13日
0

如下示意,  在当前循环中, 各合约的close价格能区别开, 为何id号无法分开?

另, 哪如何才能用 for 把合约列表count_list 循环起来?

api = TqApi(web_gui=True, auth=TqAuth("yangben", "yang159753"))
count_list = (
    ["SHFE.rb2301", 1, 3, 6, 3, 30],  
    ["DCE.i2301", 1, 3, 6, 3, 30],    
    ["SHFE.al2210", 1, 3, 6, 3, 30],
    ["SHFE.ag2301", 1, 3, 6, 3, 30],
)

while True:
    for i in count_list:
        quote1 = api.get_kline_serial(i[0], 60, 10)        
        api.wait_update()
        print(quote1.iloc[-1])
        if api.is_changing(quote1.iloc[-1] , 'id'):
            print('数据更新')
yangben 已回答的问题 2022年9月13日
0

一个是没有反复调用判断可能会出问题,第二我们使用场景目前是单合约判断。可以分2个kline订阅分开写2个changing

李思恒 已回答的问题 2022年3月14日