一套高频交易系统的开发需要连接好几个学科领域的知识,包括量化金融、系统设计和软件工程等。在量化金融领域,人们对如何建立数学交易模型已经做过广泛的研究。同样地,如何设计系统将这些模型实施出来也非常重要。在当今的交易圈内,不断地去发现、建立并运行更好的交易系统才是保持竞争优势的决定性因素。因此,将投资理念转化为数学模型并进一步变成一套行之有效,兼顾运行速度与质量的交易系统对市场参与者来说无比关键。
高频交易系统的开发大致可以分为三个阶段:研究阶段、模型阶段和实现阶段。每一个阶段都有自己的内部过程和子系统。当然,整个系统的开发并不一定需要完全遵照这个流水线过程,一旦在某个阶段有问题出现的时候,可以回溯到前一个。虽然在每一个系统设计项目中,使用什么方法选择什么工具需要根据具体问题、工程师的水平、研发的时间限制和预算限制来定。然而,我们选择的设计方法至少应该提供一个框架和一系列原则用来兼容金融工程师和程序员的能力。一个缺乏设计原则的系统往往会失败。
原则
由扎实的研究所产生的投资想法是建立任何交易系统的基础。在讨论研究方法之前,我们先来深入了解一些用于设计高频交易系统的基本原则。
投资获利理念是交易系统的根基:如果其中出现逻辑错误,那我们就是在冒险;
要理解直觉交易系统和非直觉交易系统的区别:高频交易系统的设计倾向于自动的非直觉交易系统,它能被显性的交易规则和参数所精确量化;
对市场不要有任何判断:对于大多数高频交易系统来说,利润仅仅来自于对市场快速的反应而非对市场未来走势的预测;
要了解交易理念中的缺陷并在研究阶段就考虑风险控制:在产生投资想法之初就开始建立风险管理模型;
纪律是关键:一套自动交易系统将使你严守纪律并远离贪婪和恐惧;
经常利用历史数据回测你的模型,并在每天进行复盘,但要避免过度拟合。
方法
系统设计的第一步就是从研究中产生交易想法。有很多方法来进行研究,包括学术文献阅读、改进现有交易模型、市场调研甚至逆向工程(通过对已有的系统的结构、功能、运作进行分析、分解、研究后,开发出功能相近,但又不完全一样的系统过程)。值得一提的是,历史回测和参数优化永远不能开发出新的交易系统,仅仅依靠在历史回测中尝试不同的交易规则和参数组合只能让你的策略对历史数据产生过度拟合,最终导致实盘交易的失败。
研究阶段的成果是一系列描述交易思想各个方面细节的设计文档,这些文档会被作为指导下一阶段建立系统模型的蓝图。
具体文档包括:交易策略和获利理念的具体描述;交易的目标市场;交易的品种;对于交易品种波动性和流动性的要求;过滤入场和出场信号的算法;执行交易的算法;数据要求;算法优化周期;交易系统的交易频率;风险管理的逻辑;绩效指标;备选系统设计方案;系统的缺陷;未来改进的思路。
当上述文档全部成形之后,需要开发团队聚在一起进一步讨论细节。金融工程师可能会展示各自的设计方案,互相帮助验证方案的有效性,为交易策略把关,做好进入下一个阶段的准备。