金融市场中的交易执行算法技术研究

chinamoney 4天前 阅读数 2 #财经

内容提要

文章回顾了交易执行算法的发展历程及其在不同资产类别中的应用现状,详细阐述了交易执行算法的标准流程,包括拆单、挂单和智能订单路由等重要环节,并探讨了算法在平衡交易成本、市场风险及执行完成度等方面的考量。最后,文章分析了交易执行算法对市场带来的重要机遇和潜在挑战,并强调在其推广应用过程中,需要加强风险管理与合规性监控。

一、交易执行算法概述

交易执行算法(Execution Algorithm, ALGO)是指按照一定预设规则,将一笔需要完成的大额交易订单拆分成为多个小额订单,并在若干个交易渠道上分批执行的算法。交易执行算法一般用于减少交易执行过程对市场的冲击,获取最优执行价格,同时确保符合交易风险管理要求。

常用的交易执行算法包括时间加权平均价格(Time Weighted Average Price, TWAP)、金额加权平均价格(Volume Weighted Average Price, VWAP)、成交量百分比(Percentage of Volume, POV)等。TWAP算法通过将订单金额在一段时间内均匀执行,以减少短时间内的市场冲击;VWAP算法按照预估市场交易量的时间分布,将金额等比例拆分以执行交易;POV算法指将订单金额拆分成若干个小订单分别成交,每个子订单的交易量不超过市场总交易量的预设比例。除以上算法外,市场还发展出了盯住市场(Pegging)、执行偏离度(Implementation Shortfall)、冰山策略(Iceberg)等其他算法,用于满足不同的交易执行目的。

交易执行算法的起源可以追溯到上世纪80到90年代,股票市场从电话交易向电子化交易过渡,这一转变显著提升了交易效率,也为交易订单自动拆单提供了基础。在电子化交易过程中,单笔大额交易订单在市场中直接执行会面临两个主要问题:一是对市场价格的短期冲击较大,导致最终交易成本较高;二是交易意图容易被其他市场参与者捕获,可能导致价格变差或无法全量成交。为了解决这些问题,股票市场最先发展出了交易执行算法。

近年来,随着FICC市场的电子化进程的推进,交易执行算法已经广泛应用于国债、外汇、大宗商品等多种资产的交易中。交易经纪商及使用电子平台的投资者常使用这种算法来进行低成本开仓或平仓。例如,由于外汇市场流动性较好,交易场所具有天然的割裂性特点,交易执行算法在外汇领域的应用更为普遍。与之对比,对于较为复杂、流动性相对较差的资产标的,交易执行算法的应用相对较慢。

经典的执行算法已经得到了较为深入的研究和积累,近几年部分国际一线投行和对冲基金已经将强化学习等人工智能和大数据技术应用到执行算法的研究升级中,推出了更加成熟复杂、对市场实时变化响应更加及时的执行算法。

二、交易执行算法的通用流程

尽管不同的交易执行算法的目的各有区别,但算法执行框架大体相似。算法使用者指定交易执行算法的类型、执行时间段、速度、偏离阈值等算法参数,随后算法根据参数设置开始自动执行交易。一个算法订单的执行过程大致可分为拆单(Scheduler)、挂单(Placement)和智能订单路由(Smart Order Routing, SOR)三个步骤,这些构成了一个基本的执行管理系统(Execution Management System, EMS)。近年随着执行算法的不断升级优化,执行过程还需要考虑执行价格偏离度、执行进度预测、订单重新规划等因素,算法流程更加复杂。

(一)拆单(Scheduler)

拆单是指将原始大额订单(父订单)拆分成众多的小额订单(子订单),并制定整个订单流的“执行时间表”。拆单的主要目的是实现交易成本和时间风险的平衡。过短的执行时间将会导致短时间内成交大额订单,交易对市场的冲击过高,可能导致较大的滑点,抬高交易成本;而若花过长的时间执行整个订单,则单个子订单对市场的冲击较小,这会降低最终平均成本,但算法使用者需要承受在指定时间内无法执行完全部金额的风险,并且会承受更高的市场风险。

以TWAP算法为例,根据使用者输入的执行时间范围及执行速度参数,算法的拆单过程是,先将父订单的金额均等分为若干份,再设定子订单在给定时间范围内均匀执行。与此类似,VWAP算法的拆单过程也是将父订单拆分成若干子订单依次执行,但每个子订单的交易量是根据对未来全市场交易量的预测分布对父订单交易量进行按比例分配。POV算法则设置每个子订单的金额为实时全市场交易量的某个固定比例,从而控制交易对市场的冲击程度。

(二)挂单(Placement)

挂单是指当时间到达某个子订单的预计执行时间时,算法根据实时市场情况及风险偏好参数设置,确定该子订单的订单类型、挂单金额等交易细节,以准备将子订单发往交易渠道进行实际成交。此环节需要算法根据订单的整体执行进度进行实时决策,以对订单执行完成度和平均价格进行最优化。

