VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 7
声望: 0

交易所发布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,所以搞不定解决办法,特来请教各位大佬

Member
avatar
加入于:
帖子: 716
声望: 62

先C= A.entend(B)拼接,
然后转成集合做去重,
最后遍历一次C,删除A中的值,
不知道这样符不符合你的需求。

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】