程式交易简介
(2005-08-26 19:29:29)
下一个
ZT
第一章 程式交易简介
纽约股票交易所(NYSE)最近的报告显示,在2002年2月4日到2月8日这个交易周,每天的程式交易占成交量的比重平均为25.5%,达到3亿9千6 百60万股。程式交易(program trading)包括如下组合交易策略,买卖的股票在15只以上,总价值超过1百万。计算程式交易量是把买进的股票、卖出的股票和卖空的股票加起来。这些股票之和除以总成交量得到25.5%。其中,程式买进占总买进的比重为13%,程式卖出占总卖出的比重为12.5%。同期全球市场上,每天的程式交易平均为6亿7千7百万股,其中的约58.6%在纽约股票交易所,13.9%在美国以外的市场,27.5%在美国国内其他市场,包括Nasdaq,美洲股票交易所和区域市场。纽约股票交易所的程式交易中,成员公司代理客户执行的占程式交易量的58.1%,成员公司自营的占36%,另外5.9%是成员公司便利客户的,它们建立程式交易头寸以便于客户提出程式指令。成员公司执行的程式交易量中有9.5%是指数套利(index arbitrage)。另1.0%涉及非指数套利但与衍生产品有关的策略,它们与指数套利一起受纽约股票交易所规则80A(rule80A)约束。除了指数套利外,程式交易的策略包括客户便利(liquidation of customer)、便利的清算(liquidation of facilitation)、错误帐户的清算(liquidation of errors accounts)、风险的减小或对冲(risk modification/hedge)、期货换现货的股票头寸的清算(liquidation of exchange-for-physicals stock position)、事先的对冲(anticipatory hedge)等。所有其他的组合交易策略占89.5%。
纽约股票交易所从1988年开始要求成员公司每天报告各自详细的程式交易数据,据统计,2001年程式交易达到创记录得高,占交易量的27%。它在 2000年的比例为21%,在1999年的比例为20%,在1998年的比例为17%。可见,程式交易的使用比例在上升,这个趋势有助于解释为什么市场有时候在一个交易日内有突然大幅的波动以及为什么大机构常常拥有推动市场的能力。
一、程式交易的定义和形式
什么是程式交易(program trading)?程式交易有多种形式,纽约股票交易所NYSE把程式交易定义为包含15只或15只以上的指数成分股的组合交易,其价值超过100万,这些组合交易是同时进行的,简单的说,程式交易就是同时买进或卖出一篮子股票,也有少数程式交易是既买进又卖出股票的混合型程式交易。同时买进一篮子股票被称为程式买进,同时卖出一篮子股票被称为程式卖出。程式交易主要是大机构的工具,它们同时或几乎同时买进或卖出整个股票组合,而买进和卖出程序可用来实现各种不同的目标。程式交易的对象涉及在纽约证交所的股票和它们相应在芝加哥期权交易所和美洲股票交易所交易的期权,以及在芝加哥商品交易所交易的标准普尔 500指数期货合约。这些金融产品的交易根据的是纯粹它们价格之间预先决定的关系,而不是任何基本面的因素,如各公司的收益、股息或增长前景、利率变动、货币波动、政策行为等。
程式交易可分为套利型(arbitrage)和非套利型(nonarbitrage)两类,套利型的程式交易即指数套利交易,它包括所有采取识别指数套利或指数替代(index substitutes)的策略的交易。指数套利利润来源是股票指数期货与现货的实际价值关系对理论价值关系的偏离,指数套利是程式交易的一种形式,其他形式的程式交易的例子包括便利的清算、EFP(期货换现货)的股票头寸的清算、组合管理,而组合管理又包括组合重组(portfolio realignment)和组合清算(portfolio liquidation)。尽管程式交易占总成交量的比例越来越大,但指数套利在程式交易中的比重不断下降,1988年超过一半,1995年降到1/3, 1997年第四季度为17%,在交易所成交量中仅为3%。1997年10月21日的程式交易各组成部分为,以指数套利为主的受规则80A约束的交易占 16%,不受规则80A约束的程式交易占84%。不受规则约束的交易中,组合重组占35.02%,风险的减小及对冲占5%,组合的清算占2.57%,期货换现货的交易占2.35%,客户便利占0.84%,便利的清算占0.04%,其余的交易有54%。
由于信息工具的普及,市场的无效性小了很多,与10年前相比,现在指数套利的利润就小了很多,要获得利润就需要更大的成交量和更复杂的模型。而且不仅是模型重要,同样重要的还有很强的计算能力、很低的交易费用和很低的资金成本。因此指数套利比例必然下降,其他策略比例必然上升,其中主要的一种程式交易方法被称为配对交易(paired trading),它利用计量经济模型识别出市场上被高估和低估的股票,卖出高估的股票,买进低估的股票,然后用期货对冲这个程式交易的市场风险,虽然它名为配对交易,但实际上买卖股票的数量并不一定平衡。在1997年,配对交易的股票占全部的程式交易的30%。
从技术结构角度看程式交易系统,它利用计算机硬件和软件来设计、实施和管理金融市场中的投资头寸,包括用网络设备提供金融市场实时的价格数据,这些价格和交易成本数据一同输入计算机后经专业软件处理,看是否有交易机会。根据计算机程序发出的信号自动交易,通常是从交易者的计算机直接进入市场的计算机系统,并自动执行。程式交易公司用大量的计算机模型来设计与期货对应的不同的股票组合。例如,公司可以运行程序识别与期货关系最密切的股票组合,从而最大化潜在的利润,最小化程式交易的风险。换句话说,该交易发生在两个市场满足特定的条件的时候,就是这个组合中的股票相对于期货是价值高估或低估的。不过,纯粹的指数套利现在在程式交易中只占很小的比重。公司还可以交易符合特定波动性和流动性特征的股票。套利型和非套利型交易的共同之处认为市场存在均衡,计算机的高速计算能力能发现市场上的非均衡,从而从非均衡到均衡的过程中获利。实际上,程式买进和程式卖出与计算机智能没有什么关系,所有的程式化交易能手工完成,只不过非常复杂,所以需要计算机。
程式交易开始于1980年代初,那时大机构开始采用指数套利策略,也就是利用股票及其衍生证券的价差获利。组合保险(portfolio insurance)也在1980年代初流行起来。组合保险指的是使用股票指数期货和期权来保护股票组合对付市场下跌。组合保险程序使得大机构能在一个保险模型的特定参数达到某个预定值时卖出大量的股票。据估计,在1980年代中期,有大约价值九百亿的股票组合在组合保险的保护下。有人认为1987年的市场大幅波动内在的重要原因是组合保险和指数套利。不过,组合保险交易在1987年后就停止了,1988年交易所也颁布限制程式交易的规则80A。
现在,程式交易的形式有多种,一些程式仍然是指数套利。另外,一些对冲基金(hedge fund)用到程式交易。所谓的“市场中性”(market neutral)对冲基金,就常常构造多头/空头组合,根据某个特定的变量,如市盈率P/E,在组合中包括了买进一篮子股票同时卖出另一组股票。他们持有这些组合的时间常常在一个月或一个季度。市场中性投资指的是能中性化特定市场风险的投资策略,它根据金融工具之间实际或理论的关系,持有相互抵消的多头寸和空头寸,目的是限制由于宏观经济变量或市场情绪变化导致的价格系统性波动的风险。与传统投资的利润来自证券的走势不同,它的利润来源是证券之间的关系。对于采取市场中性策略的交易者来说,他们卖空证券,而共同基金(mutual fund)一般只做多。市场中性化策略就是要利用现在和未来的无效定价。相关证券之间定价的无效性的来源是金融市场的结构性特征。利用市场的无效获得的投资绩效可以比市场平均的收益-风险关系要好。
下面将讨论的数量交易策略,这种策略也象指数套利那样有期货交易套利的成分。多数的程式交易牵涉到非套利的自营交易策略,公司采取这种策略目的是从各种股票的短期定价不符中获利,或者是满足机构客户的买卖要求。非套利型的程式交易,或称为组合重组,是对资产组合进行调整,卖出不要的资产,同时买进想要的资产。其中的一部分属于动态对冲策略,它保护自营的股票衍生产品的头寸。
数量程式交易策略(Quantitative program trading strategies) www.6park.com
一些最活跃的程式交易公司根据市场内在运作和股票之间历史和理论上的关系的复杂的模型形成买进和卖出大量相对小的股票组合。这些模型评价某些股票为价值高估或低估的。一些公司也买进和卖出期权和期货作为策略的一个部分。但是这些公司坚持这些交易不是标准的指数套利,例如,一家公司可能买进相对股票价格贴水的期货或者卖出升水的期货,但是这些交易的规模和时机并不一定与股票组合相匹配。另外,许多股票组合比期货交易的指数要小得多且局限在特定的子市场。其他公司没有把衍生工具作为数量程式交易策略的一部分,但是可能用期货(或期权)对冲,以便降低公司各种自营交易策略产生的总风险暴露。现在,数量策略与基本分析、技术分析并为股票投资分析的三类方式。
风险或蒙住眼睛的出价程式(“risk” or “blind bid” program)
在蒙住眼睛出价中,基金经理向经纪公司请求出价,来买进或卖出股票组合,价格根据市场收盘价。请求时不指明证券,但提供关于组合的足够信息,以便经纪公司加入出价,这些信息如组合追踪标准普尔500指数的紧密程度,这些股票的流动性,这些股票所处的行业。如果一个经纪公司赢得出价,基金才通知经纪公司股票组合中的股票的名称(通常在市场收盘后),这就是“蒙住眼睛”的意思。然后经纪公司将看他的存货满足对该基金的组合交易的程度,他将隔夜或在第二天做哪些交易来满足与基金的交易。使用这种策略的公司坚持,因为基金没有事先讲明交易组合的准确组成,所以公司不会试图买进或卖出特定的证券以防后来的交易。而是,公司可以买进或卖出符合基金确认的一般性质的股票组合来为后来的交易提供头寸准备。
动态对冲(dynamic hedging)
指的是卖出股票组合来对冲在指数衍生工具的头寸(股指期货和交易所交易或场外交易的指数期权)。由于指数期货执行较快,交易成本较低,因此卖出指数期货是日内调整股票对冲优先考虑的工具。他们卖出期货用来对冲指数产品的风险暴露。
套利交易一般不推动市场。有许多非套利交易程式,它们交易大量的股票,但是没有对冲。这些交易往往会推动市场。最常见的程序规模在1千万到1千5百万。今天的市场有大量程式交易,根据纽约交易所的统计,程式交易占交易所日交易量的20%(真正的指数套利只占一小部分)。每一天都会有点不同,有些时候,一个规模较小的程序交易只能推动指数上下40点,有些时候一个大的卖出程序能很快打压指数超过100点。
二、指数套利程式交易的原理:
程式交易的类型中最为人熟知的是股票对期货的指数套利交易,它从市场短期的无效中赚取利润。市场无效指的是市场偏离它的合理(或者说理论)价值,或者是两个相关的市场或金融工具偏离传统的关系或差价。
若股票的价值(例如标准普尔500指数的成分股)偏离它与标准普尔500指数期货的价值关系。根据这种偏离进行的交易是无风险的,不过偏离通常是很小、很短暂的。程式交易的公司必须用一些复杂的技术识别出这些交易,并且交易大量的资本,至少1千万,在市场的一边买进,在另一边卖出,从中获利。每天CNBC 列出公平价值以及程式买进和卖出的水平。
1、不考虑交易成本下的指数套利
为了认识股价指数期货价值与股市有什么样的联系,这种联系如何形成程式交易的基础。我们来分析期货相对股票的公平价值的概念以及它的意义。为便于理解,我们暂时先不考虑交易中的成本。
股价指数(现货市场)和股指期货之间存在数学关系。它们之间的价格差被称为升水,当升水的数值过大或过小时,程式交易者将买进股票,卖出期货(这被称为买进程式),或卖出股票,买进期货(这被称为卖出程式),使得现货和期货之间的关系回到原来的关系。
怎样算是过大,怎样算是过小的呢?现货和期货之间的价格差如何?理论关系即所谓的公平价值是根据下面公式计算的?
期货的公平价值(FVF) = U[1 + I(T/365)] - D
U =现货指数值
I =利率
T =期货合约的到期时间(以天表示)
D =股息值
该公式背后的逻辑如下:股指期货的价值为现货指数的当前值加上借款买指数成分股的成本减去你作为股东获得的股息。所有这些值要用时间价值表示。例如,标准普尔500收盘价为1400,短期利率为6%,指数期货还有25天到期,期间无股息支付。那么期货的公平价值为1,405.75 (1400[1 + .06{25/365}] - 0)。也就是说,第二天开盘时期货的公平价值应比股指前一天收盘值高5.75 (1,405.75 - 1,400)点。若在交易日,市场上升50点到1450点,那么公平价值上升到1455.96即比目前的现货指数值高6点。可见,指数值越高,它与期货的公平价值之间的差距越大。
一般来说,股指期货的价值比股指现货值要大。但是,当它们之间的差距很大时,也就是说,期货价格远高于它的公平价值,那么程式交易者预期到两者之间的价格差将回复正常水平,将执行买进程式。反过来,当它们之间的差距很小时,也就是说,期货价格远低于它的公平价值,那么程式交易者认为期货价值被低估,股票价值被高估,因此将执行卖出程式。结果都是期货价格与现货价格之间的关系回到公平的关系上。
现货值和期货值关系的偏离一个最基本的原因是期货的交易成本较低,交易期货较便宜。例如,如果有一条牛市的消息,动作最快的交易者将迅速买进期货,这将推动期货价格向上,但股票价格并未立即受到影响。现在期货的价格高于公平值,程式交易套利者将卖出相对高估的期货,买进相对低估的股票来对冲。事实上,由于套利者卖出高估的期货,买进低估的现货,可见套利交易有抚平市场的作用。因此整个过程是,先是消息冲击交易成本较小的期货市场,接着触发指数套利程式交易,然后程式交易使期货市场与现货市场的达到平衡。
比如,期货价格高于公平价值两点,交易者在卖出期货合约的同时买进股票,头寸就可以处于中性,几乎没有风险,预期两个市场回到理论关系要求两点消失,从而获利。
指数期货合约一点的价值为250元,两点的不同意味着交易一份期货将得到无风险的500元利润。如果这足以抵偿所有的成本,比如差价和手续费,那么计算机将指示交易。
回到公式,很明显,利率越低,公平价值越低。但是,因为利率水平对我们每个人都不一定相同,所以程式交易不一定适用于所有人。例如,假设前面的例子中一个大的投资银行利率为6%,如果你的利率为7%,那么公平价值为1406.70,比前面的例子高出一个点。
上述关系有时也被表述为持有成本和基差的关系。所谓基差,指的是期货价格与现货价格之差。买进期货和买股票相比,在交割时间上期货是到期才交割,持有成本指的就是买进股票到期货到期这段时间放弃的收益,或者说持有股票的机会成本,它等于股票在这段时间经风险调整后的必要收益减去股息再投资收益。
预期的持有成本和基差之间有密切关系。我们举个例子,假设股价指数只包含一只股票。1月21日该股票的现货价格为50元,指数相应为50,从1月21日到 4月21日这后三个月预期的持有成本为每股1.50元,如果4月份到期的股指期货合约目前的价格52元,那么2元的基差(52-50)超过预期的持有成本 1.50元。套利者将以52元的价格卖出一份4月份期货,以50元买进一份股票现货。
套利者这样操作的原因是他相信4月份期货的价格将下跌到51.50元(即现货价格加上预期的持有成本)。在51.50这个价格,他将买进一份4月份期货合约来平仓他的期货头寸。他可获得的每张合约的利润为0.50元,即期货合约的卖出价52元减去平仓该合约的成本51.50元。
当市场方向不明确或易波动时机构投资者常常用到对冲技术。套利者持有的现货多头是用来对冲他的期货空头的,以防股票价格的变动。例如,假设套利者卖出期货并买进股票之后4月份期货价格和现货价格都立刻上升了3元。这时,4月份期货价格上升到每张合约55元,现货价格上涨到每股53元。在价格变化后,基差为 55-53=2元仍然比预期的持有成本1.50元大0.50元。所以套利者预期4月份期货价格将下跌到每张合约54.50元。在54.50元这个价格,他将平仓掉在期货的空头寸,每张合约的损失为2.50元(52-54.50)。但他在现货头寸上每股盈利3元(53-50),因此他的净利润为0.50元(3-2.50),与前一种情况相等。通过在现货市场对冲,套利者能保护预期的利润不受未预期到的股票价格波动的影响。我们来看另一种可能,假设4月份期货的价格为51元,这时基差为1元,小于预期的持有成本1.50元。套利者将卖空股票,买进4月份期货。套利者预期4月份期货的价格将上升到每股 51.50元,在这个价格,他将卖出期货合约,每张合约盈利0.50元(51.50-51)。同样的,他在现货的空头寸能保护预期利润不受股票价格波动的影响。
我们实际上交易的股指期货的标的股票指数包含了一篮子股票。在原理上,持有成本的计算是相同的。但是在实际操作中有两个重要的不同。首先,因为,股票指数表示一个相当分散的股票组合,而且指数套利对冲的是股票组合未被预期的变动,所以这些交易相应的贴现率为无风险的收益率,典型的无风险利率为短期货币市场工具的收益率。另一个不同是要计算持有成本,套利者就必须了解指数包含的所有公司的股利政策。这些计算必须迅速切准确地做出,因为机会稍纵即逝。
因为随着套利组合中的股票数量增加,监视和交易的成本也上升,所以交易者一般不会了解指数包含的所有股票,而是选择出一部分股票,它们的综合价值在过去与指数有密切的关系。因此由于部分股票的组合不能与指数完全匹配,所以交易者承担有额外的风险。交易者为了避免组合增大带来的了解持有成本的增加,还是愿意承担这种额外的风险。当然,使用计算机程序,在获得新的信息后,能降低更新持有成本数据的费用。因为指数套利通常用计算机辅助交易技术,所以纽约证交所把它作为一类程式交易。程式交易是一种能发现现货市场和期货市场的交易机会同时成本较低,效率较高的办法。
当然,程式交易远比这里讲的复杂。实际应用中,有许多变量使该过程复杂化。从事程式交易的公司在不同的价格水平执行买卖指令,这主要取决于两个因素,一是它们各自的货币成本,即用于买股票的借款的利率,二是它们识别市场中的无效的特定的算法。
不要混淆买卖程序的理论价格和我们这里的公平价值和程式交易升水额执行水平。理论得出的公平价值和买卖程式的价格不能用到实际中。这里的升水额水平考虑到清算成本,正常情况下买卖股票的出价和要价的差额的预期值与实际值之差,以及交易所的交易限制对计算机执行买卖股票的指令的影响,因此程式买进通常比理论值较高,程式卖出通常比理论值低。即使你发现有这么一个获利机会,因为买进所有需要的股票和缴存期货交易所需的保证金要用大量的资金,你也可能实现不了。下面进一步展开。
前面谈到的理论没有考虑两个重要因素:手续费(commission),预期的交易成本与实际支付的交易成本的差额(slippage),后者通常是证券的出价和要价之差变化导致的。它们对交易公司的成本有很大的影响,从而影响买卖的升水水平。这些变量构造了不同的交易程序和这些程序触发的不同水平,这些水平还是比较接近的。尽管指数套利的原理不难,但是决策用到的精确的交易模型和算法是各公司的秘密。
预测执行程序的升水额很难的,原因是各公司付给银行的利率不同,所以不是每个公司都用完全相同的水平。不过实际上个公司的资金成本的差别不大,几乎所有公司的买卖执行水平都很接近,但更重要的是当升水额开始移向执行水平时它通常很快地通过它,很明显,程序将被触发。例如,如果我们的程序设置的卖出位置在 6.32,升水额触及它且继续下降到5.37才到底,那么很明显,所有的交易者的卖出程序都将执行