1.11K 浏览
0

rb=api.get_kline_serial(“SHFE.rb2210″,10,data_length=30)
while True:
    api.wait_update
    if api.is_changing(rb.iloc[-1],”close”):
        print (“*”*50)
上面语句,is_changing没做任何判断,每毫秒执行一次print。
求助!!谢谢!!

李思恒 已回答的问题 2022年6月23日
0

实盘中,kline在未走完的时候,因为还在更新kline的数据,所以kline是以tick级别更新的,你可以打印看看就明白了,kline的更新频率不是你订阅的10秒

李思恒 发表新评论 2022年6月27日

我的是每毫秒就执行一次(TICK是500毫秒一次),is_changing里的参数换了很多,都没用,返回全是True。kline换成queto也是一样。 is_changing对accout判断倒是有效。

试试这个is_changing(kline.iloc[-1],”datetime”),10秒才会生成一根datetime

is_changing(kline.iloc[-1],”datetime”),kline的11个字段都换过了,不行啊,其实就是is_changing判断问题,全是True,所以每毫秒执行一次

如果你的kline设置10比如10秒,判断datetime是不可能一直为True的,因为kline的datetime只有新的时间戳生成的时候才会是true。这个我自己写过做了测试的