程序化交易在欧美成熟市场已经风行多年,就场内交易来说,从对冲基金到大的投资YH几乎全部使用交易系统,美国市场上有70%以上的场内报单来自于交易程序。为了更快的获取行情和下达交易指令,在交易的软硬件上军备竞赛盛行,对于交易速度的比拼已经到达了芯片和光纤线路这种级别。
为什么程序化交易能够盛行,归根结底无外乎两个字“效率”。在金融市场历史上,随着技术的发展纽交所股票价格从马匹传递到电报传递再发展到如今的高速光纤传递。计算机技术发展到如今,程序能够在极短的时间内以很低的交易成本在非常多个标的上高效执行交易,不论是使用量化交易策略还是利用算法交易执行一些交易逻辑如冰山单等。实际上下单本身属于机械性操作,人工执行不仅在时间和交易成本上不可控,而且也存在操作风险的问题。如果单一品种的单一交易策略勉强可以接受人工操作,那么多品种多交易策略也要人工执行的话,这其中的人力成本恐怕任何一家公司都无法承担。反观程序化交易,扩展至多品种几乎轻而易举没什么成本。然而,程序化交易带来巨大的效率提升的同时,也带来了人工交易时不存在的风险。因为任何系统都不能完全保证没有任何潜在缺陷,所以如何控制住交易系统的技术性风险是开展程序化交易必须解决的关键性问题,不顾风险直接开展程序交易业务很可能酿成难以承受的恶果。
如果未控制好程序交易风险将产生什么后果呢?近些年来影响最大的交易系统故障引发的乌龙指有两起,其一为2012年纽交所更新交易系统时,美国骑士资本公司将用于测试的做市交易系统错误部署到了生产环境中的一台服务器,使得其交易系统以很快的速度使用市价委托单在100多支股票上快速买卖,直到45分钟后其工作人员发现问题时才停止交易。处置这起事故,导致骑士资本税前亏损4.4亿美元,最终其余数家交易商巨头出资接管了骑士资本才使其避免了破产的结局。在此之前,骑士资本是美国市场最重要的经纪商和做市商之一,在2012年1月至5月间,11%的美国股票成交来自于骑士资本。其二为2013年光大证券策略投资部的ETF套利交易系统缺陷,导致其订单生成系统在短短数秒内生成26082笔市价委托单,其中6413笔委托被直接报至证券交易所,这导致光大证券短时间买入72亿股票,众多权重股在极短的时间内同时达到涨停。虽然其后光大证券快速果断应对,使用股指QH和ETF等套保工具控制住了损失,但最终此套保行为被定性为内幕交易,光大证券被罚款5.23亿元,而相关人员也受到监管机构重罚。而在此事件之前一年,光大证券策略投资部创收1.24亿元,风光无限。
以局外人的眼光审视这两起事件,可以说这两起技术性缺陷导致的乌龙指非常低级,其一为骑士资本生产环境系统管理不善,在交易系统的管理流程控制上存在巨大漏洞导致测试系统被部署至生产环境。其二为光大证券的委托单未经任何有效风控审核就直接进入交易所系统,是其公司风控的重大失误。那么,怎么有效控制交易系统的技术性风险才能在安全的前提条件下享有交易系统的高效率呢?
其一,需要建立完备的交易系统管理流程,特别是上线和更新流程。交易系统在生产环境运行之前,必须先在测试环境完成一系列功能测试验收,如果常规测试项目有任何不能通过的,都不能进入生产环境。在涉及交易接口的升级时,采用系统首次上线的标准进行测试验收,其余更新可适当放宽要求。由于交易,订单和仓位管理功能是任何交易系统的基础,必须审慎对待,骑士资本的例子就是最鲜明的教训,交易系统管理流程未有效落实,那么风控也无从谈起,因为交易系统行为已经完全无法预期。
其二,完整的程序化交易系统风控体系。即使通过了功能测试,但任何交易系统都无法保证其不存在任何潜在缺陷,必须设定适当的风控规则,在委托单报入交易所之前对其进行合理的检查和校验,使得交易系统在安全边界范围内运行。那么为何要风控体系呢?因为任何单一系统都不能保证安全,在极端情况下单一系统的风控失效时整个体系仍能保证风险在可控范围内。值得一提的是要控制住交易系统风险,一定要采用事前风控的手段,虽然事前风控对下单效率会造成一定的负面影响。具体地,根据交易系统层级以及交易品种的不同可制定不同的风控体系方案。下面以国内券商自营的QH交易系统为例进行分析。
由于证券公司不是QH交易所会员,只能报单至QH公司的交易系统,再由QH公司系统将委托单报入QH交易所,因此从业务系统报单至交易所过程形成如下路径:
业务系统->>>公司系统->>>QH公司->>>交易所
委托单进入交易所之前将经过三个系统的处理,分别在这三个系统上部署不同级别的风控规则从而形成完整的风控体系,将能够有效控制住交易系统的风险。即使前端的委托单逻辑出错,也能保证其不会造成严重后果。
1.
QH公司
QH公司负责监管每个客户的资金账户,开仓保证金验资就一定程度上限制了开仓交易。此外交易所批准的交易编码一般均有开仓上限等硬约束。在QH公司层面实施的这些风控规则是最为基本和宽泛的,只要报至QH公司的委托单全部要经过其风控规则的检查才会进入交易所。那么是否有必要在QH公司层面进行更严格的风控检查呢?一般来说必要性不大,因为在委托单进入QH公司之前还有几个层级可以做细粒度的检查,而且如果在QH公司实施更严格的风控,修改时的效率难以保证,很可能对业务开展造成影响。
2.
公司系统
公司系统中可以通过多种方式对委托单进行风控检查。最常见的做法是设置价格偏离度和单笔报单数量以及设定同反向规则禁止对敲。这些常见规则具有普适性,不仅适用于程序化交易,也适用于人工交易,对于业务合规以及控制错误委托单具有重要作用。除此之外,对于程序交易可以考虑设置更多风控规则。其一是分账户限仓,一般来说业务授权不会非常小,在公司系统内设置大的限仓不能有效控制住风险,而对于账户设置较小的限仓又面临经常修改的窘境,因此分账户并分别设置合理的限仓是一个有效控制程序化交易技术性风险的手段。其二是一定程度上限制市价单,市价单相比于限价单在成交上有交易规则的保证,但由于程序交易速度极快,一旦市价单逻辑出错,造成的后果也相对较严重。可以看到上述两例乌龙指事故中都使用了市价单,虽然不能简单的将问题归结于此,但如果骑士资本和光大证券对市价单做一定程度的限制,那么很可能可以降低事故造成的影响。
3.
业务系统
业务系统是程序交易的核心,也是程序交易委托单风控的第一道闸门,必须将绝大多数风险严格控制在业务系统内部,不能将风控职责全部寄托于公司系统。实际上公司系统只是业务系统外部的又一道屏障,能够确保即使在整个业务系统出现故障,内部风控失效的情况下,总体程序交易业务的风险仍在可控范围内。业务系统中需要考虑的风控规则包括以下几个方面:
a)
交易策略校验。在生成委托单之前,可以将委托单与策略内部状态例如交易信号,以及交易策略参数等进行比对校验,如有逻辑上的冲突即可直接确认交易策略有缺陷并停止报单。此技巧实施成本极低,虽然在简单策略上显得有些多余,但在复杂交易策略的运行中可以有效识别策略内部潜在逻辑缺陷造成的错误报单,并在第一时间将其阻止。
b)
策略级和系统级限仓
限仓是最直接有效的防控技术风险的风控手段。在业务系统中可以视情况设置策略级和系统级限仓,如果只设置一层限仓,必须设置事前限仓。这里的事前限仓是指对已有持仓,已报出委托单和将报出委托单进行合计限制。如果设置两层限仓,则可考虑在其中一层设置为事中限仓,以合理降低限仓检查对下单效率的影响。
c)
审慎对待在途单
在途单是指已经报出,但尚未收到交易所正确报单反馈的交易委托单。在途单一旦处理不慎,非常容易导致技术风险。其一是严格限制策略级单一标的在途单数量,由于正常情况下在途单是委托单在极短时间内的状态,考虑到正常网络延迟,在数十毫秒内在途单应转为“已报”委托单,如果不对在途单数量进行限制,在故障情况下短时间内报出大量状态未知的委托单的后果将难以估量。其二是在事前风控限仓中考虑在途单。例如限仓100手,当前仓位90手,如果策略刚刚报入委托单5手且仍处于在途状态,那么此时策略申请报出的6手委托单将直接被风控规则以超限拒绝。再度回顾上述乌龙指事件,如果光大证券对在途单稍加控制,事态也绝不可能发展的如此之快。
总的来说,程序交易是提升交易业务效率的利器,但为防范交易系统的技术性风险,一定要在完善的交易系统管理流程以及程序化交易系统风控体系的框架前提下开展程序交易业务。一定要将这把利刃框定在安全边界内,否则迟早会误伤自己。
文章评论