实时监控
在构建一个高频交易系统的过程中你还需要注意另外一件重要的事情。也许你的系统看起来已经很好了,但如果在这里你做得不好,很有可能会把整个系统搞砸。由于所要处理的事情的高度复杂性,高频交易系统天生就具有很复杂的结构:多个交易所、有着不同相关性的数千种可交易资产、激烈的市场竞争、复杂的监管限制,还有许多其他的因素都导致了这种复杂性。如果你的系统能够更好地监控自己的行为并将信息反馈给那些需要知道这些信息的人,那么你所处的状况就更有利。即使是中小规模的高频交易系统也是由数千种不同的组件(计算机程序)组成的,它们运行在不同的地点,并且或多或少会彼此影响。那些坐在交易台上的交易员和系统支持工程师必须能够保证所有的一切都在正确的轨道上。当有些事情出错了(这实际上一直在发生),这些人需要以最快的速度知道到底发生了什么,以及需要做些什么来解决问题。看着系统做了一笔坏交易——卖得太低或者买得太高——感觉一定不会太好,而如果你不知道这是为什么,那么你的感觉就更差了。
具有讽刺意味的是,这种情况下的问题并不在于你拥有的信息太少,而是你拥有的信息太多。在很多例子中,几千个同时运行的进程都在持续地向日志文件写入正在发生的事情(例如,获得了一个新的市场数据、请求贴现率数据、接收贴现率数据、计算理论价格,等等)。这些日志文件在你意识不到的时候已经变得非常大了。最终, 你需要用这些日志文件来诊断到底出现了什么问题, 你会在一堆日志中的某个地方找到它。这些日志对交易员来说并没有什么用途, 当计算机做了一大堆坏的交易时,交易员除了骂娘什么也做不了。他们仍然需要等着程序员过来,找到那个出了问题的日志文件,一行行的读, 思考哪里出了问题, 并与其他程序员进行讨论,以对整个状况做出判断。你知道,这样的方式很不好。高频交易系统的设计者可以用很多方法实现这种实时监控,但是并没有一种方法就绝对比其他的方法好。无论采用哪种办法,这些事都还是必须做的。
很显然,本章讨论的高频交易系统实现策略并不是唯一的版本。那些在高频交易公司工作的聪明而富有创造力的人也一定会想方设法设计出新的策略来让自己在竞争中获得一些优势。但是本章的内容仍然能让你对于高频交易世界里的这个重要领域的一些基本理念有不错的了解。那么现在,让我们来看看一个采用了许多上面介绍过的理念实现的高频交易系统看起来到底是什么样子。