交易所发布tick数据为3s一次,为了防止丢失tick,gateway中设为每2s主动获取一次tick,造成接收到大量重复的tick进入到事件引擎中,
优化方向为,进入事件引擎前,先判断本次接收的tick与上次接收的tick是否相同,不同的才put进事件引擎。
示例:
第一次接收000001和600000两个代码的tick如下:
[
OrderedDict([('market', 0), ('code', '000001'), ('price', 15.58)]),
OrderedDict([('market', 1), ('code', '600000'), ('price', 8.04)])
]
即:列表中放置了两个OrderedDict,每个OrderedDict中为各标的的tick数据,
第二次接收的tick如下:
[
OrderedDict([('market', 0), ('code', '000001'), ('price', 15.57)]),
OrderedDict([('market', 1), ('code', '600000'), ('price', 8.04)])
]
即:只有000001的tick变化了
请问,如何将两个列表做差集处理,返回差集?
需要注意的事项为:不可以转为pandas处理,及for循环处理,因为全市场接收时好几千个tick,for循环太耗费时间了。
我自己处理的难点在于,列表中为OrderedDict,所以搞不定解决办法,特来请教各位大佬