5.04K 浏览
0
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]

west 已回答的问题 2020年4月2日

只能使用klines[:-1]

0

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日
您正在查看3个答案中的1个,单击此处查看所有答案。