Local EPUB Text
高频交易的关键过程
高频交易的核心价值主张是通过分笔数据处理和高资金周转率来实现的。识别报价流中细微变化的技术是这个业务的不同之处,并且使交易商能够向建仓和平仓位置发送急速信号。
只有通过自动交易才能处理多个金融工具上的每个分笔数据。评估以微秒分隔的数据、解释大量的市场信息、以一致和连续的方式做出交易决策,对于人类大脑来说是太复杂的任务。但是,一个便宜的全自动高频交易系统就可以做出快速、高效及不受情绪干扰的决定。
图7-1 算法设计和重新评估流程
图7-1简单模拟了开发高频交易系统的样本流程。像任何软件开发活动一样,高频交易流程从终端产品的概念开始:一个成为量化模型的交易想法。这个概念或原型可以是用如MatLab的建模语言编写的20行代码,并且展示选定的数据可能产生的获利能力。
下一步是回测:此过程的理念是在大量的分笔数据上进行测试。两年的分笔数据量足以验证此理念。回测的最优实现会在本书的第16章讨论。该模型在“样本外”或“干净”的数据列中进行测试,这些报价和交易的数据未在初始测试中被使用过。如果模型在样本外的数据上有很好的表现,那么模型会被用到模拟交易中。失败的模型通常会被舍弃。
在成功的回测后,模型会被放到预生产或模拟交易阶段。模拟交易会仿真模拟实时交易活动,而无须配置实际订单,但是会在程序生成的日志中跟踪订单。除了下单功能,模拟交易阶段通常是完全程序化的高频交易系统。因此,模拟交易阶段是测试高频交易系统所有其他方面的完美“沙盘”:数据接收和处理、运行时生成的交易信号、头寸记录、数据归档和风险管理。为了确定模拟高频交易系统的正确性,回测算法通常在每个交易日结束时运行,并收集模拟交易中的数据——在回测和模拟交易之间观测到的任何偏差都会被记录和研究。
当模拟交易和回测被正确地写入程序时,两者应该得到相同的结果。模拟交易和回测一个月的测试结果完全一致时,通常就可以将系统放到小笔的实时交易或“使用”环境中。
向使用环境过渡时经常会遇到一系列挑战,详见第16章。交易执行和实时投资组合的记账会是复杂的代码操作,必须很好地执行,以避免意外的故障和损失。以少量资本运行扩容的使用环境,有助于解决各种代码问题,并确保顺利和有效的交易功能。
本部分说明在开发一个成功的高频交易系统中,人工花费时间的功能如下:
·高频交易的量化模型开发/概念验证包括回测:15%。高频交易量化模型是交易的路线指南,主要示例会在本书第8~11章描述。量化模型的输出是一组用于识别交易机会的持续性指标。
·风险管理原则、模型验证和政策发展:10%。第14章讨论的主要风险管理是为了防止代码、市场数据、市场状况中貌似无害的小问题脱离交易动态以及造成巨大损失。风险管理的目的是评估潜在损害的程度,创建基础设施,以减少运行期间可能产生消极影响的情况,并且建立一个以消除或限制潜在损害为目的,同时包含警告、故障中断和流程的系统。一些风险管理流程可以内置到代码中,而另一些风险管理流程需要工作人员在场以解除故障。
·交易和风险管理基础构架的代码:40%。交易和风险管理信号的代码编写是高频交易的主要关注点。高频交易执行系统是一个用于检测各种市场条件并对其做出反应的复杂实体。当今的大多数高频交易系统被建为“独立平台”,即将灵活的接口并入到多个代理商、电子通信网络(ECN)和交易所。这种独立性通过金融信息交换(FIX)语言来实现,该语言是针对金融交易数据优化的特殊代码序列。有了FIX,在转手时路线可以从一个执行代理到另一个,或者同时到几个代理。最佳的编码实操会在第16章描述。
如第2章所讨论的,FIX可能相当麻烦。为了抵消由FIX的复杂性所引起的交易速度延迟,几个供应商已经推出了专有通信协议和应用程序编程接口(API)。这些专有结构会使交易商难以切换平台,从而锁定用户。然而,适应于给定平台所需的工作范围可能是广泛的,并且一些供应商甚至向有兴趣建立连接的交易商提供金钱奖励。例如,德意志证券交易所(Deutsche B鰎se)的一些部门可能为潜在交易商提供高达65000美元的奖励以支付接口实施成本。
·系统测试:20%。系统测试是另一个关键要素,在第16章会详细讨论。为了确保完整的测试,系统会用各种方案或“脚本”来运行。专业的软件测试人员通常需要检查每个代码块,将其性能与其执行的指令进行比较,并记录所有差异,即“漏洞”(bug)。测试人员的配备大约是开发人员的1/3。分离编码工作和测试工作也确保了适当的测试,不会因为颜面问题而掩盖导致耗费大笔业务成本的错误。
·运行时监控:5%。运行时(run-time)监控是另一个需要工作人员在场的高频交易工作。不会特别涉及具有明确风险管理参数和退出机制的监测任务,但需要密切关注细节。独立的工作人员通常被赋予观测系统的职责,并确保运行时的性能保持在可接受的限度内。高频交易监测的最佳实操会在第16章讨论。
·合规和其他管理:10%。合规和其他管理任务是所有交易业务都具备的功能。跟踪监管指导文件、文档和所有其他相关活动是一项全职工作。
如图7-2所示,这里列出的每项任务花时间的比例因高频交易业务发展的阶段而异。在启动阶段,高频交易业务倾向于以数据和编程为中心;在加速阶段,测试、风险管理和监控占据了大部分工作量;最后,在稳定的生产状态下,监控、合规和其他需要管理会占据主要的时间。
在传统的经纪人-经销商世界中,“技术”这个词通常仅与远离业务的技术团队所提供的、新的且好用的小工具相关,如系统测试和政策发展等任务看起来可能是不必要的费用。通过将技术从业务中分离,管理者创造了一个印象,即交易商不需要对他们使用的系统负责。现实生活中的例子,如2012年夏天发生的骑士资本(Knight Capita)失败的案例,说明了对高频交易系统完整的测试、合规和监控是企业长期盈利的关键。这些功能直接来自软件开发的最佳实践操作,在第16章有详细讨论。
如图7-2所示,高频交易业务的发展与大多数传统交易柜台有着不同的流程。设计新的高频交易策略是昂贵的,执行和监测已完成的高频交易产品是几乎没有成本的。相比之下,传统的自营交易业务有固定成本,这个成本来自一个有业绩记录的经验丰富的高级交易员,从开始做交易、培训有前途的新人,直到这些新人能够达到导师的水平所花费的时间和精力。
图7-2 高频交易开发的各个阶段的人力-时间分布
图7-3说明了去计算机化的传统交易系统的成本曲线。随着时间的推移,传统交易的成本几乎保持固定。除了因为交易员“工作倦怠”(burnouts)而需要招聘和培训新的交易员,传统交易柜台的人员成本不会改变。但是,开发计算机化交易系统在人力和时间方面需要昂贵的前期投资。一个成功的交易系统平均需要36个月才能完成开发。计算机化交易的成本随着系统投入生产环境而下降,最终只需要小部分技术支持人员,通常包括专用系统工程师和性能监控人员。系统工程师和监控人员可以同时负责多个交易系统,从而使成本接近于零。
图7-3 高频交易的经济性VS传统的交易业务