期货程序化交易系统建设可行性分析永安期货研究院金融工程部首席分析师张冰随着中国期货市场的日趋成熟,众多期货品种都具备了良好的流动性。与此同时,随着期货投资者数量的显著增加和投资结构的日趋合理,中国期货市场的有效性也逐步增强。这些都为程序化交易在期货市场中的应用奠定了良好的前提基础。笔者认为,要想建设一套优秀的期货程序化交易系统需要四方面因素构成:程序化交易系统软件的合理性设计、基于该软件程序化交易模型的合理性设计、程序化交易系统的研发人员构成、应用程序化交易系统的投资者水平。以下将对以上这四个因素单独展开建设可行性分析。一,程序化交易系统软件的合理性设计一套优秀的程序化交易系统需要有一个稳定高效的载体来实现,这个载体就是程序化交易的软件平台。为了充分发挥出程序化交易的优点,平台需要具备:实时稳定的行情数据接收端,实时稳定的程序化交易指令下单交易端,实时稳定的行情及下单交易数据处理分析编辑平台(模型编辑平台)以及方便投资者使用的图形界面系统。二,基于该软件程序化交易模型的合理性设计基于上述稳定高效的程序化交易平台,结合行情和下单交易数据,设计合理的模型是程序化交易的核心。关于程序化交易模型理论的研究,国内各机构已经有了较为深入的分析。但对于模型的实盘实现所需要注意的各个环节,并没有引起大家的充分重视。而这些环节在一定程度上是模型实盘实现的关键因素。下面从一个基于计量经济学应用协整关系实现豆油、棕榈油两合约统计学套利的模型入手,来分析模型设计的各个环节。为了实现该套利模型,模型的设计需要完全自主和自动的完成以下8个步骤:对价格序列作单位根检验;对同阶单整序列作线性回归;对上述线性回归的残差作单位根检验;将平稳的残差序列零均值化,记为Mspread,并计算其标准差σ,取乘数12,kk,通过历史数据回测,确定套利区间。其中1k为开仓平仓界限,2k为止损界限;当1Mspreadkσ时,开仓买棕榈油合约,卖豆油合约;当1Mspreadkσ−时,开仓买豆油合约,卖棕榈油合约;开仓后,若Mspread回落至均值范围内,反向操作;开仓后,若2Mspreadkσ,则平仓止损。用传统的统计学软件对上述步骤分离的分析求解,并根据所求解进行半自动程序化或者手工交易是非常容易做到的。但这个过程会使得整个投资非常繁琐,没有实时性。特别是将该模型用于数据周期更短的情况(比如5分钟)下,该方法无法有效实施。为了设计出可以动态计算并实现实盘全自动交易的模型,我们需要让模型编辑平台更加自由化,可以动态的建立各种计量学统计分析库和更加复杂的数量化分析库。在模型需要时,编辑平台可以随时方便的扩展这些计算库。为了解决上述问题,模型编辑平台最好使用效率和稳定性更高的C++语言。我们熟知的国外成熟程序化交易模型,比如高盛的和巴克莱投资都选择了C++语言建设他们的程序化交易系统。通过C++语言编写相关模型,可非常轻松的实现各类动态计算。在模型认为有投资机会时,我们会遇到另外一个不得不面临的程序化交易问题。比如按照模型应用协整关系计算出我们要买5手豆油合约,卖6手棕榈油合约。模型向交易接口发送指令并下单,此时订单状态会呈现无效订单、排队中、部分成交、全部成交等多种状态,如果模型不对相关状态进行动态跟踪,在很多情况下会出现策略执行的大幅度偏差,导致投资失败。通过程序化交易,假设我们双边已经建仓成功,但此时网络断开或者软件出现故障甚至停电等情况出现,当我们再次开启软件加载模型时,模型理所应当知道自己之前做过了什么并遇到了什么状况,然后根据当前的价格结合策略自动的一脉相承的投资。这些情况可以通过在模型中加入下单及订单的动态管理模块来实现。整个过程投资完成后,模型也要自动生成相关的投资结果分析。三,程序化交易系统的研发人员构成通过上述分析我们可以看出,建立一套稳定高效的程序化交易系统是一个严谨的系统性工程。这需要一个机构组建并培养一个积极进取、务实的团队。根据国外的成熟经验,该团队需要理论物理、数学、统计学、金融学、计算机、信息技术等多学科背景出身的人才来构架。团队的领导者需要对期货及交易有深刻的认识和丰富的经验,并对程序化交易有深刻的理解。永安期货研究院院长猫总凭借其多年的市场经验,根据人工智能学和心理学提出一个成熟的程序化交易系统需要有成熟的期货专家系统作为支持和配合,将专家的分析在期货市场出现特殊情况时给程序化交易以指导。这使得程序化交易的人员构成又扩展到了一个强大的分析师团队。整个团队的协作配合才能构架出出色的程序化交易系统。四,应用程序化交易系统的投资者水平因为存在人为情感因素,恐惧、贪婪、迟疑及赌性等都会给投资者带来巨大的损失。当投资者的交易行为更加成熟时,大家会慢慢发现一个好的交易纪律会大大改善投资状况。设计优良的程序化交易系统可以帮助投资者培养良好的交易纪律。对于不了解程序化交易的投资者在使用程序化交易时,也会存在着很多的障碍。笔者还是从一个具体的例子入手来阐述此问题。用大家熟知的四周理论(当前价格超过前四周高点买入,直到当前价格低于其前四周最低点平仓并反向开仓;反之亦然)模型来投资沪铜合约。初始资金50万元,每次用总资金的20%开仓。从2003年1月开启模型到2010年1月关闭模型。7年时间,考虑到冲击成本、交易成本及移仓成本,总资金变为600万元。一眼看去,模型能帮助我们赚取巨大利润。其实当面临使用该模型投资实盘时,会有很多问题出现,“阻止”投资者想继续使用该模型。假设从2006年5月到2008年5月加载该模型投资沪铜,整整两年时间有赔有赚,资金变化不大。投资者反而会觉得模型耽误了“赚钱”的机会,于是决定关闭模型。紧接着就失去了模型在随之而来的一降一升行情(2008年8月到2010年1月)中赚钱的大好机会。恍然大悟后,在2010年1月继续使用该模型时,截止目前,资金依然没有增长太多。这么下来,利用该模型投资者不但没有赚到钱,反而丧失了许多更好的交易机会。由此我们看出,同样一个模型,由于对模型本身的理解偏差和使用偏差,会带来截然不同的投资结果。模型的策略设计多基于历史数据的统计学分析,是一种概率上获胜的博弈。如果投资者利用优良的模型(概率上博弈获胜)来做短期的间歇性的试探性投资,将对账户没有实质性帮助,甚至带来不利影响。这样说来,程序化交易系统更加适合那些对期货交易和程序化交易有较为深刻理解的投资者,或者适合那些愿意使用程序化交易来培养交易纪律的投资者。以上四个因素所涉及的问题,指明了期货程序化交易系统建设可行性实施的方向。相信随着国内各个机构对程序化交易系统的逐步研发和投资者投资理念的日趋成熟,程序化交易在国内期货市场上将会上演重要的角色!