热门资讯> 正文
2024-06-11 16:44
登录新浪财经APP 搜索【信披】查看更多考评等级
来源:量化投资与机器学习
量化投资与机器学习微信公众号,是业内垂直于量化投资、对冲基金、金融科技、人工智能、大数据等领域的主流自媒体。公众号拥有来自公募、私募、券商、期货、银行、保险、高校等行业30W+关注者,曾荣获AMMA优秀品牌力、优秀洞察力大奖,连续4年被腾讯云+社区评选为“年度最佳作者”。
作者 | 江海 来自 | 知乎
本文来自作者对《High-frequency trading a practical guide to algorithmic strategies and trading systems》一书的脱水解读。书里内容很全面也很practical,似乎网上中文的文章也很少有全面介绍高频交易是怎么回事的,所以这里写篇文章来试图做这么一件事,还有自己的一些相关想法,也当做自己的读书笔记总结。
就像爱因斯坦说的“如果不能用最简单的话来解释物理,那么说明自己也没有弄懂”,争取用最简单的语言讲清楚高频交易是个什么东西,让每个人都学会高频交易。
本文分为四个部分:
首先第一部分是介绍高频数据长什么样子;第二部分是基于高频数据,介绍现在高频交易的各种统计套利,market making策略还有events driven策略;第三部分是简单介绍execution cost和algo trading,用来隐藏自己的下单和降低对市场的影响;前三部分都是金融硬核知识,最后一部分是工作心得,还有附录推荐书籍。话不多说,我们接下来先看看第一章高频数据。
一、高频数据
高频交易最重要的信息来源就是Quotes和Trades了,我感觉基本上所有的数据分析都是基于买和卖的信息,不仅最重要的strategy和signal,还有market impact和order execution的modeling都是基于order book上面的Quotes和Trades做出的判断。
Quotes和Trades都是从交易所发过来的信息。如果一个人想要在交易所交易某个股票(交易过股票的盆友可能在股票app上也见到过),会有两个下单的order订单种类选择,一个是用limit order(限价订单),另一个是用market orde(市场订单)。
Limit order是指在特定价格买入或卖出股票,用的是limit buy order和limit sell order,优点是可以控制成交价格是自己指定的价格,但缺点是需要等很长时间甚至不一定买得到股票,因为一般limit order的价格都是差于市场正在交易的价格(market price),买卖的人是希望未来市场价格会达到自己心目中的价位,否则宁愿交易不成功。
除了limit order,我们还可以用market order,其是指以当前market price立即买入或卖出股票的order,用的是market buy order和market sell order。这样可以快速确保交易的成功执行,当然缺点就是当买卖股票数目很大的时候,实际的交易价格会和一开始下单时的market price偏离很大,也就是market impact会很大,这点后面会详细解释为什么。
作为高频交易,里面其实据此也分成Maker和Taker,还有其相应不同的策略。Maker策略就是主要用limit order放在自己这一边来做market making,盈利主要是spread还有rebate;Taker策略就是根据很强的alpha来直接用market order去吃掉对面limit order单子,比如预测股票要涨,那么就take对面best ask的单子,需要用到market order是因为alpha很容易就decay掉了所以需要尽快realize这个交易。
总之,Quotes包含了所有买卖双方的limit order的信息,然后把所有的信息都呈现在一个book上面,这就是Limit Order Book(LOB),其名字其实也就是代表了这是所有limit order的集合。Trades的所有信息是从market order来的,也可以当做是market order在limit order book上撮合交易的结果。本质上市场是由market order驱动的,因为如果没有market order那么limit order永远成交不了,这样市场就永远不会有成交的交易也永远不会move了(当然这里表述其实不是很准确,因为limit order设置的价格也可以优于market price,这里为了简单,统一把优于市场价格的order都当做market order,因为都是可以立即执行变成trade的order)。
这两个数据对于高频交易都至关重要,我们可以先看看Quotes和Limit Order Book。
1.1 Limit Order Book (LOB) and Microstructure
Limit Order Book(限价订单簿)是一个显示所有未成交限价订单的信息集合。它包括买入和卖出的限价订单,按照价格和时间优先级排序。简单来说,就是买和卖的所有人把自己想在什么价位买多少股票都列在同一个book上面,这样所有人都非常清楚地知道了某个股票当下的供给状态。如果把股票换成是任何可以交易的物品,我觉得这最微观的行为反而是金融市场最本质最优美的状态,fundamentally就是买和卖,像极了之前博士期间学习粒子物理时候的受到世界最本质粒子的震撼。
首先我们可以看看这本书里解释的limit order book长什么样子,如下:
横轴是bid(买)和ask(卖)分别的报价,纵轴是各个买和卖价格上的挂单数目和次序,也就是这个价格上的queue队列。买单和卖单统称为quotes(订单)。有点像俄罗斯方块,什么价格的大小订单就按照先来后到的顺序堆叠在什么价格上,同一价格上先到的订单先成交。
首先从最简单的第一档best quotes开始,best bid是市场中可用于出售该股票的最高价格(相对于market sell order来说),排列在bid里的第一档;best ask是任何特定时间内买入该股票的最低价格(相对于market buy order来说),排在ask里的第一档。我们可以看看图中第一档的bid和ask的信息,第一档买单best bid是这里的价格$20.07,第一档卖单best ask是这里的价格$20.09。我们可以看到买单价格比卖单价格要低,并且买单和卖单之间有一个小gap(这个gap其实就是bid/ask的价差spread),spread是一个很重要的流动性指标,后面会详细解释。
那为什么买单价格比卖单价格低呢?很简单,买的人都想尽可能用低的价格买,卖的人都想要尽可能高的价格卖,稳定的平衡状态就是买的人买不到卖的人卖不掉都尬在这儿了,必须得要不断有人让步市场才能继续运行。如果bid order的价格比ask order高的话,那这两个挂单就直接成交了(bid/ask crossed),并不会显示在limit order book上面,其实就是前面说的设置price优于market price的limit order变成了market order。对于cross和uncross这两个词也挺有意思,在论文和机构报告里经常会有人用,这里解释一下:
在金融市场中,术语“uncross”和“crossed”有特定的含义,用于描述买卖订单的状态和交易过程。以下是它们的定义和区别:
Crossed Market
定义: 当买入价(bid price)高于卖出价(ask price)时,市场被称为“crossed market”。
现象: 这表明有买家愿意支付的价格比卖家愿意接受的价格更高,通常这是一个不稳定的状态,表明市场可能会很快发生交易。
Uncross
定义: 当买入价和卖出价之间的差距被消除并且订单被匹配成交时,这个过程称为“uncross”。
过程: 订单簿中的买入订单和卖出订单被匹配,成交价格在买卖双方都能接受的范围内,市场恢复到一个非跨价状态(non-crossed state)。
所以bid和ask不能cross才是现实中最常见的稳定状态,因为买的人和卖的人都觉得自己的价格是对的,从而没有办法达成共识。如果所有的bid和ask都直接cross成交了,那也就没有limit order book什么事儿了,比如按照有效市场假说,所有的trade都是在信息披露的一刹那在同一个价格成交的,也不会有人挂limit order了因为所有人都知道同一个fair value准确是多少。
回到上面的图,我们再来看看best bid @$20.07上面的挂单。可以看到上面从下到上有5个order: buy300,buy200,buy300,buy200还有buy200。这里一共的买单有300+200+300+200+200=1200股,然后fill的priority是从下到上(最下面的300个买单先fill,最上面的最后fill)。这里priority是指Price-Time Priority,有些交易所也有其他的priority比如pro-rata Priority,order-size priority之类的,决定了在同一个价格的若干个挂单在交易所分别是按照什么顺序被execute的,如下有书里的两张示例图。
我们可以看到如果来了一个大的market sell order,首先就会按照价格顺序去match相应的limit order的单子,这样当下best bid这一价格档的所有limit order订单都会在首轮被先吃掉,然后次一档的bid订单就变成了新的best bid,继续也被market order剩下的部分吃掉(同一个价格上按照从下往上的顺序)。然后此时best bid的价格比之前就变得更低了,因为掉到了下一个价格档位。整体而言,就解释了为什么一个大的market sell order在微观上会使得股票价格下降。同时,我们可以看到spread也相应变宽了,因为best ask价格没变,但best bid降低了,所以他们之间的距离就更大了,这也显示了spread变宽一般是流动性被take的结果。
然后如果现在又来了新的limit buy order,那就堆栈在相应的价格档位上。如果这个新的limit buy order的价格比现在的best bid价格更高,那么这个limit buy order就成了新的best bid,也就是bid的第一档位。然后相应的spread就变窄了,表示有人放了新的limit order提供了流动性。
还有流动性,这个词其实很有意思,因为所有人都在说,但却没有一个人能给出明确的定义哈哈。这本书里的解释是”在特定交易场所中,所有限价订单在任何给定时间能够满足新进市场订单的累计交易量被称为流动性。交易所中可用的限价订单交易者数量越多,并且每个交易者的限价订单规模越大,该交易场所的流动性就越高“。我觉得这个定义还算是比较贴切,其实就是对于任何时候自己想要在某一个price买卖股票容易程度的一种measure。最完美的流动性,就是我可以在当下的市场价格买到任意数目的股票而不造成对市场的任何影响(比如market impact和information leak)。但现实中是很难做到的。现实中的流动性情况更加复杂,需要同时考虑bid和ask在各个price level上的数目和其分布,决定了你可以在市场上用什么价格买到多少数目的股票。还有spread的大小,决定了你如果用market order去买卖股票,需要承受的spread cost,一般是以mid-price来衡量的半个spread。还有交易的活跃度,比如一个股票是一秒钟交易一次还是一个小时交易一次,决定了你用limit order买卖股票需要等待的时间长短,这期间你需要承受等很久之后价格远远偏离起始价格的market risk。流动性还可以用market impact来衡量,market impact是下单时候的价格和实际成交的价格之间的差别,也就是是你下单之后对orderbook所造成的影响导致的。如果完美的流动性,那对于任意数目任何时间的股票买卖都造成0的market impact。之前还做过tick size的研究,具体就是研究tick size的变化怎么影响市场的流动性,还是挺有意思的,这里就不多写了因为只有公司的clients能看哈哈。网上也有很多相关的学术论文和卖方机构的研究报告可以读一读,都写得还不错。
1.2 Tick数据
1.2.1 介绍
高频的数据分为tick逐笔数据(比如美股)和snapshot快照数据(比如A股)。tick指的其实就是一个update的data feed,这个update可以是最新变动的quotes或者trade的价格,订单大小和成交量信息,然后高频频数据就是一系列连续“ticks”的集合。Tick数据通常具有以下属性:
时间戳
股票代码
买价
卖价
可用买单数量
可用卖单数量
最后交易价格
最后交易数量
时间戳记录了报价产生的日期和时间。它可能是交易所或经纪商发布报价的时间,也可能是交易系统收到报价的时间。书里说客户下单到交易所再返回客户并确认订单接收的标准“往返”时间在纽约为15毫秒或更少。如果经纪商无法以这种现在的标准速度处理订单,客户可能会解雇他们。因此,复杂的报价系统会在时间戳中包括毫秒甚至微秒。
最后交易价格显示了股票最后成交的价格。最后交易价格可能与买价和卖价不同。当客户发布一个有利的limit order并立即被经纪商匹配,而不广播客户的报价时,可能会产生差异。最后交易数量显示了最后执行交易的实际数量。
Tick数据也包含了每次quote或者trade更新时的order book的信息,其实也就是Level1和Level2数据。Level1的数据只包括了quotes第一档所有的变化信息,比如best bid price&size, best ask price&size 以及 last trade price&size。Level2的数据除了包括前面Level1里order book第一档的所有变化,还包括了远离市场价格(第二档,第三档以至于第十档)的ask和bid的信息。
就比如下面一开始的那张图里,Level1只包含best bid@$20.07和best ask@$20.09这两个queue的信息,而Level2就可以看到整张图,比Level1的信息量更多,能做的分析和建模也更多,但自然Level2比Level1的数据也是贵很多。
其实还有更贵的Level3的数据,包括的市场信息会更多。除了包含Level1和Level2的数据以外,Level3还会包括比如订单ID;提交订单的市场参与者的标识,是做市商、流动性提供者、散户还是机构投资者;订单被提交的准确时间戳;订单是买单还是卖单,限价单还是市价单等;订单当前的状态,如未执行、部分执行、完全执行或已取消;订单的指定价格和指定数量等等。这些信息几乎可以让整个市场的交易变得透明,这样拥有这些数据的人就有了巨大的优势。
我们来看一个书里的例子tick数据长什么样子:
图4.1的A和B展示了纽约证券交易所(NYSE) 在2009年11月9日14:00:16:400至14:02:00:000 GMT期间为S&P 500 ETF SPY记录的30秒一级高频数据日志。A图显示了报价数据:最佳买价、最佳卖价和最后交易信息,而图B显示了相应的持仓规模(最佳买单数量、最佳卖单数量和最后交易数量)。我们可以看到每次的bid/ask/trade的price或者size有任何变化的时候,都会产生一个tick的update,然后我们收到的tick数据就是所有的这些更新的信息。
1.2.2 高频数据特性
作者总结了一下高频数据的特性,这里挑几个比较有意思的讲一下:
1.2.2.1 数据量大
高频数据第一个特性就是数据量特别大,书里举例如下图:
我们可以看到SPY一天的Level1 tick data总数目是20w条,这也仅仅是一个股票,如果你要同时分析spx500个股票,那么一天需要处理的数据量就是一个亿,如果想要用历史数据做modeling,即使一年的数据那就得250亿条数据。这个数据量对于任何一个软件或者model都是很有压力的。如果是Level2的数据,那至少又是Level1数据的十倍大,所以单纯从数据量来说高频交易对于硬件和软件的要求都会很高。
1.2.2.2 不是normally或者lognormally distributed
高频数据第二个特性就是它并不是normally或者lognormally distributed,我们可以看看书中的固定时长的股票return的histogram示例图:
我们可以看到当bin size是200ms的时候,histogram图基本就是中间一根线,然后两边零零散散的分布一些点,这是因为大部分时候(200ms的固定时间跨度来看)这个股票价格都没有动。而当bin size变成15s的时候,我们看到histogram越来越像normal distribution,如果是daily数据,那可会是更接近正态分布。所以在用高频数据做modeling的时候需要考虑他们的分布函数很不一样,很多假设normal distribution的模型都不再使用,所以需要有一些特殊的处理。
1.2.2.3 Tick data之间的时间间隔不一样
高频数据第三个特性就是相邻tick data之间的时间间隔不一样。因为tick data是只要当quote或者trades有update的时候就会产生一个tick,那么tick发生的时间就很随机,不像resample过的数据使得bin size都一样。书里给出了一个Last-tick sampling和Interpolated sampling两种解决办法,如下图:
Last-tick sampling是指的把固定时间戳的quote信息相等于上一个tick更新的quote信息(上一个有效值),Interpolated sampling指的是以时间做weight用相邻的两个quotes来算一个平均的quote(这个方法我感觉有点问题,因为在实际的trading里面不太可能知道下一个quote,所以只能在做历史数据分析的时候用)。
这里书里还说了,其实tick和tick之间不相同的时间间隔也是自带了某些有用信息的。时间间隔的model用于估计影响任意两个连续ticks之间时间的因素,这类模型分别被称为quote processes和trade processes。持续时间模型还用于测量预定大小的价格变化之间经过的时间,以及预定交易量增量之间的时间间隔。处理固定价格的模型被称为price processes;估计固定交易量增量持续时间变化的模型被称为volume processes。对于时间间隔duration的model,学术界经常用的是Poission distribution,学过统计的盆友可能也会比较熟悉,该过程假设连续事件(如arrival quote或者trade)彼此独立发生。
书里的下表显示了对2009年5月13日记录的所有SPY交易计算的持续时间度量的汇总统计数据:
”Diamond 和 Verrecchia(1987)以及 Easley 和 O’Hara(1992)首先提出 ticks 之间的持续时间携带信息。他们的模型认为,在存在卖空限制的情况下,交易间隔时间可以表明有好消息的存在;在禁止卖空的证券市场中,交易间隔时间越短,未被观察到的好消息的可能性就越高。反之亦然:在有限卖空和正常流动性的市场中,trade arrival之间的时间越长,未被观察到的坏消息的概率就越高。然而,完全没有交易则表明没有新闻。而且间隔一段时间的交易与接近发生的交易相比,其信息内容大不相同。Easley 和 O’Hara(1992)的一个重要意义在于,整个价格序列传递信息,因此应尽可能全面地使用“。我自己的感觉是duration应该是包含挺多信息可以做研究的,但可能得和microstructure上其他的信息结合起来,因为其本身可能是一个neutral的信息,但有可能可以用来预测volatility和event,毕竟也是属于比较clustering的特点。
1.2.2.4 Trade不会标明是buy还是sell的结果
高频数据最后一个特性是Level1和Level2的trade都不会标明是buy的还是sell的market order。如果不知道是买造成的还是卖造成的,那么trade数据的信息量自然会大大折扣。所以书里给出了几种学术界常用的办法:
Tick rule
Tick rule是用的最多也最简单的一个方法,是将trade price与前一笔trade price进行比较来对当下这个trade的买卖进行分类。简单的地方在于,这里不需要考虑bid或ask信息,只需要trade的信息就可以了。如果一起处理过quote和trade的盆友估计会深有体会哈哈。
但这个办法准确率不高,根据 Ellis,Michaely和O’Hara(2000)的研究,在1997-1998年间,tick rule只能正确分类77.66%纳斯达克所有的trade。文章里面也解释trade正确分类比例低可能特别归因于股票市场的监管问题,也就是美股里的uptick rule,其要求股票short sell必须在uptick或zero-uptick时执行,然后美股里面30%的trade都是short sell。如果在没有uptick rule的S&P 500的E-mini futures上验证,那就会有86.43%的准确率。
Quote rule
Quote rule是由Lee和Ready(1991)以及Ellis等人(2000)提出,如果trade price高于当时的bid/ask报价平均值,则该交易为buy(sell)。如果交易价格恰好处于当时bid/ask报价的中点,则该交易不被分类。Quote rule经常被使用,证明在纳斯达克正确分类了76.4%的所有交易(见 Ellis 等人,2000)。
不过Lee和Ready(1991)指出,quote和trade经常是按非顺序报告的,导致确定trade当时的quote很困难。他们具体展示了随着电子交易的引入,报价常常记录在触发它们的交易之前。
Lee-Ready rule
Lee-Ready rule首先使用quote rule对trade进行分类。按照quote rule,发生在当时报价bid和ask price中点的交易不进行分类,随后再使用 tick 规则进行分类。这个方法我感觉是最优的,结合了前两个方法的优点,其成功率有81.05%。
除了上面三个方法,书里还介绍了Bulk volume classification,是用一种概率模型的方式来做classification,公式比较多这里就不介绍了。
前面都介绍的是tick数据,还有一种就是snapshot数据,比如A股。具体就是Quote不会每个tick都会update,而是直接给固定时间间隔(比如3s)的orderbook的信息,比如best bid/ask的price和size。这种的话就丢失了很多信息,比如3s之内的所有quotes变化都是未知的,这样在modeling的时候就需要做出更多的假设。A股现在貌似也有tick数据,但似乎不是很可信,开盘的时候tick数据由于体量太大会有很大的延迟,所以大家还是用更容易操作的snapshot数据。不过我感觉没准可以在tick数据上面做分析,如果有什么新发现再应用在snapshot的交易。
整体来说高频数据和低频数据是很不一样的,不仅信息不一样,而且分布也不一样。但高频数据的好处就是信息量非常的丰富,可以做的事情会非常多,但需要处理的问题也会相应变很多。好了,高频数据介绍了很多,接下来可以看看书里介绍的最亦可赛艇的高频策略了。
二、高频策略
我们了解了高频数据长什么样子,接下来我们就需要用高频数据的各种信息来赚钱了。高频策略作为高频交易赚钱的核心,大概可以被分为Stats Arb统计套利策略,market making策略还有Events driven策略。
下图的总结挺好的,相对于order book中市场价格,来判断订单aggressiveness程度和交易者类型的分布。Aggressiveness的意思是直接用market order来交易,形容非常迫切的想要吃掉order book上的订单;与之相对用limit order来交易被称作passiveness,形容对时间不是那么敏感可以用挂单来完成交易。
图里中间informed traders指的是高频交易中的prop trading,包括了统计套利和event driven等策略,他们对能不能快速完成交易非常的敏感,因为timing极大程度决定了他们策略是不是能赚钱,所以很多时候会aggressive的用market order来完成交易。其两边相对没有那么aggressive的是market maker做市商,他们主要是通过管理inventory来两边下单赚spread和交易所的rebate,所以正常情况下不是那么需要aggressive的去吃掉单子,除非遇到了单边市场risk过大了需要感觉liquidate仓位。然后两端最不aggressive的就是价值投资者(比如巴菲特lol),主要是研究公司和行业基本面和财报之类的信息,因为是长期的一个投资,对时间和价格其实没有那么的敏感,所以是最有耐心也最不aggressive的投资类型。
2.1 Statistical arbitrage统计套利
统计套利或统计套利(stat-arb),其在1990年代迅速崛起,交易者利用简单的统计现象获得两位数的回报。本章讨论在高频交易领域中常用的一些统计套利策略。
统计套利这个名字来源于它的主要功能:检测那些具有统计显著性和持久性的现象,这些现象通常有fundamental的原因。这样的统计持久性anomaly可能存在于股票的当前价格水平和该公司最近财报的收益之间,也可能存在于多个金融工具的价格水平之间,比如通过某些基本变量连接在一起的金融工具价格和波动性之间,或者其他许多变量之间。
识别适合统计套利的关键是,变量之间的关系必须以至少90%或更高的统计置信度成立(所谓2个sigma外的anomaly)。当测试关系中的数值变化保持在其平均值的两个标准差以内时,就可以观察到这种置信度。从某种程度上说,统计套利其实有点像一种现代且复杂的技术分析策略,比如利用Bollinger bands(布林带)显示价格简单移动平均线周围的两标准差区间,暗示可能的短期价格路径边界然后相应的做mean reversion。本质上任意变量都可以做一个Bollinger bands,都可以trade它的mean reversion。
但不是所有变量的stats arb都是可以持续赚钱的,相比之下,衡量实际经济现象统计持久性的统计套利模型往往比仅靠数据挖掘的模型更有盈利能力,持续时间也更长。一个有solid经济原理的统计套利例子是交易所交易基金(ETF)或指数套利:根据金融的一价定律,交易的指数或ETF的价格应该和构成该ETF的一篮子个别金融工具的价格相同,并按比例加权。如果你自己做的篮子和交易的ETF之间存在不匹配,交易者可以通过套利这种不匹配获利,稍后会讨论具体细节。相比之下,两个完全不相关的股票价格之间观察到的统计关系可能纯粹是随机的,或者说是“虚假的”。尽管这种关系显示出高度显著的统计依赖性,但几乎无法用于对这些股票未来价值做出有意义的预测。从交易策略的角度来看,这种关系和 Challe(2003)展示的那些统计关系没什么区别。他举了一个极端的例子:太阳黑子的出现与资产回报的可预测性之间存在统计显著的联系。
这一节主要介绍统计套利在不同asset上的应用例子。下表列出了书里讨论的策略,这些选定的策略只是为了大致说明统计套利的概念,肯定还有许多其他的套利机会没有被写出来(都是各个PM用来吃饭的家伙)。
2.1.1 股票
2.1.1.1 Pairs trading(配对交易)
配对交易(Pairs Trading)可以说是统计套利策略里最简单也最常用的一种。它的基本原理是找出两只在价格上有很强关系的股票。当这两只股票的价格偏离它们历史上的正常关系时,我们就可以进行套利操作。具体来说,当一只股票的价格高于预期,而另一只低于预期时,我们可以做空价格高的那只,同时做多价格低的那只,等到它们的价格关系恢复正常时获利。
书里具体的步骤如下:
简单来说就是遍历所有股票pairs,然后找到两个股票i和j,使得他们的股票波动大小一致,也就是波动大小的差别最小。这里书里写的S是股票的价格,我觉得可能不太对,应该是return才对,不然不同股票价格相差太大了。这里用来判断哪两只股票之间波动差别大小用的是最简单的平方和,其实也就是两只股票return之间的方差最小。这里return可以是daily return也可以是intraday的更小尺度的return,取决于pair trading策略的horizon大小。感觉其实也可以做两个loop,一个是loop所有的股票pair,一个loop所有的horizon大小,然后找到最optimal的pair和horizon。或者用价格S来做差也可以,但就不能横向对比所有的股票,因为他们的price scale不一样,也许可以用time series的model来判断这个序列是不是stationary,其实也是判断两个股票之间有很强的相关性,或者也可以直接用相关性的指标来判断。当然这个pair不一定需要是最小差值的,可以选择相对来说有fundamental解释的pairs,比如两个公司同属于一个sector,或者他们之间是有互相持股的关系等等可以解释他们之间的强相关性,这样在金融理论上也更加solid而不仅仅是data mining的结果。
一旦找到这个股票pair之后,然后就可以算他们return差别的均值和标准差。接着就可以开始monitor他们return之间的差来做pair trading了: 一旦他们之间的差别超过两个标准差甚至更多,就可以利用pair trading的逻辑,做空价格高的那只,同时做多价格低的那只,等到它们的价格关系恢复正常时获利。不过这里我觉得可以做的更细一点,把标准差变成他们差的分布函数,而不是简单假设这是一个正态分布的两个标准差。因为我们前面高频数据里可以看到,intraday的高频数据是和日频数据长得很不一样,所以分布不一定是正态分布,而且这个分布其实也jointly取决于两个股票价格波动的分布长什么样子。
为了让pair trading更加灵活,应对不断变化的市场conditions,pair trading策略可以动态调整。例如,我们可以用移动加权平均来计算某个变量的均值,这样最新的观察值会被赋予更大的权重,以反映最新的市场情况。同样,计算标准差时也可以只使用最近的一些数据,这样可以更好地反映当前的经济环境 。除了检测价格水平上的统计anomalys,统计套利还可以应用于其他变量,比如两个股票之间的相关性和传统的基本面关系。基于基本面因素的统计套利的具体实现细节将在后文中详细讨论。
2.1.1.2 同一发行人的不同股票类别
首先,这种策略的基本思路是利用同一家公司发行的不同股票类别之间的价格差异来进行套利,我觉得其实可以算是属于pairs trading的一种更有公司fundamental解释的特殊类型。一般来说,同一家公司可能会发行多种不同类别的股票,这些股票可能会有不同的投票权或其他权益差异。尽管如此,它们的价格应该在一个合理的范围内波动,因为它们都代表着同一家公司的价值。
具体操作上,当发现两类股票的价格偏离了它们的正常关系时,我们就可以进行套利操作。例如,如果A类股票的价格比B类股票高出很多,而从历史数据来看,这种情况是不正常的,那么我们就可以卖出A类股票(做空),同时买入B类股票(做多)。随着时间的推移,当两类股票的价格关系恢复到正常水平时,我们就可以平仓获利。
这种策略的优势在于,它利用的是同一家公司内部的价格关系,因此受到外部市场波动的影响相对较小。而且,由于这两类股票都代表着同一公司的价值,它们的价格关系通常会比较稳定,提供了很好的套利机会。但是这个策略也有一些问题,一般同一个公司不同的类别的股票他们的流动性可能会相差特别大,比如下图。这一点就会导致比较不liquid的股票很难去交易,因为产生的market impact会特别大,开仓关仓就会吃掉很多的利润,这里就需要特别把market impact也谨慎考虑进去。
总的来说,“同一发行者的不同股票类别套利”是一种利用同一家公司不同股票类别之间价格差异的策略。它通过做多和做空不同类别的股票来获取价格关系恢复正常的收益。
2.1.1.3 风险套利(市场中性套利)
接下来是风险套利,也称作市场中性套利。市场中性套利听起来有点复杂,但其实就是一种在市场不确定性中寻找稳定收益的策略。这种策略的目标是消除市场整体波动的影响,只赚取两只股票之间的收益差。说白了,就是你做多一只股票,同时做空另一只股票,以此来中和掉市场整体的涨跌,其实有点像long&short fund的策略。
具体来说,市场中性套利通常会选择两个在历史上表现出强相关性的股票或资产。比如,你可以选择同一个行业里的两只股票,或者是同一个公司的不同股票类别。这些资产在大多数情况下会一起涨跌,但有时候它们的价格会出现暂时的偏离。这个时候,套利者就会买入被低估的资产,同时卖出被高估的资产。
数学公式上来说就是著名的CAPM模型,也是alpha和beta的起源。
这种策略的好处在于,它不依赖于市场的整体走势,不管市场是涨还是跌,只要你选的资产对之间的关系稳定,你就有机会赚钱。这也是为什么叫它“市场中性”,因为它对市场的整体方向没有偏好。
CAPM的主要思想就是所有的股票都会受到大盘market走势的影响,股票相对大盘的走势也是不一样的,其beta和alpha就是用相应股票的return对市场的return做regression得到的相关系数和剩下的市场不能解释的信息。
策略具体的做法是如下:
这是最简单的一个基于CAPM的配对套利: 选两个股票,这两个股票他们的beta一样但是alpha差别很大,通常他们是同一个industry sector的所以有着相似的beta。所以可以long相对较大alpha的股票,然后short相对较小alpha的股票,比如long整个行业最top的龙头企业,然后short这个行业最bottom的企业,这样整个portfolio就把相对于市场波动的beta exposure给去除掉了,甚至把行业这个factor的exposure也给对冲掉了(如果结合Fama多因子模型去理解),只剩下了这两只股票之间的alpha差别的套利,其实也就是Long&Short strategy。实际的Long&Short包含了所有的股票,应该会更复杂去控制所有Barra因子的exposure,比如全球市场因子,地域市场因子,国家市场因子,行业因子等等从上至下。
这里还是以简单的两只股票为例,我们需要算两个东西,一个是两只股票beta的差的均值和标准差,另一个是两只股票alpha的差的均值和标准差,就像前面pairs trading里面做的一样。但这里有一些不一样,这里要求两只股票他们的beta之差的均值是在一个标准差之内,也就是要使这两只股票的beta大小一致最好完全一样;然后还要求这两只股票的alpha差别足够大,也就是他们的alpha之差的均值至少是在两个标准差以外,因为这个差别是L&S策略的收益来源,所以肯定希望越大越显著越好。这里还是像之前说的一样,不一定是采取两个标准差,需要根据alpha之差的不同分布形状来确定“显著性”的threshold。
这里读者可能绝感觉市场中性套利和之前介绍的配对交易这两个策略听起来有点像,但其实有些不同。
我感觉市场中性交易比较像有solid金融学fundamental理论的配对交易,比如里面用到了alpha和beta的概念,也引入了hedge对冲的思想,所以市场中性策略给我的感觉是更加systematic,可能会涉及不同类型的资产和更复杂的对冲策略。市场中性套利旨在通过对冲市场整体风险来赚取资产间的价差。它的核心在于同时持有多头和空头头寸,以消除市场的系统性风险,更加注重在消除市场因子的exposure的大前提下进行套利。而配对交易则是市场中性套利的一种原始形式,只用专注于选择两只在历史价格关系上表现出高度相关性的股票,当这两只股票的价格出现暂时偏离时,你就会买入被低估的股票,卖出被高估的股票,做价差的mean reversion,这个其实就和市场还有因子就没有太大关系了,只专注于股票价格之间的关系,其实有点像data mining出来的anomaly。
不过,虽然市场中性套利把市场的涨跌影响给去掉了,但也不是没有风险的。首先,你需要有足够的统计和数据分析能力,来判断哪些资产对会出现暂时的偏离。其次,市场中也有很多不可预测的因素,比如突发新闻、政策变化等,这些都会影响资产的价格走势。
总结一下,市场中性套利是一种通过对冲市场整体风险,专注于资产间价格差异的策略。它的核心在于找到那些历史上表现出强相关性的资产对,在它们价格偏离时进行买卖操作,以赚取差价。
2.1.1.4 大股票到小股票的信息溢出
最后一个是大股票到小股票的信息溢出。这种策略的核心是利用市场中大公司的信息对小公司的影响。比如说,当一家大公司发布了重要的财务报告,这个信息可能会影响到同一行业中小公司的股价。聪明的交易员会在第一时间捕捉到这种信息溢出,进行套利交易。小股票的反应速度通常比大股票要慢。举个例子,当有重大新闻发布时,大型股票因为交易活跃,能够快速吸收和反映这些信息。而小型股票则因为交易量小,信息吸收和价格调整会相对滞后。
这种现象的解释是,大股票的交易者通常更专业,反应更快,所以大股票的价格会先调整,随后小股票的价格才会跟上。还有一个解释小盘股反应延迟的原因,是它们对于机构投资者相对不具吸引力,而机构投资者是将信息反映到市场价格的主要来源。我觉得这个说法还挺有insight。由于规模问题,小盘股对机构投资者不具吸引力。一个中期职业的机构经理的典型投资组合规模大约是2亿美元;如果一个组合经理决定投资小盘股,即使是一个分散良好的机构投资组合,也会显著影响任何小盘股的市场价格。此外,拥有5%或更多的某一美国股票必须向证券交易委员会(SEC)报告,这进一步复杂了机构投资小盘股的操作。结果,小盘股主要由小投资者交易,其中许多人使用日常数据和传统的“低技术”技术分析来做出交易决策,所以对于信息吸收和价格调整会相对滞后于大股票。不论是哪种原因,这就意味着,如果你能预测到这种信息溢出效应,你就可以在大股票变动后,抓住机会在小股票上进行交易,从而获利。
在实际操作中,你可以通过观察大股票的价格走势和新闻事件,来预测小股票的未来走势。例如,如果某个行业的龙头公司发布了好消息,那么这个行业的小公司股价可能也会跟着上涨。反之亦然,如果大公司股价下跌,小公司的股价可能也会受影响。总的来说,这种策略利用了大股票和小股票之间的信息传导差异。通过密切关注大股票的变动,你可以提前布局,利用小股票的滞后反应来赚取利润。小盘股的市场特点使得这些股票流动性差且高度低效,从而能够带来盈利的交易机会。Llorente,Michaely,Saar和Wang(2002)进一步研究了交易量的资讯内容,发现小公司的股票和买卖差价较大的股票在高成交量时期后会表现出动量效应。然而,大公司的股票和买卖差价较小的股票在高成交量时期后则没有动量效应,有时甚至会出现逆转。因此,盈利的交易策略包括基于大盘股滞后回报和小盘股交易量的相关性或协整关系来交易小盘股。
2.1.2 外汇
2.1.2.1 Triangular Arbitrage(三角套利)
Triangular Arbitrage(三角套利)是怎么回事呢?其实它是一种利用三个不同货币之间的暂时价格偏差来获利的策略。简单来说,就是通过一系列买卖操作,在发现汇率不一致时赚取差价。
举个例子来说吧,假设我们有欧元、加元和美元。通常情况下,这三种货币之间的汇率应该是相互一致的,也就是说通过一系列兑换后,最终你应该不会亏钱或者赚钱。但是,有时候市场上会出现暂时的价格偏差,这就给了我们套利的机会。
比如说,你发现EUR/USD、USD/CAD和EUR/CAD这三个汇率之间出现了不一致。你可以先用欧元兑换美元,然后用美元兑换加元,最后再用加元兑换回欧元。如果在这个过程中,你最终得到的欧元比你最初投入的多,那你就成功套利了。
书中还提到了一个具体的例子,详细说明了如何利用这种策略在EUR/CAD之间进行套利。这个例子是基于Dacorogna等人在2001年描述的一个三角套利案例。
简单总结一下,三角套利的核心就是发现并利用三个货币之间的暂时价格偏差,通过一系列买卖操作来获利。这种策略要求对市场的价格变化非常敏感,并且需要快速反应来抓住机会。
2.1.2.1 Uncovered Interest Parity Arbitrage(无套息套利)
简单来说,“无套息套利”策略是基于两个国家之间的利率差异来进行套利。具体操作是这样的:你借入一种低利率的货币,然后将其兑换成另一种高利率的货币,并将高利率货币进行投资,其实也就是macro trading里面最常见的carry trade策略(疫情之前最主要是通过借日元欧元买美元来套利,因为日本和欧洲都是负利率)。这听起来是不是有点复杂?别担心,我们一步一步来解释。
假设你在美国,美元的利率比较低,而澳大利亚的利率相对较高。那么,你可以借入美元,然后把这些美元兑换成澳元,再用这些澳元去购买澳大利亚的债券或者进行其他投资。由于澳大利亚的利率较高,你可以获得较高的回报。当投资结束后,你再把澳元兑换回美元,偿还最初的贷款,并且还能有一个不错的利润。
不过,这里有一个关键点需要注意,就是汇率风险。因为在你投资期间,汇率可能会发生变化,影响你的最终收益。如果在投资结束时,澳元对美元的汇率下跌,那么你兑换回来的美元就会少于预期,甚至可能导致亏损。这就是为什么这种策略被称为“无套息套利”,因为它没有对冲汇率风险。
书中提到了一些经典的模型和研究,比如Chaboud和Wright在2005年的研究,他们发现“无套息套利”在短期内是有效的,但长期来看效果不佳。这就是说,这种套利策略可能在短期内获得不错的收益,但如果长期持有,汇率波动的风险可能会抵消利率差异带来的收益。
总的来说,“无套息套利”是一种利用利率差异来进行短期套利的策略,但需要注意汇率风险。
2.1.3 指数和ETFs
什么是“指数”和“ETF”呢?指数是一个衡量某一特定市场或市场一部分表现的指标,比如你可能听说过的标普500指数,它反映了500家大型美国公司的整体表现。而ETF(交易所交易基金)则是一种跟踪特定指数的基金,它们在交易所上市,可以像股票一样买卖。因此,ETF基本上是让你可以轻松投资整个市场或者特定的市场部分。
这本书里讨论了如何利用指数和ETF进行统计套利,现实中其实也叫做index arb策略。简单来说,统计套利就是利用价格的暂时性偏离来赚取利润。对于指数和ETF,这种偏离通常是短暂的,而且会很快回归到正常水平。
举个例子,假设某个ETF的价格暂时低于它所跟踪的指数的实际价值。你可以通过买入这个低估的ETF,并同时做空与这个指数相关的其他资产来进行套利。等到价格回归正常之后,你就可以平仓,从中获利。这种策略的关键在于找到那些价格暂时偏离的机会,并且快速反应。
Index arb可以存在的一个原因是index ETF的构建者其实相对index本身肯定会有tracking error,有时候还会由于各种原因导致error很大;还有的原因就是可以用不同的品种去套利,比如index期货,index portfolio还有index ETF之间有dividends的差别,这样就会出现index不同产品见的定价discrepancy。
除了index和股票之间的套利,书里还介绍了index和index之间的套利:
比如上图说的就是EAFE index和其相应constituents region的index,如果他们之间的差别alpha特别大的时候,可以通过short一揽子indices和long EAFE index或者反过来来赚取alpha。
总的来说,指数和ETF提供了一个很好的平台来进行统计套利,因为它们的价格通常是透明的,交易成本也比较低(borrowing rate也会比股票低一些)。而且,由于它们反映的是整个市场或者市场的一部分,所以价格偏离通常会比较快地修正回来。
2.1.4 跨品种(Cross asset)
2.1.4.1 Basis Trading(基差交易)
基差交易就是利用现货市场和期货市场之间的价格差异来进行套利。现货市场是指你可以立即买卖资产的市场,而期货市场是指你同意在未来某个时间以预定价格买卖资产的市场。
在这本书中,提到基差交易是跨资产套利的一种常见策略。比如说,你可能会在现货市场上发现某个资产的价格低于其在期货市场上的价格。这个时候,你就可以买入现货,同时卖出期货,期待在未来价格趋于一致的时候获利。特别需要注意的是,这里所说的价格趋于一致并不是说他们之间的价格差一定会变成0,因为这里期货是未来的价格,隐含了折现利率等因素,而现货是当下的价格:
所以这里的基差交易并不是bet他们之间价差最终会converge到0,而是有点类似pair trading是bet他们之间的价差会恢复原样,比如恢复成mean或者median值。同样也类似pair trading的步骤,先确定他们之间差值的distribution,比如均值和标准差,然后再monitor他们之间价差的变化,一旦超过了某些统计上的threshold就可以相应进行操作,期望他们anomaly差值会mean reversion到正常值。
比如Lyons(2001)论文里写了一种基差交易策略的表现,这个策略涉及六种货币对:DEM/USD、USD/JPY、GBP/USD、USD/CHF、FRF/USD和USD/CAD。这个策略的赌注是即期价格和期货价格之间的差异会回归到其平均值或中位数值。具体操作如下:每当期货价格超过即期价格一定预设水平或更多时,就卖出外币期货;每当期货价格低于即期价格至少一个预设差值时,就买入外币期货。Lyons(2001)报告说,当预设的策略trigger threshold计算为中位基差值时,这个策略可以获得0.4到0.5的夏普比率。
2.1.4.2 期货/ETF套利
这里期货/ETF的套利指的是期货和ETF之间信息传导速度不同的套利)当然我觉得其实可以做pair trading)。在宏观经济新闻发布后,期货市场被证明比现货市场调整得更快。比如,Kawaller、Koch和Koch(1993)展示了在格兰杰因果关系的设定下,S&P 500期货价格对新闻的反应比S&P 500指数本身的价格更快。Stoll和Whaley(1990)记录了类似的效果:对于以5分钟间隔衡量的回报,S&P 500和货币市场指数期货都比股市回报领先5到10分钟。
期货市场相对于股票市场更快的调整,很可能是由于期货和股票市场的历史发展。芝加哥商品交易所,北美期货合约的中央清算所,在1990年代初推出了一个完全功能的电子交易平台;而大多数股票交易所直到2005年仍依赖于包含人工交易者和机器的混合清算机制。因此,更快的信息套利策略在期货市场上得到了完善,而系统化的股票策略到今天仍然不够发达。在这本书写成的时候,期货和现货市场之间的领先-滞后效应已经从Stoll和Whaley(1990)记录的5到10分钟缩减到1到2秒的优势。然而,对于那些拥有低交易成本的强大高频交易系统来说,仍然存在获利的机会。
2.1.4.3 不同金融工具/资产类别的协整
首先,什么是协整呢?协整是一种统计关系,描述了两个或多个金融工具的价格如何按照某种特定的模式联动。简单来说,就是这些工具的价格虽然各自波动,但它们之间有一种长期稳定的关系。这种关系是基于历史数据参数化的。其实有点类似把CAPM理论用到不同的asset class上面,而不仅仅是个股对于大盘的regression。例如,你可以研究债券和利率期货之间的关系,发现它们的价格有很强的依存性,通常是同时上涨或下跌。如果这种价格关系在某个时刻偏离了历史上稳定的模式,那就可能存在套利机会,算是一种pair trading。
具体来说,协整模型可以帮助你识别什么时候两个资产价格之间的差距超出了合理范围。假设你发现债券和利率期货的价格偏离了它们长期的平衡关系,这时你可以卖出价格较高的资产,买入价格较低的资产。当价格回归平衡时,你就可以平仓获利。此外,使用协整模型进行套利的关键在于误差项的平稳性。也就是说,你的模型需要确保两个资产价格之间的差距是随机波动的,而不是持续扩大 。这也意味着你需要不断监测和调整模型,以确保其有效性。协整模型不仅限于债券和利率期货,还可以扩展到其他资产类别,比如股票和衍生品、不同市场的同类资产等。通过这种方式,你可以在更广泛的市场中寻找套利机会。
然后为了增强这个模型,还可以像如下图所示加入lag的信息在regression里面:
文章里面描述的kth lag有点像time series的ACF/PACF检测,看看哪些lag是显著的,加入了lag信息之后就可以帮助预测的更准甚至提前发现套利的机会。
2.2 Market Making做市(Liquidity trading)
Market making做市,也称为流动性交易,感觉股票市场上大于90%的流动性都是market making提供的。其赚钱的核心就是两边同时挂单然后赚取spread(当然,还有交易所的rebate)。
一个很简单的例子就是market maker同时挂limit order在best bid和best ask上,那么如果这两个limit order都被fill了,这样bid买的股票就通过更高的ask价格卖了出去,这样就赚了bid&ask之间的spread价格。
这个策略听起来挺简单而且稳赚不赔,但是事实并不是这样。market maker最怕的就是单边行情的市场(与之相对,market maker最喜欢来回的震荡市场)。比如说我挂单了bid和ask,如果现在的市场是一个单边的下跌市场,那么我的bid就会一直被fill但是ask却无人问津,这样一来我就是一直在用bid的挂单去不断买股票,而因为ask的挂单一直没有被fill所以一直不能以更高的价格卖出去,然后我手上的股票就会越买越多,同时也越亏越多,因为股票价格越来越低,之前买进来的股票就会是不断亏损的状态,然后直到自己被margin call而爆仓。
有些人可能会说,那在单边市场不market making不就行了?一个原因是market maker其实是承担了交易所提供流动性的责任,所以即使很不想报价但依然还是得去做这件事,最多就是把spread拉的足够宽给自己留下足够大的亏损buffer。当然更主要的原因还是没有人能预测这个单边趋势,作为market maker你也不知道这个单边趋势和亏损是会一直持续,还是仅仅是随机的波动,所以你也很难在一开始就判断什么时候该market making什么时候不该。如果真有能力能提前知道趋势的话那可能也不用做market making了,直接all in赌单边趋势就好了哈哈。
所以从这个例子可以看到,market making在市场里会面临两种risk,一种risk是adverse selection,另一种risk是inventory risk。
Adverse selection是指交易对手方比你掌握更多关键信息的情形。当market maker遇到有非常强的alpha的对手方,就很容易被对方的信息优势给run over,比如对方对市场趋势判断非常准确,又或者对股票的基本面和fair value非常了解,这样对方就掌握了未来股票的趋势,然后market maker作为其对手方就会不断亏钱。根据Per Copeland and Galai(1983)指出,limit order天生就是处于信息劣势,因为limit order永远是market order的对手方,只能被更有information优势的market order来pick up。
Inventory risk是指market maker自己在单边市场里面会不断积累不利的仓位,并且发现不利仓位已经过多而想要及时止损的时候,很多其他的market maker竞争对手都会做同样的事情,这样就导致自己在liquidate这些不利仓位的时候会遇到大量挤兑,清仓用limit order没法被fill,然后用market order的话又会造成巨大的market impact cost的尴尬局面。所以market maker的inventory少了不好因为没有足够的仓位来做两边不断的挂单,多了也不好因为会面临巨大的inventory risk,需要折中取一个optimal的点。做市商就像是一个商店老板,他需要确保货架上有足够的商品(也就是库存)来满足客户的需求,但又不能让库存过多,以免承担太大的风险。
2.2.1 Naïve Market Making策略
根据market making时候决定两边挂单价格offset的不同方式,可以分为以下四种:
Fixed Offset
Fixed Offset(固定偏移)策略是最简单的做市策略之一。它的核心思想是不断在市场价格的两边放置限价单,并且这些限价单与当前市场价格相隔固定的价格“跳动”(ticks)。
那么,怎么操作呢?想象一下你是一个做市商,你会在市场价格的上下方分别挂出买入单和卖出单。比如,如果当前市场价格是100元,你可能会在98元挂一个买单,在102元挂一个卖单。这样,当市场价格波动时,你的订单就有可能被执行,从而赚取买卖价差的利润。
这个策略的一个关键点是,限价单的fill概率与它们离当前市场价格的距离密切相关。放在当前market price附近的限价单更有可能被执行;而那些离市场价格较远的限价单,执行的概率就会非常低了,同时执行的时间会非常长引入了更多risk。所以需要找到一个合适的偏移量,既能增加订单的执行效率,又能确保赚取足够的价差来cover所有的成本和风险。
总的来说,Fixed Offset策略虽然简单,但却非常实用。它通过在市场价格两边放置固定偏移量的限价单,帮助做市商稳定地赚取买卖价差,同时管理库存风险。对于初学者来说,这是一个很好的入门策略。
Volatility-Dependent Offset
Volatility-Dependent Offset(波动率依赖偏移)策略是一种更为智能的做市策略,旨在根据市场波动率的变化来调整限价单的位置。简单来说,就是在市场波动率高的时候,把限价单放得远一点;在市场波动率低的时候,把限价单放得近一点。
具体来说,当市场波动很大时,价格上下波动的范围也会更大。在这种情况下,放置离市场价格较远的限价单也有更高的概率被执行,而且这样可以赚取更高的买卖价差(也就是bid-ask spread)。相反,当市场波动较小时,价格变化不大,限价单需要放得更接近当前市场价格才能被执行。
这策略的一个例子可以用下面的公式来表示:
这个公式的意思是,限价单的偏移量是过去一段时间内价格变化的一个函数。通过这种方式,做市商可以动态地调整限价单的位置,适应不同的市场波动情况。熟悉统计的朋友可能可以看出来这其实就是一种过去一定window长度时间的volatility大小(我觉得其实也可以用各种形式的volatility measure方式)。
这个方法的好处在于,它能更好地匹配市场的实际情况。高波动率时,做市商可以利用更大的价差来增加利润;低波动率时,做市商可以通过更高的订单执行率来保持稳定的交易量。
总的来说,Volatility-Dependent Offset策略让做市商能够更灵活地应对市场变化,通过动态调整限价单的位置来优化交易决策。
Order Arrival Rate-Dependent Offset
Order Arrival Rate-Dependent Offset策略的核心思想是根据市场订单的到达频率来调整限价单的偏移量。简单来说,就是根据市场上订单的多少和到达速度来决定限价单离市场价格有多远。
那么,为什么订单到达率这么重要呢?想象一下,每个市场订单就像一个随机出现的顾客。如果顾客很多(也就是订单到达率高),你的限价单就有更大概率被执行。在这种情况下,你可以把限价单放得远一点,这样即使偏离市场价格较远,也有较高的执行概率,同时还能赚取更高的买卖价差(bid-ask spread)。相反,如果顾客比较少(订单到达率低),你就需要把限价单放得更近一些,确保它们能更容易被执行。毕竟,在这种情况下,你需要靠更高的订单执行率来保持交易量和盈利。
这种方法的好处在于,它能更灵活地适应市场动态。订单到达频率高的时候,可以通过更大的价差增加利润;订单到达频率低的时候,可以通过更高的订单执行率保持稳定的交易量。
这个公示其实就像之前提到的Poisson distribution,假设每个market order是arrive independently的,这里的lambda和mu是可以用level1和tick的数据calibrate出来。
Trend-Dependent Offset
Trend-Dependent Offset策略是一种改进的做市策略,它会根据市场是处于趋势状态还是均值回归状态来调整限价单的位置。简单来说,就是在不同的市场趋势下,动态地改变你挂单的位置。
首先,来看看什么是均值回归市场。在这种市场中,价格会在一个范围内来回波动,像个弹簧一样总是回到中间值。这种情况下,价格波动不大,做市商挂出的限价单被执行的概率较高,而且风险较低,因为价格总会回到某个范围内。而在趋势市场中,价格会持续朝一个方向移动,比如一直上涨或一直下跌。这种情况下,价格波动较大,且不容易预测回到某个固定范围。因此,做市商在这种市场条件下需要更谨慎地调整限价单的位置,可能需要设置更大的偏移量,以避免被快速移动的市场价格吞噬。
具体操作上,这个策略会根据市场的历史数据来判断当前市场是趋势市场还是均值回归市场,然后相应地调整限价单的偏移量。在均值回归市场中,限价单可以放得更近一些,因为价格波动小且风险低;而在趋势市场中,限价单需要放得更远一些,以规避市场的剧烈波动。
这个策略听起来很容易,但其实要做到这一点很难,因为需要提前预测市场的趋势,至少需要预测市场趋势的regime(当然也有挺多学术paper是讲这个,最简单的就是技术分析的各种指标了都是用来判断市场trending的)。但我感觉这个策略有点悖论,因为如果真的可以准确预测市场的涨跌趋势,那直接prop trading就行了,也不需要做market making赚几个bps的spread了…
总而言之,其实这四种挂单方式,本质上都是在盈利(spread gain)和cost(执行的概率,或者执行的时间etc)之间做一个平衡或者优化,只不过是根据各自市场情况的factor来做优化。
其实不仅仅每次只用一个factor来做优化,还可以把multiple的factors全放在一起优化,比如利用现在最火的machine learning或者deep learning的models,这样也许可以看到更多新的东西和interactions。market making很多时候都是在和liquidity打交道,下面还有书里给出的很多市场liquidity的factor可以当做参考,更多细节可以在书或者paper里找到:
The tightness of the bid-ask spread.
Market depth at best bid and best ask.
Shape of the order book(Level2 data).
Price sensitivity to block transactions.
Price sensitivity to order-flow imbalance.
Price change per unit volume.
Technical support and resistance levels.
Market resilience.
2.2.2 改进版Market Making策略(with 市场预测)
在上一章的基础上,这一章利用各种Level1和Level2的数据,加入了市场交易行为的patterns和短期的预测模型,进一步探讨更复杂的market making模型。这一章可能是所有人最感兴趣的一章,因为高频交易的核心还是和limit order book打交道,所以在limit order book上面做research得到对自己有用的信息就至关重要了。
所有的trade和order都会传递信息。仅仅是一个交易者用自己的钱下注市场的某个方向,就会让其他市场参与者知道这个交易者的想法。
一个交易所包含的信息,比新闻分析师的意见要强得多。分析师通常按工资拿报酬,不管他们的预言是否成真。而交易者通常按他们交易所赚取的利润提成,每笔交易都直接影响到他们的福利。因此,交易被视为对市场走势的强有力信号。订单越大,交易信号就越可信。
无论是aggressive order(market order)还是passive order(limit order),都是可信的信号——market order是承诺以当前市场最优价格立即买入或卖出证券,而limit order则是在对方市场交易可用时,以预定义的价格买入或卖出。因此,market order和limit order都会对市场产生影响。不过,与market order不同的是,limit order可以被取消。因此,limit order的信号不如market order那么可信,而且market order和limit order的强度甚至方向可能会有所不同。order作为可信信号的想法最早在1971年被提出。这个关于市场信号的观点在当时如此具有革命性,以至于研究的作者敢于以假名 Bagehot 发布理论,这个名字来源于一位著名的十九世纪英国经济学记者。
此外,大部分信息是逐渐融入价格中的,这一点最早由Kyle(1985)指出,而不是像经典金融学研究希望的那样瞬间就price in。每笔交易都是买单和卖单相遇的结果。通常情况下,一笔交易是一个市价单遇到一个相对的限价单的结果,但两个方向相反的限价单也可能匹配形成一笔交易。交易是供需对立力量的产物,理论上来说,每笔交易对市场的影响不大。然而,在短期的现实中,情况恰恰相反:
Market buy orders通常会导致交易证券价格上涨,而market sell orders通常会导致价格下跌。
Limit buy orders和limit sell orders也会在预期未来交易时产生市场冲击(参见Harris,1997;Parlour和Seppi,2007;Boulatov和George,2008;以及Rosu,2010)。因此,限价单之后也会跟随持续的价格变化(参见Eisler,Bouchaud,和Kockelkoren,2009;以及Hautsch和Huang,2011)。虽然完成的交易是不可逆且最可信的信号,但限价单是可以cancel的交易意向,因此它们的影响力度比市价单小。Hautsch和Huang(2011)以及Aldridge(2012c)估算,limit order的市场冲击大约是类似market order的25%。Limit order后的价格变化方向可能与market order相反,这取决于limit order价格离market price有多远。对这里书里说到的结论我其实不敢苟同,因为我觉得已经完成的交易的影响是已经price in到价格里了,也并不能tradable(除非你是想trade reversion),而没有完成的交易才是我们最需要研究的信息。
首先我们来看看Level 1数据几种不同的quotes patterns的情景,来研究market maker的特定行为:
Case 1:Market does not move
在上图case 1中,交易按以下顺序发生:第一个交易在最佳买入价成交,然后在最佳卖出价成交,最后又在最佳买入价成交。最佳买入价和最佳卖出价都没有变化。
这种情景包含了什么信息呢?答案是没有信息。没有发生任何有趣或异常的事情。第一个arrival并导致交易的订单是一个市场卖单——交易按市场卖单的方式在买入价成交。市场卖单的规模小于当时最佳买入价的规模——交易后,最佳买入价没有变化。从更广泛的市场角度来看,这个订单没有携带任何信息:最佳买入价和最佳卖出价仍保持在原来的水平。在第一个卖单之后,图中显示很快又执行了两个订单:一个市场买单和一个市场卖单。买单被识别出来是因为它在最佳卖出价成交——市场买单会与限价订单簿的卖出方匹配。下一个交易在最佳买入价成交,因此必须是一个卖单。再次,图中显示在这两个订单之后价格没有变化,这意味着:
两个订单的规模相比最佳买入价和最佳卖出价的总规模都很小
并且这些订单没有被认为具有任何特殊的信息优势
这里我其实并不是很同意,因为这三个trade其实还是会造成一些quote sizes的变化,也会一定程度上包含一些信息,还是取决于怎么去extract这些信息。
Case 2:Market moves and rebounds
上图case 2展示了一个不同的情景:一个交易在买入价成交。成交后,报价下跌,但随着时间的推移逐渐恢复。
图中的交易发生在买入价,所以是由市场卖单触发的。随后的报价下跌并逐渐恢复,表明:
交易规模相对于最佳买入价的available size较大;市场卖单必须“扫掉”订单簿才能完全fill掉。
尽管交易规模很大,但并没有影响驱动价格的基本面——报价慢慢恢复到原来的水平;交易并没有携带任何信息(回到原来的价格其实也是一种信息,说明暂时的市场定价还是fair的,或者有买家在support这个level)。
在图中,最佳卖出报价在卖单后也下跌了。这可能是由于做市商的活动,他们试图出售通过卖单刚刚获得的库存。通过降低最佳卖出报价,做市商可以迅速卖出新购入的库存,实现快速盈利。
Case 3:A trade moves markets
上图case 3中的交易也是在买入价成交的。但与上面case 2不同的是,图中的交易大幅度降低了买入价和卖出价的报价,且没有立即恢复。
图中市场活动的最可能解释是信息。这次交易在买入价成交,因此是一个卖单。然而,市场将这个卖单解读为包含足够信息,足以导致价格的永久性下降。与case 2不同,这次交易后的报价没有恢复到原来的水平,而是停留在新的低点。这个新的持久价格水平最有可能是因为卖单携带了基本面信息。
做市商可能会通过几种方式确定这个卖单包含信息。通常,发出卖单的交易者的经纪商可能会观察到,这个交易者具有出色的研究技能,并且经常在其他交易者之前下达有利可图的订单。在这种情况下,交易者的经纪商可能是第一个在交易执行后调整报价的人,以保护自己免受与亏损对手方进一步交易的风险。这种活动是完全合法的,通常被称为prehedging。另外,经纪商和其他市场参与者也可能通过本章后面描述的信息提取模型来确定informed交易者存在的概率。
Case 4:The quotes widen
上图case 4展示了另一种情景:交易后spread价差变宽。图中描绘的情况通常是市场不确定性增加的结果。例如,在重大新闻发布前的时间段,这种新闻一旦发布,可能会显著影响市场。做市商的自然反应是避免被信息更灵通的交易者击败,并撤回最接近市场价格的订单,这种做法称为quoting wide扩大报价范围。
从上面的例子我们可以看到,Case 1到4展示了做市商在不同情况下的可预测行为。做市商在特定市场事件后的行为,可以从公开报价数据中观察到,这有助于自动交易系统提取对其他做市商可用的信息。我们可以看到order flow的变化可以包含很多有用的信息,最重要的是提取它们并且为我所用。下面我们详细介绍一下书里提到的三种利用trades, quotes还有整个order book来做modeling提取有用信息的方式。
2.2.2.1 Order flow autocorrelation
Order flow autocorrelation(订单流自相关)是一个时间序列的概念,它主要关注订单流之间的相互关系,尤其是时间上的依赖性。简单来说,就是看看市场上的买单和卖单是否有某种规律可循,比如一个买单之后,接下来是不是更可能出现另一个买单。
自相关性是什么呢?简单来说,就是看看当前的交易方向是否会影响未来的交易方向。如果发现市场上连续出现多个买单,那我们就可以说这些买单具有正自相关性;反之,如果一个买单后紧跟着一个卖单,那就是负自相关性。
那么,这对做市商有什么帮助呢?通过分析订单流的自相关性,做市商可以更好地预测市场的下一步走势。这意味着,如果市场是正自相关的,并且观察到市场上连续出现多个买单,他们就可以预期价格可能会上涨,从而调整自己的买卖策略以获取利润。
具体的modeling里,这里order flow订单流的定义是依据trade的信息,如下:
我们可以看到order flow被定义成market buy的volume和market sell的volume之间的差值,其实order flow也可以用其他不同的形式来定义,主要的核心就是在不同的dimension上研究其behavior patterns,提取trades的方向和size所携带的信息。
根据学术研究,order flow订单流至少直接解释市场价格中50%以上的信息。发布新闻时,订单流会变得非常有方向性。比如,Love和Payne(2008)估计,在欧元区和美国发布重大新闻后,围绕EUR/USD汇率的订单流会紧密跟随公告的方向。因此,被预期会提升美元的“好”美国新闻,主要由“买美元”或“卖欧元”的订单主导。其他关于各种证券的类似研究结果包括Lyons(1995), Perraudin和Vitale(1996), Evans和Lyons(2002a),以及Jones,Kaul和Lipson(1994)。
根据Lyons(2001)的说法,订单流之所以带有信息,有以下三个原因:
1、订单流可以看作是市场参与者不惜将自己的决策最直接的暴露在市场中,因为market order是不可撤销的,所以携带了最强有力的信息。limit order也可以被执行并且成本高昂,因此也带有信息。因此,订单流反映了市场参与者对市场未来走向的真实信念。
2、订单流数据是分散的,分布有限。经纪商可以直接观察到他们客户的订单流以及经纪商之间的网络。终端投资者几乎不会看到任何直接的订单流,但可以从市场数据中部分推断出订单流信息,如本节所述。交易所拥有他们从经纪商和其他市场参与者那里收到的订单流数据。然而,由于经纪商越来越多地寻求内部匹配订单,这个过程称为订单流的internalization,交易所可能会错过大量投资者订单。内部化目前被视为控制经纪成本的必要功能,通过尽可能避免交易所。因为订单流并非对所有人开放,那些拥有完整订单流信息或成功建模的人处于非常有优势的位置,可以在信息被纳入市场价格之前加以利用。这里其实也解释了为什么卖方投行的sales trading desk为什么非常有市场信息的edge(俗称color,也是很多买方trader在了解市场时最需要的信息),因为可以接触到最原始的order flow,而不仅仅是交易所的。
3、订单流显示了大量且含有信息的positions,这些positions无论交易发起者是否拥有任何优于其他人的信息,都会由于market impact而暂时move market。这样,观察或modeling订单流的交易者就成了最有可能抓住围绕这些交易的市场波动中的机会。
这里订单流分成可以直接观察到的和不能直接观察到的两种情况:
1、订单流可以直接观察到
对于broker而言,客户的每一个market order其实都很清楚的知道是买还是卖,这种情况就比较简单。Lyons(1995)、Perraudin和Vitale(1996)、以及Evans和Lyons(2002b)等人的paper里指出,订单流以前是分散在市场参与者之间的,但现在可以被经纪商或交易场所集中查看。特定金融证券在任何给定时间的订单流正式定义为买方发起和卖方发起的交易兴趣之间的差异。订单流有时被称为买入或卖出压力。当交易规模可观察时,订单流可以计算为买方发起交易的累计规模和卖方发起交易的累计规模之间的差异。当交易数量不可直接观察(例如在外汇市场中常见的情况),订单流可以测量为每个特定时间间隔内买方发起交易和卖方发起交易的数量差异。
在实证研究中,基于交易规模和交易数量的订单流测量方法都被使用过。这些测量方法是可比的,因为大多数订单都是以“片段”或标准规模的包裹形式传递的,主要是为了避免不必要的关注和随着大额交易而来的价格上涨。Jones等人(1994)发现,按交易数量测量的订单流比按交易总规模测量的订单流更能预测价格和波动性(这里还挺神奇,order的count比volume更加有信息含量)。
订单流在新闻发布后到达新价格水平的重要性已经被实证验证。例如,Love和Payne(2008)研究了外汇市场中围绕宏观经济新闻公告的订单流,发现订单流包含了市场价格中至少一半的信息。
Love和Payne(2008)研究了订单流对三个货币对的影响:USD/EUR、GBP/EUR和USD/GBP。Love和Payne(2008)发现订单流对相应汇率的影响如表11.1所示。作者将订单流测量为每一分钟间隔内买方发起和卖方发起交易数量的差异。Love和Payne(2008)记录到,在欧元区新闻发布时,每一笔正的order flow会导致USD/EUR上升0.00626或0.626%。这里比较类似announcement的event driven的策略。
2、订单流不能直接观察到
但订单流往往并不对所有市场参与者都是透明的。比如,执行经纪商可以直接观察到来自客户的买卖订单,但一般来说,客户只能看到买价和卖价,可能还包括市场深度。
因此,各种模型应运而生,用于从可观察的数据中提取订单流信息。最基本的算法是测试交易标记的自相关性。比如,算法将过去一段时间T(例如30分钟)内记录的所有交易分为买单和卖单。交易的买卖tag识别可以使用前面描述的Lee-Ready Rule等等。被识别为买单的交易被assign“交易方向值”+1,而每笔卖单则记为-1。
这里从ACF的图我们可以看出来MSFT的autocorrelation其实并不是很显著,可能还需要PACF。而BEAM就可以看出来cutoff的地方在lag=4的时候,也就是说前4个trade的方向可以帮助预测下一个trade。如果对ACF和PACF不太了解的朋友可以去看看统计里面time series的部分。
书里面还给出了很多相关的research paper,Ellul、Holden、Jain和Jennings(2007)认为,高频订单流中的短期自相关性可以解释为在liquidity depletion和replenishment期间,竞争性的订单流对当前市场事件的反应波动,比如所有人在短时间内同时去追一个市场方向。Ellul等人(2007)确认了高频率下订单流的强正序列相关性,但在低频率下发现了负的订单公司相关性。其他关于订单自相关性的研究包括Hedvall、Niemeyer和Rosenqvist(1997);Ranaldo(2004);Hollifield、Miller和Sandas(2004);Foucault、Kadan和Kandel(2005);Rosu(2005);以及Biais、Hillion和Spatt(1995)。
订单流信息很容易进行有利可图的交易。大量的买单不可避免地会推高所交易证券的价格;在观察到大量买单时下买单会带来正收益。同样,大量的卖单会压低价格,而在观察到卖单流时及时下卖单也会带来正收益。这里其实就是利用订单流信息提前detect到大单,然后front run去ride这个trend。
但这里我觉得还是有点问题。如果是用来解释价格的波动,我觉得用trade是make sense的,但事实情况是trade是已经发生的事情,所以实际的信息其实已经price in到市场的价格里了,比如我看到有大单在交易,那这个时候很可能大单也已经快交易完了,所以trade其实是一个相对滞后的信息。如果用trade进行交易,那timing一定得把握好要提前一定的程度,不然搞不好自己就变成了接盘的。
2.2.2.2 Order flow aggressiveness
上面我们利用了trade的size/count来做时间序列自相关的分析,这里我们可以用trade的aggressiveness来获得一些有效信息。
Aggressiveness指的是在market price提交的订单比例(也就是market order的比例),而不是limit order。Market order的比例越高,说明交易者在捕捉best price上越aggressive和不顾一切,也越可能相信该证券的价格即将偏离当前市场价格。
Limit order比market order的执行价格更有利;然而,价格优势伴随着等待和未执行的risk。Market order则立即执行,但可能会遇到不利价格。Market order用于aggressive交易,当价格迅速变动且必须快速执行以捕捉和保持交易收益时。交易者的信息越有利、交易越aggressive,信息进入价格的速度越快。
因此,aggressive的订单可能本身就传达了即将到来的证券价格走势的信息。如果交易者立即执行订单而不是等待更有利的价格,交易者可能传达了他对市场走向的信念。Vega(2007)显示,信息更好的市场参与者交易更aggressive。因此,模仿aggressive的交易可能会形成一致的盈利交易策略。订单流的aggressiveness测量可能进一步捕捉到知情交易者的信息,并有助于产生短期利润。
Anand et al. (2005) 测量了order的不同信息对于price change的影响:
结果如下:
我们可以明显看到具有统计显著性的有order的size和aggressiveness。这个结果说明了order越大对price change的影响越大,也说明了order越aggressive对于price change的影响也越大,无论是下单之后5min还是60min,表明这个效应其实还是挺具有持续性的。这个结果也告诉我们,如果能提前detect到大size的order,或者一系列的aggressive order,那么我们就可以在60min的window内ride这个trend。
根据一些研究人员的观点,市场的aggressiveness表现出自相关性(和上面time series分析方式一致),这可以用来预测未来的市场aggressiveness。这种自相关性可能来源于以下两个方面:
1、大型机构订单被分割成较小的部分并在较长时间内以相似的market aggressiveness程度发出。
2、简单的价格动量效应(比如其他detect到aggressiveness相关性的人也会follow这个trend)。
Biais等人(1995)进行了关于检测市场aggressiveness自相关性的研究,他们将巴黎证券交易所的订单按积极性程度分开——从最不aggressive的市场订单到最aggressive的超出当前订单簿的限价订单。作者发现,订单在aggressiveness方面的分布取决于市场状态,并且订单提交具有自相关性。作者检测到一种“对角线效应”,即初始某一aggressive水平的订单会跟随其他同一aggressive水平的订单。后续的实证研究在不同的证券交易所也证实了这一发现。例如,Griffiths、Smith、Turnbull和White(2000)在多伦多证券交易所的研究;Ranaldo(2004)在瑞士证券交易所的研究;Cao、Hansch和Wang(2004)在澳大利亚证券交易所的研究;Ahn、Bae和Chan(2001)在香港证券交易所的研究;以及Handa等人(2003)在巴黎证券交易所CAC40股票的研究。这些研究说明trending这个效应,可能更加本质上是是一种order size和order aggressiveness自相关性的自我实现的结果,比如均线和技术分析之类的指标也只是order自相关的一种更表层的描述。
2.2.2.3 Shape of the order book
前面两个是提取的trade的信息,这里讨论一下用quote和limit order book (LOB)来提取信息做预测。
书里面提到Level 1的数据就可以用来预测未来股价的变动:
这里定义了一个变量叫order flow imbalance (OFI),然后e是代表了order book的top price level上流动性的变化。注意这里是一阶导的变化,而不是某一时刻static的状态。方程(5)和(6)可以这样理解:Order Flow Imbalance(订单流失衡)取决于order book上最top level的流动性的瞬时变化,而这又取决于最佳买价和最佳卖价的逐笔变化。如果最佳买价上升,订单流失衡就会增加新最佳买价的数量。如果最佳买价从一个价位下降到下一个价位,相关的订单流失衡就会减少之前价位记录的最佳买价数量。同样地,如果卖价下降,订单流失衡就会减少新最佳卖价的数量。如果卖价从上一个价位上升到当前价位,订单流失衡就会增加之前最佳卖价记录的数量。
为了确定订单流失衡的预测能力,Cont等人(2011)接下来将订单流失衡与短期价格变化进行对比,得出了一个线性关系,如下图所示:
我们可以看到regression的结果还是挺统计显著的,能达到9%的R2其实算挺高的了,这说明order book上面的信息其实还是非常有价值的。当然这里只是很简单的一个例子,其实还有很多其他的信息可以用不同的方式extract出来,也有很多paper都围绕order book做过各种研究,并且也有挺多坑,因为高频数据的特性和低频数据还是挺不一样,需要根据实际的使用情况来做一些customization和调整。而且这里还仅仅是Level 1的order book信息,如果有Level 2的multi-level数据那么可以research的东西会更加多,也会更加有意思,也欢迎大家一起交流。
有几项研究还考虑了如何利用限价订单簿的形状来预测短期价格走势。比如,Cao等人(2004)发现,当流动性高峰接近市场价格时,往往会将市场价格推离高峰。然而,当流动性高峰远离市场价格时,往往会“拉”市场价格向高峰靠近。Cohen、Maier、Schwartz和Whitcomb(1981)将这种现象称为报价的“引力作用”。下图展示了市场深度和相关流动性的样本演变。
这里我其实不是很理解为什么会产生这种引力现象,我能想到的从resistance和support(这两者都是liquidity peak)来解释,可能是market price在这两个点位待的时间最长,在阻力和支撑中间的时候因为order book的depth比较浅,所以价格很容易打上去或者下来,所以大部分时间都在高峰附近震荡,只有来的大单才有力量把价格彻底拉离peak的引力。
除了预测价格波动之外,Rosu(2005)发现,限价订单簿的形状取决于市场订单到达的概率分布。大额市场订单的高概率会导致限价订单簿呈现驼峰形状。Foucault、Moinas和Theissen(2005)则发现,限价订单簿的深度可以预测未来资产价格的波动性:深度越低,预期波动性越低。Berber和Caglio(2004)发现,限价订单在某些事件(如公司earning announcement)期间携带private的信息:远离当前市场价格的限价订单集中,可能反映了某人对公告后其金融工具的估值预期。
这里介绍的limit order book几种提取信息的方式和思路其实只是最初步的,我相信真正的高频交易应该有复杂得多的数据和研究方法,但在其失效之前可能也不会有人写出来,不过还是可以多读读学术界的paper找一找灵感。
2.3 Events driven策略
传统低频量化模型的一些假设,比如市场会立即将所有公开信息反映到价格中,但现实中情况并非如此。你可能也会注意到,当有重大新闻发布时,市场价格的调整往往不是瞬间完成的,这一章就依据此介绍不同的事件驱动策略。Events driven策略的核心就是通过及时获取和分析这些新闻,你可以在市场还未完全反应过来之前进行交易,从而获取超额收益。
我们可以先看一个书里的例子:
这里是看US通胀announcement对于外汇USD/CAD的影响。我们可以看到当bin size是5min的时候,通胀涨和跌都对USD/CAD没有显著统计的影响。但是当bin size变得越来越小,我们观察event的尺度变得越来越高频的时候,机会就开始出现了。当bin size是15s的时候,这种机会会出现的最多达到5-6次,如果更小的话可能机会会更多,所以events driven的策略其实在高频的时候还是会有挺多可以做的。
概括来说,基于事件的方向性策略指的是一类根据市场对事件的反应来进行交易的策略。这些事件可能是经济、行业,甚至是特定金融工具的事件,这些事件会一再地对相关工具产生影响。比如,美联储利率意外上调通常会推升美元价值,同时推高USD/CAD汇率并压低AUD/USD汇率。因此,美联储利率决策的公告就是一种可以持续获利的套利事件。
事件套利策略的目标是找出在每个事件发生前后时间窗口内能够获得正收益的投资组合。这个时间窗口通常从事件发生前不久开始,到事件发生后不久结束。对于事先已知的事件,比如计划中的经济公告,投资组合头寸可能会在公告前或刚公告后开立,然后在公告后不久完全平仓。
持仓时间可以从几秒钟到数小时不等,并且通常能以低波动率实现持续盈利。对事件的响应速度往往决定了交易的收益;响应越快,策略就越有可能借助事件后的价格波动获利。因此,事件套利策略非常适合高频交易,并且在全自动交易环境中执行效果最佳。
开发事件套利交易策略需要利用关于均衡定价的研究,并借助统计工具评估逐笔交易数据和事件发布的瞬间影响。现在,我们先研究一下开发事件套利策略的具体操作。
大多数事件套利策略遵循以下三个阶段:
1、对每种事件类型,在历史数据中确定过去事件的日期和时间。
2、计算与第1步中确定的事件相关的证券在所需频率下的历史价格变化。
3、基于过去事件的历史价格行为估算预期的价格反应。
过去事件的日期和时间可以从各种互联网网站收集。大多数公告都是在同一时间发布的,这使得数据收集变得更容易。例如,美国失业率公告总是在东部时间早上8:30发布。一些公告,如美国联邦公开市场委员会的利率变更公告,则在一天中的不规则时间发布,处理起来可能就会更麻烦一点。
事件套利策略利用重复性的经济活动、市场波动等新闻发布,因为重复性事件可以帮助研究人员估计历史影响并预测未来影响。不同事件对市场的影响不同,影响大小取决于实际数据与预期的差异,这种差异在经济学中被称为“surprise”。比如,股票价格会根据收益公告的高于或低于预期来调整,外汇市场的汇率也会对意外的CPI变化作出反应。市场参与者在正式数据发布前很久就形成了预期(concensus),并基于这些预期进行交易,把预期反映在价格中。估计新闻影响的关键是区分意外变化和已反映在价格中的预期。宏观经济公告中的“surprise”可以通过与经济学家预测的平均值进行比较来衡量。
实证证据表明,这种自回归框架确实可以用来预测证券的未来走势,但这种影响在短期内最为明显。Almeida, Goodhart和Payne(1998)记录了宏观经济新闻发布对美元/德国马克汇率的显著短期影响,尤其是美国就业和贸易平衡相关的新闻公告在公告后两小时内是汇率的重要预测指标。而美国非农就业和消费者信心新闻公告在公告后12小时或更长时间内引发了价格动量。
2.3.1 Events driven策略的基本步骤
预测的制定涉及对特定交易数据的事件研究,这些数据围绕感兴趣的事件公告。事件研究衡量公告对新闻事件前后回报的定量影响,通常按以下步骤进行:
a. 确定和记录announcement日期、时间及“surprise”变化。为了创建有用的模拟,事件数据库和事件前后交易的证券价格应该非常详细,事件要分类清楚,报价和交易要高频记录。“surprise”部分可以通过两种方式衡量:
作为实际值与基于自回归分析的预测值之间的差异。
作为实际值与分析师预测共识之间的差异。
b. 计算announcement前后对应时间的回报。例如,如果研究人员想评估CPI公告对USD/CAD一秒变化的影响,那么就要计算历史CPI公告日早上8:30:00到8:30:01之间USD/CAD的变化(美国CPI公告总是在东部时间早上8:30发布)。
c. 通过简单线性回归估计announcement的影响:
利用上面这个方法,我感觉实际上有两种交易方式,一种是左侧交易,一种是右侧交易。左侧交易就是自己大概有一个预期的surprise,然后提前建仓进去bet是不是这个surprise,这个其实就是对自己认为的实际值有很强的信心才能办到;右侧交易就是等surprise已经announce了然后计算市场的movement大小是不是符合这个surprise,如果不符合的话那就是套利的机会了。
2.3.2 各个资产类别的events driven策略
依据上面的方法,我们可以看看events driven在不同资产上的research work。
2.3.2.1 外汇市场
许多研究(如Almeida, Goodhart, 和 Payne (1997); Edison (1996); Andersen, Bollerslev, Diebold, 和 Vega (2003); Love 和 Payne (2008))都探讨了外汇市场对宏观经济公告的反应。Edison (1996) 发现,外汇市场对实际经济活动新闻(如非农就业数据)的反应最显著。他指出,每当非农就业人数意外增加10万,美元平均升值0.2%。同时,他还发现通胀对外汇汇率的影响不大。
Andersen等人(2003)使用基于时间戳插值的外汇报价,创建了精确的五分钟间隔进行分析。他们发现,外汇汇率水平会迅速且有效地根据新信息调整。然而,波动性在多数新闻发布后的尖峰之后需要更长时间才能平息。研究还显示,不利消息通常比利好消息影响更大。他们使用国际货币市场服务(MMS)编制的共识预测值作为新闻公告的预期值来估计意外成分。他们对五分钟现货外汇汇率变化进行了建模,实际上是用lag的return和lag的surprise做regression。
他们用以上模型研究了以下货币对:GBP/USD, USD/JPY, DEM/USD, CHF/USD, 和 EUR/USD,时间范围从1992年1月3日到1998年12月30日。研究表明,所有货币对对以下变量的意外增加都以99%的显著性正面回应:非农就业人数、工业生产、耐用品订单、贸易平衡、消费者信心指数和全国采购经理人协会(NAPM)指数。所有货币对对初次失业救济申请人数和货币供应量M3的意外增加则作出负面反应。
Love 和 Payne (2008) 发现,不同国家的宏观经济新闻对不同的货币对有不同的影响。他们研究了来自美国、欧元区和英国的宏观经济新闻对EUR/USD, GBP/USD, 和 EUR/GBP汇率对的影响。结果显示,美国新闻对EUR/USD影响最大,而英国新闻对GBP/USD影响最大。他们还记录了三大区域不同类型的新闻对各自货币的具体影响。详细结果见下表,
附上书里的macro events列表:
2.3.2.2 股票
根据经典金融理论,股票价格的变化主要有两个原因:一是上市公司的预期收益变化,二是这些公司相关的折现率变化,这两者都可以当做events。
预期收益可能会受到市场环境变化的影响。比如,消费者信心和消费支出的增加可能会提升零售销售,从而提高零售公司的收益预期。而劳动力成本的上升则可能预示着艰难的商业环境,降低收益预期。理论上,股票价格是公司未来所有现金流的现值加总,按照合适的利率折现,这个利率可以由资本资产定价模型(CAPM)、罗斯的套利定价理论(1977)或投资者特定的机会成本决定。所以意外的收益变化会导致股价迅速对新的earning信息作出反应,收益与预测值的显著偏差可能引发市场大幅波动。Surprisingly的正收益通常会推高股价,而负收益则会压低公司股票的估值。在收益公告之前,会有分析师的预测。如果公告的结果与经济学家的共识预测有实质性差异,证券价格会迅速调整到新的均衡水平。公告中的surprise部分是公告值与经济学家预测均值或中值的差异,这部分是估计事件对价格影响的关键变量,这也是上面介绍的events driven策略的应用范围。
除了上面讲的上市公司的预期收益变化,公司的股价还被折现率影响。折现率至少由无风险利率和特定股票的独特风险水平决定。对于美国股票来说,无风险利率通常用美国财政部发行的三个月期国库券来表示;而对于其他国家的股票,无风险利率则是该国央行公布的短期目标利率。无风险利率越低,股票收益的折现率就越低,理论上的股票价格就越高。
宏观经济新闻在实际中是如何影响股票的?大量实证证据显示,股票价格对利率公告反应强烈,对其他宏观经济新闻的反应则稍微弱一些。不论是长期还是短期利率的下降,都能显著提高月度股票回报率,长期利率的影响有90%的统计显著性,而短期利率的影响有99%的统计显著性(参见Cutler, Poterba, 和 Summers, 1989)。论文证据表明,大多数价格调整发生在公告发布后的几秒钟或几分钟内。这里用上面预期差套利方法的机会也就来了,如果我们知道了利率变化对某只股票的影响程度,那么就可以在利率announcement之后立即做统计套利来arb市场还未能来得及反应的部分,直到这只股票完全price in了这个event。
而对于非货币的宏观经济新闻,股票的反应通常是混合的。正面的通胀冲击往往会导致股票回报下降,不受其他市场条件的影响(详情见Pearce和Roley, 1983, 1985)。其他一些宏观经济变量的反应则取决于当前的经济周期状态。McQueen和Roley(1993)指出,在经济衰退期间,高于预期的工业生产数据对股市是好消息,但在经济活跃期则是坏消息。
同样,失业统计数据的意外变化也会引起不同的反应。Orphanides(1992)发现,在经济扩张期间,失业增加时股票回报会上升;但在经济紧缩期,失业增加会导致股票回报下降。Orphanides(1992)将股票的这种不对称反应归因于经济过热假说:当经济过热时,失业增加实际上是好消息。这一发现也得到了Boyd, Hu, 和 Jagannathan(2005)的确认。这种对宏观经济新闻的不对称反应不仅限于美国市场。比如,Löflund和Nummelin(1997)发现,芬兰股市对工业生产数据意外增长的反应在经济疲软状态下会提振股票。
不同来源的信息对股票的影响频率不同。宏观经济对股票数据的影响似乎随着数据频率的增加而增加。比如,Chan、Karceski 和 Lakonishok(1998)在套利定价理论框架下分析了美国和日本股票的月度回报,发现个别股票的特性在低频率下对未来回报的预测最准确。通过使用因子模拟组合,Chan 等人展示了个股的规模、过去的回报、市净率和股息收益率是与相应股票回报最相关的因素。然而,Chan 等人记录到,“宏观经济因素在月度回报频率上对解释回报共变做得不好”。Wasserfallen(1989)发现宏观经济新闻对季度股票数据没有影响。
Flannery 和 Protopapadakis(2002)发现,美国股票的日回报显著受几种宏观经济新闻的影响。作者使用广义自回归条件异方差(GARCH)回报模型,并发现以下宏观经济公告对股票回报和波动性有显著影响:CPI、PPI、货币总量、贸易平衡、就业报告和房屋开工数据。
Ajayi 和 Mehdian(1995)记录到,发达国家的外国股市通常对美国的宏观经济新闻公告反应过度。因此,外国股市往往对美元汇率和国内账户余额敏感。比如,Sadeghi(1992)注意到,在澳大利亚市场上,股票回报随着经常账户赤字、AUD/USD 汇率和实际国内生产总值(GDP)的增加而增加;而在国内通胀或利率上升的新闻发布后,股票回报则会下降。
不同行业的公司股票对宏观经济公告的反应不同。例如,Hardouvelis(1987)指出,金融机构的股票对货币调整公告的敏感度更高。市场资本化的程度也很重要。Li 和 Hu(1998)显示,大市值股票对宏观经济意外的敏感度高于小市值股票。
宏观经济新闻的意外成分大小会影响股票价格。例如,Aggarwal 和 Schirm(1992)记录到,小的意外,即在平均值一个标准差以内的意外,比大的意外对股票和外汇市场造成更大的变化。
书里提到的equity上面这些research其实都可以当做trade idea,但怎么围绕idea去构建trade还是很需要研究的。
2.3.2.3 固定收益
Jones、Lamont 和 Lumsdaine(1998)研究了就业数据和PPI数据对美国国债的影响。作者发现,在这些数据发布的当天,债券价格的波动性显著增加,但这种波动性不会持续到公告日之后,表明这些信息已经迅速被价格吸收。
Hardouvelis(1987)和Edison(1996)指出,就业数据、PPI和CPI会影响债券价格。Krueger(1996)记录到,美国失业率下降会导致美国国债和短期国库券的收益率上升。
一些关于债券市场对宏观经济公告反应的高频研究包括Ederington和Lee(1993);Fleming和Remolona(1997、1998、1999);以及Balduzzi、Elton和Green(2001)。Ederington和Lee(1993)以及Fleming和Remolona(1998)显示,新信息在公告发布后仅两分钟内就完全反映在债券价格中。Fleming和Remolona(1999)估算了宏观经济公告对整个美国国债收益率曲线的高频影响。他们研究了10类公告的影响:CPI、耐用品订单、GDP、房屋开工、失业率、领先指标、非农就业、PPI、零售销售和贸易平衡。Fleming和Remolona(1999)将宏观经济意外定义为实际发布的数据减去汤森路透的共识预测。
Fleming和Remolona(1999)研究的所有10个宏观经济公告都在早上8:30发布。作者测量了这些新闻发布对整个收益率曲线从8:30到8:35的影响,记录到这些公告对收益率的显著平均变化。例如下表显示,失业率“意外”增加1%时,三个月期国库券的收益率平均下降0.9%,置信度为95%;两年期国债的收益率平均下降1.3%,置信度为99%。而30年期国债的收益率平均下降则没有统计显著性。
这张表实际上就是events driven统计套利方法里的beta值和其显著性,那么我们可以挑选其中最显著的instrument和其相应的events,知道了consensus那么再结合实际announce的数字,就可以测算出surprise和其对某种bond的具体影响,然后arb和市场movement之间的discrepancy。
2.3.2.4 期货,新兴市场,Commodity和REITs
Becker、Finnerty 和 Kopecky(1996),Ederington 和 Lee(1993),以及 Simpson 和 Ramchander(2004)研究了宏观经济公告对期货市场的影响。Becker、Finnerty 和 Kopecky(1996)以及 Simpson 和 Ramchander(2004)记录到,关于PPI、商品贸易、非农就业和CPI的新闻公告会影响债券期货的价格。Ederington 和 Lee(1993)发现,利率和外汇期货在新闻发布后的第一分钟内就会进行价格调整。不过,新闻引起的波动性往往会持续接下来的15分钟。
还有不少作者研究了宏观经济新闻对新兴经济体的影响。比如,Andritzky、Bannister 和 Tamirisa(2007)研究了宏观经济公告如何影响债券利差。他们发现,美国的新闻对债券利差有重大影响,而本国的公告影响不大。不过,Nikkinen、Omran、Sahlström 和 Äijö(2006)对股票市场进行了类似的分析,发现成熟的股票市场几乎会立即对美国的宏观经济公告做出反应,而新兴市场的股市则没有受到影响。Kandir(2008)估算了宏观经济对伊斯坦布尔证券交易所的影响,发现土耳其里拉/USD汇率、土耳其利率和全球市场回报对土耳其股票有显著影响,而本国的工业生产和货币供应等变量影响很小。Muradoglu、Taskin 和 Bigan(2000)发现新兴市场受全球宏观经济变量的影响,这取决于所研究的新兴市场的规模以及该市场与世界经济的融合程度。
然而,东南亚国家联盟(ASEAN)国家主要受国内变量的影响。Wongbangpo 和 Sharma(2002)发现,当地的国民生产总值(GNP)、CPI、货币供应、利率和基于美元的汇率显著影响了当地的股票市场。同时,Bailey(1990)发现美国货币供应与亚太市场的股票回报之间没有因果关系。
在商品市场的实证研究中,Gorton 和 Rouwenhorst(2006)记录到,实际经济活动和通胀都会影响商品价格。不过,新闻公告的效果有时会有些复杂;高于预期的经济活动和通胀一般会推高商品价格,但如果伴随着利率上升,就会对商品估值产生冷却作用。关于商品价格和利率之间关系的更多细节,可以参考 Bond(1984)、Chambers(1985)和 Frankel(2006)的研究。
房地产投资信托基金(REITs)是比较新颖的公开交易证券,由美国国会在1960年设立。1991年,美国所有REITs的市值约为900万美元,并在2006年稳步增长到3000亿美元。REITs像普通股票一样交易,但其结构有一些特别之处:REITs的资产中至少有75%必须投资于房地产,并且必须将至少90%的应税收入作为股息支付出去。由于它们有较高的派息比例,REITs对宏观经济新闻公告的反应可能与普通股票不同。
Simpson、Ramchander 和 Webb(2007)记录了通胀对REITs表现的影响。作者发现,当通胀意外下降或意外上升时,REITs的回报都会增加。Bredin、O'Reilly 和 Stevenson(2007)研究了REITs对美国货币政策意外变化的反应。作者发现,REITs的反应与普通股票类似——联邦基金利率的上升会增加REITs价格的波动性,同时压低REITs的价格。
三、Trading Costs
经典金融理论里面假设是没有trading cost的,但实际上会有很多各种各样的costs,并且这些costs会极大的影响高频交易策略的有效性。
trading cost分成两部分:
Transparent execution cost: 包含了比如券商手续费,交易所fee,税务等等。
Implicit execution cost: 包含了bid-ask spread (这个有时候可以很大,特别是流动性不好的instrument);timing risk cost,这个指的是如果execution的时间过长,那么就需要承受市场against自己的movement的risk;还有market impact,这个接下来会详细说。
3.1 Market Impact
Market impact指的是下单后导致的市场价格的不利变化,主要是为了回答了一个问题:“如果交易者进行这笔交易,会对价格产生多大影响?”。
比如散户一笔很小的交易可能还不太需要担心market impact,但如果像机构或者高频交易要买卖大量的股票,那么造成的market impact cost还是特别大的,这样会使得自己的买卖成本特别高,其实也就会侵蚀自己的利润空间。实际上Market impact也正迅速成为最主要的交易成本,在股票市场中,根据ITG全球交易成本报告(2010),交易成本总额平均占成交额的0.476%,其中只有0.089%的交易金额用于佣金,而占交易总金额的0.387%的交易成本都来自于market impact。这些数据在美国、欧盟、英国和日本的股票市场中是相似的;新兴市场的交易成本则更高。
在期货市场中,market impact和交易成本都较低,但market impact成本依然是主要的:根据Aldridge(2012c)的数据,在Eurex的Eurobund期货(FGBL)中,market impact占交易金额的0.020%。在期货和外汇市场中,机构交易成本通常为每交易100万美元花费5到10美元,或占执行交易金额的0.0005%到0.0010%。
我们先看看书里的下图market impact是怎么形成的:
图里展示了在实际交易中,携带信息的trade和没有携带信息的trade的对价格的逐步影响。当携带信息的trade传来时,市场价格往往会超出其基本水平,然后这个超出部分会逐渐回落或衰减到其基本水平,但由于携带的信息已经price in到了现在的价格里所以依然会高于之前的水平。而如果是不携带信息的trade,那么会逐渐回落到trade到来之前的水平。这个其实就是order对实际价格的market impact。
那么这个market impact成本怎么用模型去估计呢?这里我把书里完整的描述粘贴在这儿以供参考,大致就是用各种方式去model这种市场行为:
书里还说了一些其他的modeling方式,但我觉得有些是有问题的所以就不放在这儿了,具体每个机构怎么去model market impact都是各自的秘密,毕竟market impact也是可以用来trade alpha的,所以这里也不能写的太细哈哈。这里投行其实是很有edge的,毕竟每天会帮客户做大量的trade,也就有丰富的实际数据来做model,也能最清楚的知道市场的影响会是什么样子。书里还写了其他的一些会影响market impact的factors,并且也都给出了paper的出处,感兴趣的盆友可以研究。这一块儿对高频交易其实挺重要,因为高频交易需要在短时间内交易大量的股票,所以产生的market impact肯定不会小,又因为高频交易本身每次赚的利润其实并不大,所以一定需要确保利润可以cover住其产生的market impact,不然就没有交易的必要了。
这一节最后有一个research的结果还挺有意思,也放在这儿了:
大致意思就是有人做过trade和market impact的自相关性研究,发现trade自身方向之间是强自相关的,buy order的下一个order也是buy的几率是46.2%,如果连续两个buy order的下一个order是buy的几率是62.5%,如果连续三个buy order的下一个order是buy的几率是69.3%,如果连续四个buy order的下一个order是buy的几率可以高达72.5%。当然这是2009年的research,现在是不是依然成立就得再做做相关的research了。
3.2 Minimizing market impact—Algorithmic trading
上面介绍了market impact的形成,那么这里再介绍一下怎么去减小market impact。其实本质上market impact的产生就是因为短期内流动性不足,那么想要减小market impact自然是寻找能够增加流动性的办法,也就是algoritmic trading做的事情了。
书里介绍了两个方面去减小market impact,一个是venue的选择,另一个是algo本身。
3.2.1 Venue
这里从venue的选择开始:
我曾经以为venue还不简单,直接选价格最好的不就行了,但读了这本书之后发现好像并不是这么简单,因为size and speed matters。
Maximize Execution Speed
快速执行有助于捕捉当前的市场状况。市价单可以在流动性最强的市场中最快地执行。因此,为了最大化市价单的执行速度,投资者可以调查各种交易所的可用流动性,并将订单首先发送到流动性最强的交易所。然而,限价单在流动性最弱的条件下执行得最快。因此,限价单最好在可用限价单最少的市场执行。这里的逻辑是因为limit order需要stack在queue里,而流动性越少的地方queue越短。但我觉得也并不一定,因为流动性差的地方可能也没有什么对手方,那么即使queue很短也不一定就能fill的更快,but anyway书里的说法也可以当做参考。
下图展示了一个示例,调查多个交易所流动性并为特定order选择合适交易所的过程。
在图里的例子中,有三个交易所:交易所1有2000个shares的买方流动性;交易所2有3000个单位的流动性;交易所3只有500个单位的流动性。
为了最小化交易足迹,一个下market sell order的交易者会先去交易所2,并在那下一个不超过3000个单位的订单。下一个等于或小于交易所top level流动性的订单,确保market order不会或仅会稍微影响市场,从而不留下任何track。在耗尽交易所2的顶部流动性后,market order交易者会转向下一个最具流动性的交易所:在我们的例子中,这是交易所1,top level买方流动性为2000个单位。交易者然后会在交易所1下一个不超过2000个单位的订单,接着再去交易所3,利用那里的可用流动性进行交易。
然而,一个想要执行limit buy order的交易者会先在交易所3下一个限价单,因为那个交易所可用的limit buy order总量最少。接下来,交易者会在交易所1下一个limit buy order,该交易所是下一个可用买限价单总量最少的交易所。此时,限价单交易者可能会在交易所2下一个买限价单,因为交易所2目前是买限价单最具竞争力的交易所。
选择交易所的基本原理是:在limit order最少的地方下limit order,在limit order最多的地方下market order。这样的过程确保了订单有最高的快速执行概率。这个过程被称为最小影响算法。
Maximize Trading Size
对于在策略中投入大量资本的投资者来说,处理大交易量的能力至关重要。例如,一个大型养老金基金需要能够买卖大量证券而不产生太多额外成本,以成功重新分配养老金基金的头寸。为了最大化交易规模,大型交易者可能会在处理每个订单时结合使用market order和limit order。具体来说,一个想要执行大额买单的交易者可能会先通过连续调查市场上的可用最佳卖出量,依次用market buy order耗尽所有可用的市场top sell side的流动性,从最具流动性的市场开始,依次下与最佳卖出流动性匹配或较小的market buy order。随后,交易者可能会转向limit order,通过在所有交易所下best limit buy order来增加买方流动性,从最不具流动性的交易所开始,并在增加买方流动性的方向上轮换交易所。下图展示了这种方式:
3.2.2 Algorithms
除了选择venue外,利用algorithms也是降低execution cost很重要的一个部分,甚至应该是最重要的一个部分,本质上就是不同的方式把大的order切成小的order。
将大订单切分开来非常必要,Chan和Lakonishok(1995)的研究表明,如果一个典型的机构交易量一次性全部执行,那么它将占到每日交易量的约60%,这使得同时执行该订单既昂贵又困难,甚至不可能。于是,这些较小的“子订单”会在一定时间段内一片一片地执行。根据Gatheral、Schied和Slynko(2012)的说法,算法执行可以分为三个不同的layers,我觉得总结的还不错,如下图所示:
这里三层其实每一层都很值得研究,也都是可以优化的对象,也有很多的学术paper研究。algo其实是一个很综合的系统,任何一环表现不好都会影响整体algo的表现。
大家可能都耳熟能详的algo strategy有TWAP和VWAP,下面也把书里这两种algo strategy的介绍放在这里。
TWAP
TWAP是最简单的一个algo strategy,是通过将大订单拆分成等大小的部分,并在等间隔的时间内发送,来隐藏订单流。数学上讲,TWAP每个预定时间单位执行订单的固定部分1/T。结果得出的TWAP价格是按常规时间间隔采样价格的算术平均数。
TWAP算法如上图所示。当交易者选择使用TWAP执行一个大小为S的大订单时,交易者还需要决定要执行的子订单或切片的总数N和总执行时间T。接下来,每隔T/N秒就向市场发送一个大小为S/N的订单切片,直到处理完大小为S的整个订单。子订单的总数量N和执行时间T最好根据所交易证券的特定特征来确定。这些特征可能包括交易日内成交量的历史变化、执行开始时的市场深度,以及其他一系列变量。总体目标是选择足够小的切片,使每个子订单不会显著移动市场,同时切片又足够大或频繁,使整个大订单能在合理的时间T内完成执行。最终的TWAP订单流如下图所示,每个子订单用箭头表示。
VWAP
VWAP算法目前是最流行的执行方法之一。VWAP的原理很简单:把大订单拆分成小订单,当交易量高时,VWAP子订单较大;当交易量低时,子订单较小。高交易量通常会提供更多的匹配订单池,导致更快、更经济的执行。其实也就是在流动性多的时候多trade一点,流动性少的时候少trade一点来降低market impact,这个做法也是有理论基础的,VWAP算法理论上会converge到VWAP price,感兴趣的朋友可以去找paper来看。
除了TWAP和VWAP之外,还有其他很多algo算法和其衍生算法,详情可以看《algorithmic trading & DMA》这本书,也是我的职业入门书籍强推。
书里这一章节还有一个research也很有意思,那就是反过来利用傅里叶变换reverse-engineering来detect被切成小单的大单。之前还没想过还有这种操作,看来以后做algo的时候得非常小心了,至少得掺点randomness之类的。交易市场就像是一个黑暗森林,每个猎人本身也是别人的猎物,都在尽可能的隐藏自己的身影防止被人抓住。作者一方面教人怎么用algo的strategies,另一方面又反过来利用这一点,属于是老奸巨猾了。
因为这些TWAP,VWAP策略发送订单的规律性,它们的子订单用一些简单的工具(比如自相关)和高级工具(比如傅里叶分析)都能轻松地识别出来。
以TWAP为例,任何熟悉数字信号处理基础知识的人都能轻松看穿它的订单流,TWAP包含了等间隔发送的相同大小的订单。要在tick数据流中检测市场上的TWAP订单,你需要:
根据前面章节介绍的方法,把所有最近的市场交易tick数据标记为买入或卖出。
根据交易量,把所有买入tick分成不同的buckets;卖出tick也同样处理。
在每个bucket内,识别出在相同时间间隔发生的交易。
这个过程可以实时连续重复,从而让系统预测下一个TWAP订单的时间和大小,进而消除TWAP订单的原始目的。
VWAP看起来可能更安全,因为交易的大小不是统一的,因为VWAP交易是根据前一天的特定交易量或波动率来调整的,或者是前一周或一个月的平均值。虽然这样的调整看起来可以防止VWAP订单流被reverse-engineering,但实际上,VWAP流可能和TWAP一样透明。
要了解VWAP安全性的局限性,看看下图中显示的股票VWAP过程。将观察到的所有交易tick按照与VWAP生成过程相同的调整交易量或波动率函数进行反调整,会将VWAP转化为TWAP,从而使得订单流的识别像TWAP一样容易。
不同交易者使用的VWAP调整函数可能会因为平均交易量或波动率所用的天数,以及计算日内平均值的时间条宽度不同而有所不同。即便如此,多次使用不同的预计算调整函数重复整个订单流的反调整分析,仍然可以识别出使用特定调整函数发送的订单。
四、工作感受
从工作上来说,quant的工作和做学术还是挺像的,都是做research那一套流程:先群览paper或者书对这一领域有一定的了解,然后读多了之后就会产生了一些idea,接着就是做实验或者数据分析来验证这些idea的可行性,这些idea可以是创造某种东西也可以是改进某些东西,当然和做科研一样大部分也还是对现有的理论修修补补,如果idea可以work那么就开始用在实际的production工作里,如果发现不work那么就继续分析一下为什么,也许又会发现其他的ideas,实在不work的话那么也许一开始的research方向就错了,英雄可以从头来过。这个角度来说PhD们确实挺适合做quant,research的流程都大差不差,只是内容上面从理工科知识换成了金融知识,所以博士读抑郁了想要转行的朋友也可以考虑quant这个方向,无论科研毕业还是找工作千万不要想不开,都是人生必经的过程。
也有很多朋友问过我金融是不是比物理简单很多,我都回答并不是这样,我反而觉得金融市场更难。物理建模的是世界一成不变的运行,只要时间够长人类一定能找到那个万物定理;而金融建模的是人的运行,是一个时时刻刻在变化的东西。金融市场加入了很多人为的randomness和noise所以建模会更加困难,但同时验证也会更加快速,证明有用的东西马上就可以在实际production里用上看看效果,而学术的话从发paper到实际应用其实还是有非常长的时间(比如高能物理的应用我觉得应该得等一百年吧…)。所以金融市场变化的特别快,以前成立的东西现在不一定还成立,因为底层逻辑已经变了,不像物理定律过了千万年还是一样的,一个标点符号都不会变。
从我的人生经验来说,其实还是挺推荐毕业第一份工作在卖方投行做的(越front desk越好,因为越贴近金融市场,当然也越赚钱),因为投行平台大所以可以接触到金融市场各种各样的知识,也可以和不同desk的人打交(喝)道(酒)了解到具体每个部门都具体在做什么,还有知道他们赚的是什么钱和他们面对的constrains是什么。这可以让自己对金融市场整个生态系统有一个大概的sense,知道市场里有哪些players他们又分别是在做些什么和他们为什么这么做。理论上如果你知道市场上每个人都在做些什么和为什么做,你就知道了市场是怎么在move和为什么这么move(但金融市场实际更像布朗运动,大部分都是随机过程而不是确定性的path)。
归根结底,你要知道自己是赚的谁的钱,和为什么可以赚到钱,不然一旦市场情况变了,那么自己一旦赚不到钱了还不知道为什么,不知道自己面对的risk才是最危险的。二是在大卖方还可以锻炼一下自己和他人打交道social的能力,毕竟PhD阶段每天都见不到几个人,科研久了人很容易变木了脱离社会生活,而金融这一行其实很多信息和机会都是私下交流出来的,所以与人打交道还是很重要的一环,而且在卖方认识的朋友也会比较多,这对开阔眼界(到处浪)和未来的职业发展也挺有帮助。选择工作氛围好的公司和具体的组也很重要的,我比较幸运从一开始就加入了一个工作环境很chill的组,同事都非常supportive,从来没有什么勾引斗角之类的,这点也是比较感恩的。
当然最近几年经济不好,金融行业也首当其冲,各种裁员降薪冻结headcount,让每个人都感受到了寒意,所以现在想要进入这一行的盆友们还是需要三思,不过如果是真的对金融感兴趣的那我觉得还是可以无脑冲,至少工作起来有激情。
感觉金融行业最大的优点就是和生活息息相关,一直会有新的东西出现而不会觉得无聊。就像段子里面调侃的,虽然没赚什么钱,但乱七八糟的知识学了一大堆,其实也not bad。人生不过一场one way旅途,做人呐还是开心最重要,也希望大家读完这篇文章也学到了一些无用但可以用来吹牛逼的知识。
附录
相关推荐书籍:
1、《HIGH FREQUENCY TRADING: A Practical Guide to Algorithmic Strategies and Trading Systems》- Irene Aldridge
2、《All About HIGH-FREQUENCY TRADING》- Michael Durbin
3、《Algorithmic trading & DMA》- Barry Johnson
4、《Algorithmic Trading and Quantitative Strategies》- Maxence Hardy
5、《Algorithmic Trading》- Jeffrey M.Bacidore
6、《Machine Learning for Algorithmic Trading》- Stefan Jansen
7、《Trading & Exchanges》- Larry Harris
8、《Quantitative Trading》《Algorithmic TRADING》- Ernest P.Chan