假如有这样的应用场景: 想研究砖头图, 那么一般思路是用tq的.get_quote数据模式 每个update进行砖头的合成 (类似生成k线),如果生成,开始计算策略,假如策略运行时间是超过1秒,那么理论上会丢失2个行情截面数据,那么下一轮的砖头生成的数据就不准确了。
想到的思路是专门一个线程合成砖头,另外一个线程共享合成后的数据,这样行情接收—-数据合成—策略计算都是独立的 ,不会丢tick。
但因水平有限,没有试验成功,请大神们指点,如果天勤官方能出个示例就更好了。
谢谢!
lookis 已回答的问题 2020年11月5日
可以先不要用异步,对新手不友好,可以只用多线程来做:
from queue import Queue q = Queue() # 线程一 while True: api.wait_update() t = api.get_tick_serial(symbol) if can_merge_new_kline(t): new_kline = merge_new_kline(t) q.put(new_kline) # 线程二 while True: new_kline = q.get() #.... pass
shen liu 发表新评论 2020年11月6日
万分感谢大神的帮助,代码牛x,完美解决问题!