QUOTES_SYMBOL_RB = 'KQ.i@SHFE.rb' QUOTES_SYMBOL_I = 'KQ.i@DCE.i' QUOTES_SYMBOL_J = 'KQ.i@DCE.j' DUR_SEC = 30
while api.wait_update(): if api.is_changing(klines.iloc[-1], "datetime"): print(klines.iloc[-2]) 这个时候 klines.iloc[-2]才是最新的bar,而klines.iloc[-1]是最新的tick数据,这个文档还有示例都没有提示。 这个时候如果使用klines这个dataframe就会有点问题,只能使用klines[:-2]
嗯嗯,我理解,感谢解答,这块示例程序或者文档能备注一下就好了
嗯呢,好的,我们这边之后优化一下文档
get_kline_serial 的机制决定的,网站有详细的文档,当时讲的模棱两可。
经过测试,大概可以这么理解,比如,你要取5分钟的K线,
在第4.99999分钟的时候,更新kline,kline.iloc[-1]就是你想要的数据。
立马,在第5.00001分钟的时候,立马又更新了一次kline数据,这时kilne.iloc[-1]是下一个周线最开始的数据了,因为刚刚开始,只有kline.open.iloc[-1]是有效。这个时候,要取上一个周线的kline,自然得用kline.iloc[-2]
JIMMY HUNAG 已回答的问题 2020年4月2日
只能使用klines[:-1]