程式交易簡介
(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才到底,那麽很明顯,所有的交易者的賣出程序都將執行