這是一篇AQF量化學(xué)習(xí)貼,主要是講關(guān)于算法交易的主要類型與策略分析,如果你需要的話,那就繼續(xù)往下看看咯~
1、算法交易起源于上世紀(jì)中葉的配對交易
歷史上較早使用算法交易的例子可以追溯到1949年。對沖基金之父阿爾弗雷德?瓊斯,利用空對多3:7的比例進(jìn)行配對交易,在1955年到1964年間,綜合回報率高達(dá)28%。到了上世紀(jì)60年代早期,投資者開始利用計算機(jī)通過分析股票的周線和月線來預(yù)測價格運動方向。
配對交易逐漸成熟,發(fā)展成后來的算法交易。隨后算法交易策略慢慢在華爾街流傳開來并被廣泛使用,同時也帶來了非??捎^的盈利。原來在摩根士丹利從事配對交易的研究員,后來逐漸成為如大衛(wèi)?肖、詹姆斯?西蒙斯這類明星基金經(jīng)理手下的精英,算法交易的“黑盒子”便由此誕生。
隨著計算機(jī)的廣泛普及,華爾街各大交易平臺都開始執(zhí)行算法交易,對IT技術(shù)人員的需求不斷攀升。各種數(shù)量化研究人才進(jìn)入到華爾街工作,改變了交易大廳傳統(tǒng)的交易習(xí)慣,公開喊價的交易員逐漸被算法交易員所取代,算法交易也從此在華爾街開始蓬勃發(fā)展。現(xiàn)在,無論是股票、商品、期貨以及外匯市場,算法交易已成為市場中不可或缺的組成部分。
2009年花旗集團(tuán)的報告顯示,超過50%的股票交易都是通過算法進(jìn)行自動交易的。而其他銀行的報告指出這一數(shù)字甚至達(dá)到75%。市場之所以青睞算法交易,其原因在于其能夠快速有效地降低交易成本,控制市場沖擊成本和具有較高的執(zhí)行概率。除此之外,它還能提供隱藏交易意圖等傳統(tǒng)交易方法不具有的交易方式。
2、沖擊驅(qū)動型算法交易:降低對價格的影響
沖擊驅(qū)動型算法是由簡單的指令分割策略演化而來的。通過將大訂單分拆成小訂單進(jìn)行發(fā)送,試圖降低交易對資產(chǎn)價格的影響,達(dá)到最小化市場沖擊成本的目的。
基于平均價格的算法,代表了第一代沖擊驅(qū)動型算法。這些算法都是由帶有預(yù)設(shè)目標(biāo)的算法演化而來的,對價格或成交量等條件無敏感性。它們通常按預(yù)定的步驟被執(zhí)行,在給定的時間內(nèi)不管市場條件如何,只是單純執(zhí)行預(yù)先設(shè)置的指令。
為了使交易算法更加靈活和適應(yīng)市場環(huán)境,可以對這些靜態(tài)方法進(jìn)行改進(jìn),或更多地采用動態(tài)算法。這就導(dǎo)致了算法逐漸向機(jī)會導(dǎo)向算法傾斜。參與率算法(POV)建立在真實市場成交量上而不是依賴靜態(tài)模型而形成交易進(jìn)度,隨后逐漸演化成為采用更隱藏的路徑以達(dá)到零市場沖擊的最小沖擊算法。
基于平均價格的算法,代表了第一代沖擊驅(qū)動型算法。這些算法都是由帶有預(yù)設(shè)目標(biāo)的算法演化而來的,對價格或成交量等條件無敏感性。它們通常按預(yù)定的步驟被執(zhí)行,在給定的時間內(nèi)不管市場條件如何,只是單純執(zhí)行預(yù)先設(shè)置的指令。
為了使交易算法更加靈活和適應(yīng)市場環(huán)境,可以對這些靜態(tài)方法進(jìn)行改進(jìn),或更多地采用動態(tài)算法。這就導(dǎo)致了算法逐漸向機(jī)會導(dǎo)向算法傾斜。參與率算法(POV)建立在真實市場成交量上而不是依賴靜態(tài)模型而形成交易進(jìn)度,隨后逐漸演化成為采用更隱藏的路徑以達(dá)到零市場沖擊的最小沖擊算法。
時間加權(quán)平均價格(TWAP)是一種基于時間變化的加權(quán)平均價格,被稱為TWAP算法,其僅以時間分割為基礎(chǔ),考慮指令的設(shè)置或指令的執(zhí)行,而不受市場價格或成交量等其他方面因素的影響。用這種方法執(zhí)行一系列指令,其平均執(zhí)行價格就是各執(zhí)行時間點市場交易價格的加權(quán)平均。
相對于TWAP策略而言,成交量加權(quán)平均價格(VWAP)交易策略是指交易者利用市場成交量來試圖實現(xiàn)使平均執(zhí)行價格等于VWAP基準(zhǔn)價格的執(zhí)行策略。它是最常用的交易策略之一,具有簡單易操作等特點,基本思想就是讓算法的成交量提交比例與市場成交量比例盡可能匹配,在減少對市場沖擊的同時,獲得市場成交加權(quán)的平均交易價格。因此,VWAP策略一般不直接對交易的沖擊成本建模,而是注重日內(nèi)成交量分布的預(yù)測。值得注意的是,如果訂單量很大,VWAP策略的沖擊成本仍不可忽略。
參與率算法是一種與市場成交量同步的算法,有時它們也被稱為目標(biāo)成交量算法或跟隨算法。與VWAP算法一樣,參與率算法的表現(xiàn)取決于它們所采用的追蹤目標(biāo)成交量的技術(shù),并且重點目標(biāo)都是為了最小化市場沖擊。在實踐中,參與率算法可能會考慮其他的因素,比如流動性等來幫助選擇較優(yōu)的交易時機(jī)。
一些參與率算法會包含成交量預(yù)測功能。一般來說,這些方法是建立在對歷史成交量分布、當(dāng)前觀測到的成交量和數(shù)量分析綜合考慮基礎(chǔ)之上的。另外,也有其他參與率算法允許控制算法追蹤目標(biāo)參與率的進(jìn)度,甚至可以顯示算法能夠提前或之后目標(biāo)參與率的程度。因此可以加快算法的執(zhí)行度,留下交易的余地,從而避免出現(xiàn)滯后。事實上,這成為目標(biāo)參與率的一個傾斜機(jī)制。對于那些允許對參與率做出更多動態(tài)調(diào)整的算法來說,還需要附加變量來確定基準(zhǔn)和確定參與率如何根據(jù)基準(zhǔn)或變量來變化的。
由于參與率算法不會對價格產(chǎn)生依賴性,因此必須對其設(shè)定嚴(yán)格的價格限制。參與率算法是追蹤所有的成交量,但是,一旦應(yīng)用了限價指令,它必須忽略掉所有超出這個限制的交易,否則每次當(dāng)價格回落到限制之內(nèi)時算法的表現(xiàn)就會差強(qiáng)人意。
>>>點擊咨詢《Python量化投資與金融實戰(zhàn)應(yīng)用》
.png)
3、成本驅(qū)動型算法交易:降低總體交易成本
成本驅(qū)動型算法的主要目的是降低總體交易成本,除了傭金和價差之外,沖擊成本和時機(jī)風(fēng)險等隱性成本都是成本的重要組成部分。雖然將大訂單進(jìn)行分割并將其分散到相當(dāng)長的一段時間內(nèi)進(jìn)行交易可以最小化市場沖擊,然而這樣做會把訂單暴露在更大的時機(jī)風(fēng)險下,對波動性大的資產(chǎn)尤其如此。因此,成本驅(qū)動型算法也需要同時降低時機(jī)成本。
過于主動的交易會導(dǎo)致相當(dāng)大的市場沖擊,而過于被動的交易會引起時機(jī)風(fēng)險。為了最小化總的交易成本,我們需要在沖擊成本和時機(jī)風(fēng)險這兩者之間尋找一個平衡點。為了找到這樣一個平衡點需要考慮到投資者的風(fēng)險厭惡程度。早期的成本驅(qū)動型算法是由沖擊驅(qū)動算法吸收了時機(jī)風(fēng)險等要素演化而來的,現(xiàn)在成本驅(qū)動型算法越來越多地使用復(fù)雜市場模型,去預(yù)測潛在的交易成本和決定指令的較優(yōu)交易策略,主要的類型包括:
執(zhí)行落差算法代表了純粹的成本驅(qū)動型算法。它試圖最小化平均交易價格和反映投資者決定價格的分配基準(zhǔn)之間的落差。適應(yīng)性落差算法是執(zhí)行落差的一個機(jī)會導(dǎo)向型的版本,一般來說對價格更加敏感。
執(zhí)行落差指投資者決定交易的價格與實際實現(xiàn)的平均執(zhí)行價格之間的差額。投資者決定的價格相當(dāng)于算法的參考基準(zhǔn),一般用指令到達(dá)交易商時的中間價格作為替代。而執(zhí)行落差算法的目的是實現(xiàn)一個能夠最小化缺口的平均執(zhí)行價格。實現(xiàn)這類算法的關(guān)鍵就是在市場影響和時機(jī)風(fēng)險這兩者之間尋找一個平衡點。通常這意味著算法只能在不產(chǎn)生顯著市場沖擊的時間范圍內(nèi)執(zhí)行。
由于實現(xiàn)這個目的的過程很復(fù)雜,于是許多情況下人們選擇利用更簡單的算法去實現(xiàn)。這些算法中有一部分實際上是成交量加權(quán)平均價格算法或參與率算法的增強(qiáng)版。它們使用成本模型去決定較優(yōu)交易周期,這個交易周期應(yīng)該包含由模型決定的結(jié)束時間或較優(yōu)參與率。
適應(yīng)性落差是從執(zhí)行缺口算法中演化而來的新算法。該算法所具有的適應(yīng)性特點主要體現(xiàn)在對市場價格的適應(yīng)或反應(yīng)。價格適應(yīng)性落差算法實際上是一種更加傾向于機(jī)會導(dǎo)向的算法。
一個主動實值(AIM)策略是指當(dāng)價格有利時交易更加主動,而當(dāng)價格變得不利時交易變得被動。對于一個買入指令,有利的價格條件等價于市場價格下降到基準(zhǔn)價格以下;而對于賣出指令情況則是相反。因此只有當(dāng)市場價格顯著下降到基準(zhǔn)價格以下,主動實值策略的交易率才會上升。而被動實值策略(PIM)則是相反的,且當(dāng)價格有利時它會變得更加被動,而當(dāng)價格不利時它會變得更加主動。因此,交易率只有當(dāng)市場價格顯著地高于基準(zhǔn)時,才會上升。
收盤價格通常用作盯市,以便計算每日的資產(chǎn)凈值和盈虧狀況。因此不少機(jī)構(gòu)會把收市價作為一個參考基準(zhǔn)。一般來說,在收市前進(jìn)行交易會增加交易成本,而且交易價格對于指令會變得更加敏感。同時,流動性溢價在收市前也會更明顯。
收盤算法(MOC)的主要問題在于,其基準(zhǔn)只有在市場收盤價格確定下來后才能得知。所以,該算法并不能把交易日內(nèi)的交易進(jìn)行平均,然后把訂單進(jìn)行簡單切割去匹配基準(zhǔn)。若執(zhí)行交易的時間較早,收盤價的波動性會給交易者帶來時機(jī)風(fēng)險;若交易時間較晚,則會對市場產(chǎn)生較大的沖擊。
4、機(jī)會導(dǎo)向型算法交易:利用有利的市場條件
機(jī)會導(dǎo)向型算法是從一系列交易算法中演化而來的,其本質(zhì)都是利用有利的市場條件,包括價格、流動性或其他因素。其中盯住價格算法是以成交量加權(quán)平均價格算法、參與率算法等策略為基礎(chǔ),與它們所不同的是添加了對價格的敏感指標(biāo),并且能夠基于當(dāng)前市場價格是否有利來修正算法的交易風(fēng)格。因此許多看重市場沖擊成本的算法都會更多采用機(jī)會導(dǎo)向型策略。
對于每一類機(jī)會導(dǎo)向算法,價格都是一個重要的變量。目標(biāo)基準(zhǔn)提供了一個允許算法去判斷市場條件是否有利的基準(zhǔn)線。由于具有動態(tài)性特征,機(jī)會導(dǎo)向型算法比其他類型的算法能更精確地執(zhí)行目標(biāo)策略。
盯住價格算法是把交易與市場價格聯(lián)系在一起的方式,與參與率算法根據(jù)市場成交量進(jìn)行調(diào)整的方式類似,先定義一個基準(zhǔn)價格,然后用市場價格與其比較的結(jié)果調(diào)整成交量。如果事先沒有設(shè)定基準(zhǔn)價格,那么通常就會使用指令下達(dá)時的中間價格。所以,對于買入而言,低于基準(zhǔn)價格即為有利的買入價格;對于賣出而言,高于基準(zhǔn)價格即為有利的賣出價格。
盯住價格算法包括一個基本的交易機(jī)制,同時附加價格調(diào)整的功能。因此,它可以建立在靜態(tài)成交量加權(quán)平均價格算法或更動態(tài)的成交量百分比方法的基礎(chǔ)上,實際的價格調(diào)整策略可以直接追蹤市場價格和其基準(zhǔn)的差異,或者包含其他的變量。
.png)
金程推薦: AQF培訓(xùn) AQF培訓(xùn)機(jī)構(gòu) 量化金融分析師
聲明▎更多內(nèi)容請關(guān)注微信號量化金融分析師。原創(chuàng)文章,歡迎分享,若需引用或轉(zhuǎn)載請保留此處信息。