订单类型主要分为市价单和限价单两种。市价单主动与市场中现有订单撮合成交,成交率较高,但成交价格一般差于市场中间价;限价单以优于市场中间价的价格进行挂单、等待成交,一般可以获得较低的成本,但由于成交时间和市场方向的不确定性,交易执行算法的整体执行进度可能落后或者超前于时间计划。限价单的具体挂单价格也需要根据交易执行进度、用户偏好参数设置,同时结合市场行情趋势、短期波动率等进行计算和调整。例如,可以在市场上同时进行多档挂单,设置不同价格和挂单金额,以短时成交率、交易价格等维度为目标进行优化。

(三)智能订单路由(SOR)

智能订单路由是指根据实时信息自动设定每个子订单(甚至再继续拆分)的具体执行场所。部分交易标的可以同时在多个交易渠道执行交易,包括不同交易所、各大银行的单一银行平台、内部订单簿撮合等。尽管在物理连接上各个交易渠道相互分割,但各交易渠道的流动性可以通过市场主要参与者之间的交易行为相互连接。对于同一个交易标的,不同交易渠道的价格、波动率、成交率等可能存在区别,但整体上具有一定关联性。

智能订单路由算法根据多个交易渠道的实时市场情况进行判断,然后将挂单过程中生成的多个子订单发送至不同的交易渠道,并完成实际的挂单执行步骤。这一步骤的目的是使得订单可以得到最佳的执行效果,包括成交率、成交速度、交易成本等多个维度。不同的算法及参数设置对执行情况的评估指标各有侧重,最终导致不同的执行结果。

三、订单管理系统的功能分析

交易执行算法的复杂功能需要依靠订单管理系统进行实现。订单管理系统(Order Management System, OMS)负责对交易订单进行统一管理和直接控制,实时维护每个订单的状态。广义上讲,订单管理系统应包含所有通过交易执行算法执行的订单(ALGO单)和直接执行的订单(非ALGO单)。狭义上讲,订单管理系统仅指ALGO相关的父订单与子订单管理。如图1所示,该部分与进行交易执行算法决策的执行管理系统(Execution Management System, EMS)进行实时数据交互,共同完成订单的控制与管理。

图1  订单管理系统与其他模块的连接关系

(一)订单管理与维护

从订单来源角度看,订单包括客户订单、交易员直接下单、内部交易订单等多种来源。如图2所示,直接执行的订单指令进入订单管理系统后,系统根据输入的订单金额、目标市场、订单类型等参数直接通过API接口在外部市场进行挂单。算法执行订单指令进入订单管理系统后,根据算法决策将父订单(Parent Order)拆分成若干个子订单(Child Order),并按时间要求分别进行挂单成交。子订单可以通过内部渠道与内部交易台进行撮合成交,也可以生成市场挂单通过外部渠道成交。

图2  OMS中订单关系的树形结构

订单管理系统通常以统一的数据结构表示不同类型的订单,保存交易要素、实时成交状态等数据,并可以在订单之间建立嵌套关系,以维护各订单之间的联系。对于具有嵌套关系的多层订单,系统可以支持手动修改多个订单之间的关联关系,也可以对不同分支分别进行嵌套(深度约束)、子订单拆分以及订单事件传播等操作。为了满足这些功能要求,订单维护模块一般支持对订单信息和订单关联关系等进行查询,并可以提供接口,允许人工进行中止、暂停订单执行过程以及调整部分参数等操作。

(二)外部交易渠道连接

订单管理系统一般通过统一的连接层与外部各交易渠道之间进行行情数据与交易数据的直接交互。在行情数据方面,订单管理系统接收实时行情,以供内部拆单、挂单、智能路由、风险控制等环节使用。在交易数据方面,订单管理系统根据算法决策,向外部交易渠道发送挂单、撤单操作,同时接收由交易渠道返回的操作结果通知,以及成交(Filled)或部分成交(Partially Filled)等事件。该模块与拆单、挂单等模块进行实时交互,确保执行算法实时掌握最新的订单状态信息。

该模块是订单管理系统接收外部信息的直接入口以及对外执行交易操作的最终出口。在订单管理系统内部,该模块向订单管理、风控、簿记清算等其他功能模块推送订单状态变化等事件,是各个模块之间的数据桥梁,对订单管理系统功能的顺利执行发挥着关键作用。

(三)风险控制和合规检查

订单管理系统通常具有独立的风险控制和合规检查功能,可以实时进行交易事前检查、实时监控和事后审计等环节,确保交易执行的安全性和合规性。在风险控制方面,订单管理系统可以实时监控当前头寸、单笔交易金额,实时计算价格偏离情况和头寸实时估值,对交易算法的执行过程进行必要干预。在合规检查方面,订单管理系统可以对交易对手集中度、异常交易行为进行监控,确保每个订单符合监管相关要求。同时对算法使用者进行权限管理,对交易执行过程进行记录确保交易合规。

