1.98K 浏览
0

今天获取日线周期的k线数据后打印出来,发现当天交易日的k线时间与实际不符,如取DCE.a2201,今天交易日应该为2021-10-25,但是k线最后一个datetime为1.635091e+18,tqsdk自带函数time_to_datetime转换为2021-10-24 23:56:40,实际应该为1.6350912e+18(2021-10-25 00:00:00)。

无论盘前(09:00之前)还是盘后(现在16:36)取得的k线(dataframe),这个时间都是1.635091e+18(2021-10-24 23:56:40),但是在盘中记录的kline.iloc[-1].datetime却又是正确的1.6350912e+18(2021-10-25 00:00:00),检查其他日期,有很多也是这个情况,很奇怪。

这个时间不正确,使用barlast函数应该是有问题的。

取最近4个数据:

195 1.634573e+18 179.0 6043.0 6071.0 5987.0 6010.0 69270.0 84610.0 88063.0 DCE.a2201 86400
196 1.634659e+18 180.0 6010.0 6020.0 5977.0 6004.0 66173.0 88063.0 90120.0 DCE.a2201 86400
198 1.634832e+18 182.0 6165.0 6200.0 6120.0 6145.0 123739.0 105862.0 108314.0 DCE.a2201 86400
199 1.635091e+18 183.0 6145.0 6245.0 6092.0 6209.0 161883.0 108314.0 125891.0 DCE.a2201 86400

print(time_to_datetime(1.634573e+18))
print(time_to_datetime(1.634659e+18))
print(time_to_datetime(1.634832e+18))
print(time_to_datetime(1.635091e+18))

2021-10-19 00:03:20
2021-10-19 23:56:40
2021-10-22 00:00:00
2021-10-24 23:56:40

并,发现kline中默认取200个,前面没有交易数据的多为NaN或0.0,id为负数,另外id的格式为浮点数。
datetime id open high low close volume open_oi close_oi symbol duration
0 0.000000e+00 -16.0 NaN NaN NaN NaN 0.0 0.0 0.0 DCE.a2201 86400
1 0.000000e+00 -15.0 NaN NaN NaN NaN 0.0 0.0 0.0 DCE.a2201 86400
2 0.000000e+00 -14.0 NaN NaN NaN NaN 0.0 0.0 0.0 DCE.a2201 86400
3 0.000000e+00 -13.0 NaN NaN NaN NaN 0.0 0.0 0.0 DCE.a2201 86400
4 0.000000e+00 -12.0 NaN NaN NaN NaN 0.0 0.0 0.0 DCE.a2201 86400

李思恒 已回答的问题 2021年10月25日
0

看起来没啥问题

uyesino 发表新评论 2021年10月25日

晕,难道是因为e科学记数法,显示数据不全?
我明白了,谢谢!