4.60K 浏览
0

我使用模拟账号链接天勤后端,使用 api.get_kline_serial 函数获取k线序列,并通过pandas索引获取最新k线,发现其中会返回重复id的k下。下面是代码片段和结果截图。截图中第一列是id,第二列是时间,第三列是交易量,各位大神求解。

api = TqApi()
klines = api.get_kline_serial("DCE.m2001",1)
 while True:
    api.wait_update()
    last_kline = klines.iloc[-1]
    d = time2datetime(last_kline.datetime)
    timeStr = d.strftime("%Y-%m-%d %H:%M:%S")
    if api.is_changing(klines):
        print (last_kline.id,timeStr, last_kline.volume)
 api.close()

west 已回答的问题 2019年11月20日
0

这是正常的。

你的代码中:

if api.is_changing(klines):
print (last_kline.id,timeStr, last_kline.volume)

is_changing()函数如果没有填第二个参数则判断整个K线是否有更新,即:这个K线任意字段更新,is_changing都判断为True,可以看截图中,输出的每个相同id的K线,volume是有变化的。

is_changing()的具体用法请见文档。https://doc.shinnytech.com/tqsdk/latest/reference/tqsdk.api.html#tqsdk.api.TqApi.is_changing

hellspawn 发表新评论 2019年11月20日

多谢大神指点