2.91K 浏览
0

回测kline序列中,第一个数据是正确的,之后的数据全都不准确,换个合约也还是一样。用这样的数据来计算出的策略肯定回测数据有很大的问题,望尽快修正这个bug

!!!!但是在web图表中渲染出的k线是准确的

klines = api.get_kline_serial("SHFE.ni2106", 60, 100)
print(klines.iloc[-1])

第一个数据:

datetime 1617346740000000000.0
id 89250.0
open 123480.0
high 123520.0
low 123410.0
close 123470.0
volume 2431.0
open_oi 144798.0
close_oi 144090.0
symbol SHFE.ni2106
duration 60
Name: 99, dtype: object

之后的数据中open、hight、low、close的数据都一样open_oi和close_oi的值也一样

datetime 1617670800000000000.0
id 89251.0
open 123460.0
high 123460.0
low 123460.0
close 123460.0
volume 0.0
open_oi 144090.0
close_oi 144090.0
symbol SHFE.ni2106
duration 60
diff NaN
diff.board None
diff.color None
dea NaN
dea.board None
dea.color None
Name: 99, dtype: object

datetime 1617670860000000000.0
id 89252.0
open 125060.0
high 125060.0
low 125060.0
close 125060.0
volume 0.0
open_oi 146974.0
close_oi 146974.0
symbol SHFE.ni2106
duration 60
diff NaN
diff.board None
diff.color None
dea NaN
dea.board None
dea.color None
Name: 99, dtype: object

web图表中渲染出的k线

ringo 已回答的问题 2021年4月12日
0

这个是由于在回测时kline只会在开始和结束时各刷新一次,如果你取的是最后一根kline,那么他永远是刚刚刷新时的数据,而在kline刚刚刷新时他的高开低收均是上一根的收盘价,详细回测规则参见

https://doc.shinnytech.com/tqsdk/latest/usage/backtest.html#id7

ringo 已回答的问题 2021年4月12日
您正在查看1个答案中的1个,单击此处查看所有答案。