我正在寻找一些健壮的技术,以从财务时间序列数据(即tickdata)中删除异常值和错误(无论原因如何)。
逐笔的财务时间序列数据非常混乱。当交易所关闭时,它包含巨大的(时间)差距,而当交易所再次打开时,则存在巨大的跳跃。当交易所开放时,各种因素都会以错误的价格水平(没有发生)和/或不能代表市场的价格(例如,由于错误地输入了买入或卖出价而导致价格飙升)引入了交易。tickdata.com(PDF)撰写的这篇论文很好地概述了问题,但提供了一些具体的解决方案。
我在网上可以找到的大多数论文都提到了此问题,或者忽略了该问题(假定报价数据已被过滤),或者将该过滤作为某种庞大的交易模型的一部分,该模型隐藏了任何有用的过滤步骤。
有谁知道在这方面做更深入的工作?
更新: 这个问题表面上看起来很相似,但是:
- 财务时间序列是非周期性的(至少在刻度级别上)。
- 开放效果是一个大问题,因为即使您真的愿意(因为否则您一无所有),您也不能简单地将最后一天的数据用作初始化。外部事件可能导致新的一天的开盘价在绝对水平和波动性上都与前一天大相径庭。
- 传入数据的频率异常不规则。在一天中几乎每天打开和关闭时,每秒数据点的数量可能是一天中平均值的10倍。另一个问题涉及定期采样的数据。
- 金融数据中的“异常值”表现出一些特定的模式,可以使用不适用于其他领域的特定技术来检测这些模式,而我(在某种程度上)正在寻找这些特定技术。
- 在更极端的情况下(例如闪存崩溃),在更长的时间间隔(> 10分钟)内,异常值可能占数据的75%以上。另外,传入数据的(高)频率包含有关情况异常方面的一些信息。