3.79K 浏览
0

很多时候,只想获取一个K线数据, 但是不能用klines = api.get_kline_serial(“XXX”, 10)方法,因为要等很久,  也不能用数据下载器任务输出csv文件的方法, 只想简单的立即获取一个K线序列做些运算

west 已回答的问题 2020年3月9日
0

只想获取一个K线数据,可以填写data_length参数为1。服务器是以diff协议进行数据传输的,并不是直接发一个完整的最新K线到客户端,因此,必须通过api进行数据更新,将服务器发来的数据进行合并、修改到最新的K线上。具体可以参考diff协议https://doc.shinnytech.com/diff/latest/general.html

或者你想修改源码以实现你的期望,可以查看tqsdk中K线是如何由diff协议合成和更新的https://github.com/shinnytech/tqsdk-python/blob/master/tqsdk/api.py#L366

lua gua 发表新评论 2020年3月16日

可能我没有说清楚,例如,现在是上午11:12, 我想获取截止到昨天的过去30天的日价格序列(OHLC), 但是不想等到今天收盘后更新才获得,而是现在就要获取到做些处理,很像数据downloader做的事情,但是不需要存入csv文件

我觉得其实可以与download合并,就是如果文件名留空就应返回一个dataframe变量,简单就合理

你取日线就可以了呀

怎么取呢?我想立即得到K线,而不是等待update

get_kline_serial()调用的时候就向服务器订阅了这个合约,之后如果不wait_update()就无法得到服务器返回的新数据,你总得跟服务器通讯吧,不通讯怎么收数据