蚂蚁学练LOGO蚂蚁学练
精选数据

QMT量化行情数据怎么去重清洗?

QMT推送的实盘行情,存在重复tick、重复K线、乱序数据,需要做去重清洗,分为回测阶段和实盘盘口两种场景。实盘tick行情,同一时间会推送多条重复数据,以时间戳作为主键去重,缓存已经处理过的timestamp,新行情到来先判断是否已经处理过,重复就直接跳过,避免重复触发交易逻辑。tick还要过滤异常价格,价格为0、涨跌偏离正常区间的数据直接丢弃。K线数据,handle_bar回调偶尔会推送重复bar。可以保存上一根K线的时间,当新K线时间和上一根一致,则判定为重复,不执行策略逻辑。注意区分K线未完成的更新推送,未闭合的K线只做数据记录,不要用来下单,只使用已经闭合完成的K线信号。从QMT接口批量读取历史K线时,返回结果内部也可能存在重复行,可以通过pandas,按交易时间做drop_duplicates去重,再做排序,保证时间序列从小到大。还要处理乱序行情,网络抖动会出现时序颠倒,收到时间比上一条更早的数据,直接丢弃,不参与计算。实操注意,不要把清洗逻辑写得太重,盘中高频循环不要做复杂运算,避免拖慢策略响应。回测的数据本身交易所已经整理,重复数据很少,清洗重点放在实盘。清洗只过滤脏数据,不能修复流动性、滑点这类真实市场带来的误差。

我司为正规上市老牌券商,风控体系完善,足不出户就能线上完成开户操作,并且佣金很优惠,欢迎联系。