(四)交易执行报告

交易执行算法的另一个重要功能是进行交易后分析(Post-Trade Analysis),并生成交易执行情况报告。交易执行报告是反映交易执行过程详情、评估交易执行效果的最重要工具之一。交易执行报告的内容包括交易执行过程明细和交易成本分析(Transaction Cost Analysis)等。交易执行过程明细列出每一个子订单的具体执行时间、金额等信息,确保交易决策透明、符合预期以及合规要求。交易成本分析主要评估交易执行过程中产生的市场冲击、子订单执行的滑点情况、实际价格与基准价格之间的比较等,主要用于评估交易执行质量,并为策略优化提供参考。

(五)性能要求

订单管理系统需要与交易所、市场数据提供商、流动性提供商等外部平台进行高频数据交换,并确保算法的执行过程不受网络延迟、数据丢失等问题的影响。在此过程中,订单管理系统的性能将对算法执行结果的正确性、交易成本,以及异常场景响应情况等产生重要影响。在性能方面,订单管理系统需要具备高吞吐量、低延迟和高可用性等特点。高吞吐量确保在订单激增时系统仍能够正常进行交易处理;低延迟确保系统能够对市场波动进行及时响应,并以更大概率抓住市场价格机会;高可用性确保当出现系统故障或者网络中断时,系统仍可以正常运行撤单等逻辑或者尽快恢复正常运行。

四、思考和启示

(一)交易执行算法给金融市场带来的机会与挑战

从执行算法的发展趋势可以看到,交易执行算法的发展为金融市场及其参与者带来了多种机遇。对市场参与者来说,交易执行算法的应用有助于减少订单执行对市场的冲击,从而降低了交易成本。从整个市场的角度来看,交易执行算法通过提升市场流动性及价格发现的效率,推动了市场更加高效运作。

然而,执行算法的广泛应用也伴随着一定的挑战。首先,执行算法引入了新型风险。相比于传统的直接执行订单的方式,算法执行过程高度依赖于复杂的算法和机器。在算法设计阶段,必须要考虑到各种可能的市场情形,并设计相应的应对策略。在交易执行阶段,也可能由于算法异常或机器网络故障等原因出现算法失效情况,从而引发潜在风险。其次,执行算法的种类繁多,且参数细节复杂,用户需要充分了解执行算法的实现逻辑,并判断其适用场景,这对使用者提出了较高要求。最后,执行算法的普及可能会引起“军备竞赛”式的技术竞争。在订单驱动类市场中,订单是否能够成交一定程度上取决于挂单速度的快慢。随着交易执行算法的推广,市场订单簿变化更加频繁,如果市场上出现同质化策略,或者多方对价格方向判断基本相同,就会出现对挂单执行速度的竞争,这将大幅提升对系统性能的技术要求,带来硬件和系统性能上的“军备竞赛”。

需要注意的是,执行算法对于金融市场所发挥的积极意义与潜在挑战具有双重性。例如,较为积极的执行算法可以迅速抓住市场机会,获得有利的执行价格;但过于激进的执行算法可能会在部分市场情况下迅速导致市场流动性枯竭,造成潜在的流动性危机。

(二)对交易执行算法的推广要加强风险与合规监控

从国际金融市场发展趋势来看,交易执行算法的应用在未来一段时间将持续增长。随着国内金融交易市场自动化交易接口的逐步开放,执行算法的应用场景预计也将逐步扩大。因此,市场参与者要加强交易执行算法相关的策略研究及应用优化力度,推动计算性能、网络速度等硬件性能的提升,为金融高水平对外开放提供技术储备。

然而,交易执行算法的推广需要加强风险控制。根据相关研究,执行算法的使用将会对市场微观结构产生影响。交易场所和市场参与者要针对电子化交易和交易执行算法的特点,有针对性地加强市场监控,避免由此引入新型风险。此外,随着执行算法的推广应用,交易业务涉及的应用系统和网络数据传输也越来越多,这需要加强对网络安全和数据安全管理的关注,确保交易过程中的数据安全。

交易执行算法的推广应用还需要加强行业自律和机构监管。执行算法的下单模式与普通电子化交易下单模式不同,算法的执行过程要确保符合市场监管要求,包括交易速度和交易订单数的限制等。在此基础上,监管规则和行业自律准则也要充分考虑交易执行算法可能隐含的合规漏洞,对算法的程序逻辑提出明确的合规要求,以在提高市场效率的同时避免潜在风险。

作者:宋云飞、岳一飞、程登辉,中国银行总行金融市场部

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

chinamoney

chinamoney

《中国货币市场》是中国外汇交易中心主办的财经月刊。