算法交易策略是通過對交易模式的分析,采用明確的、數(shù)量化的交易模型來發(fā)掘投資機會并實現(xiàn)盈利。算法交易策略一般通過計算機系統(tǒng)化的手段來實現(xiàn)對交易策略的實施。通常算法交易策略模型的設計包括下面幾個部分: l 算法交易投資策略模型 l 確定進入交易的信號 l 確定退出交易的信號 l 實現(xiàn)上述工作的自動化交易系統(tǒng) 下面是對一些常見的算法交易策略模型的介紹。
價差套利交易模型
價差套利的主要想法是通過不同交易產品合同之間的價格差異來獲得回報。以期貨交易為例,價差套利交易策略過程是賣出一個或多個期貨合同,同時買入一個或多個期貨合同來對沖。常見的是價差模型有牛市價差、熊市價差和蝶形價差。 l 牛市價差: 當價格差異縮小時,持有短期的合約長倉以及較長期合約的短倉。 l 熊市差價:當價格差異擴大時,持有近期的合約短倉以及較長期合約的長倉。 l 蝶形差價:涉及三個不同合約,持有近期和較長期的合約長倉,以及雙倍的中期合約的短倉。
除了上述三種典型的價差,通常還有三種市場交易狀態(tài)會出現(xiàn)價差套利機會,包括跨市場價差,跨期價差和跨商品價差。出現(xiàn)價差套利機會的合約之間往往具有非常強的相關關系。
跨市場價差:跨市場價差套利是通過持有一個交易市場的期貨合同長倉,以及另外一個市場的同一月份期貨合同短倉實現(xiàn)的。不同的出價/詢價因素或時區(qū)會導致固有的或者內在的價格差異。不同市場的需求差異、交易環(huán)境和交易監(jiān)管也會導致價格差異。
在商品交易領域,中國市場間價差套利常見的組合是和中國期貨合約相關的倫敦金屬交易所(LME)交易的金屬,以及芝加哥CBO交易的大豆,油和棉花。交易合約相關的成本包括匯率、稅收、運輸和存儲。
跨期價差:跨期價差通過對同一產品建立不同月份合約來實現(xiàn)的。由于季節(jié)因素,供需和資本偏好逐月不同,造成資本市場的價格差異。合約量的額度也會導致價格波差異,通常價格在額度內波動,提供了我們窺看形成牛市或熊市價差的機理。當價格差異到達頂部,通過牛市價差策略我們能夠獲得正回報,而價格差異到達底部,通過熊市價差策略我們也能獲得正回報。
范例:白糖期貨價差套利交易 白糖期貨有6個交易月份合同,其中一月、五月和九月是最受歡迎的月份,因此被歸類為主合同??缙趦r差策略可以選擇兩個臨近的月份的交易確,例如,一月到五月,五月到九月,和九月到次年一月。當兩個交易月份出現(xiàn)價格差異時就出現(xiàn)套利機會。白糖的價格差異規(guī)律是: l 一月到五月:價格差異一般在20至320元區(qū)間低幅度波動。當價格差異超出正常范圍時我們就可以套用簡單的正套利策略,也就是期貨的價格高于無套利限度了,因此我們可以買入臨近月份的合約,賣出遠期的合約來獲利。當價格差異低于正常范圍時我們就采用負套利策略,即期貨價格低于無套利限度,我們可以賣出近期的合約,買入遠期的合約來獲利。 l 五月到九月:價格差異一般在0到200元區(qū)間波動,帶有明顯的季節(jié)效應。春節(jié)過后價格差異一般下降。 l 九月到次年一月:這是跨年度的期貨合約交易,一般不容易觀察到明顯的價格差異規(guī)律。
回報和波動率溢出效應顯示中國的期貨市場有明顯的季節(jié)周期,通常商品市場在上半年走強,而股市在下半年走強。協(xié)相關性溢出效應一般是,從三月到八月,溢出效應下降(商品關系變弱),價格跟依賴于實質性的因素,如供求關系,預期交易量和價格等。八月到次年三月,溢出效應增強,也就是價格更依賴于投資資本(追逐價格波動的回報)。
除此之外,國內外商品市場間也存在溢出效應,國外的期貨價格直接影響中國的期貨價格,特別是那些大宗進口商品,像大豆、鐵礦石、石油等效應更明顯。如果商品進口比例超過50%,一般會進口通貨膨脹。
跨商品價差:跨商品價差策略通過建立某個合同的長倉,同時持有相同交付期限,相關但是不同商品的短倉來實現(xiàn)。這兩種不同但是相關的商品反映了彼此之間的經濟關系。最常見的價差套利是變形價差(crush spread)和裂解價差(crack spread)。變形價差是原材料和成品之間的價差,如用于大豆期貨市場,我們可以同時買入大豆期貨以及賣出大豆產品的期貨。裂解價差是商品和成品之間的價差,如購買石油期貨,同時賣出汽油和熱油對頭寸進行對沖。原油和汽油之間的裂解差價,反映了原油提煉成汽油的溢價。因此將石油裂解為汽油和熱油,煉油廠商能夠采用這些套利交易產生剩余收益。其他相關的產品類包括金和銀、大豆油和棕櫚油、螺紋鋼和鋼線材、小麥和玉米。
期貨/現(xiàn)貨套利交易模型
現(xiàn)貨的時差價格對期貨價格具有領先關系,但是期貨的時差價格對現(xiàn)貨價格不存在領先關系?,F(xiàn)貨價格和期貨價格存在即刻的雙向領先關系。以大豆商品五月、九月期交易作為例子:臨近的價格反映了供求關系,但是稍后的價格反映了未來的供需關系以及持有商品的成本。在市場交易供求正常情況下,由于持貨時間較長,稍后的合同價格要高于較近期的合同價格。交易商應該建立七月、十一月和次年一月的長倉,同時持有五月和九月的短倉。在不利的市場情形下,短期的供應短缺會導致較高的需求,以及未來增加供給的期望。因此,較近期的合同價格會比稍后時期的合同價格高。供應商應該建立七月、十一月和次年一月的短倉,但持有五月和九月的長倉。
如果交割的要求被履行,期貨和現(xiàn)貨套利需要較高的成本和資金,但主要是短期資金。但是在交割前,交易商需要較少的保證金,但最好持有流動性的短期資金。相應的成本包括運輸、倉儲和增值稅等。
期貨/股票套利交易模型
期貨價格作用于股指及其回報,從而引導期指價格的變化,因此在預測股票價格方面有很大作用。例如,對于直接和主要依賴于金屬和油氣的公司,期貨價格也反映了公司的未來表現(xiàn),因此反過來反映在股票市場上。
期貨市場采用T+0的交易系統(tǒng),不同于股票市場的T+1時間清算。T+1天交易系統(tǒng),投資人需要至少在購買后1天才能賣出股票,而清算后的資金需要再在一天后才能動用。因此,如果期貨價格因為某些因素上漲,投資人可以直接購買高相關性的股票而獲利。但是股票收益只能在下一天兌現(xiàn),這同樣會影響期貨價格。
趨勢套利交易模型
趨勢跟蹤是最常見的趨勢套利交易模型。該模型試圖利用長期趨勢的優(yōu)勢,適用于相對不活躍(低波動率)和有趨勢的市場,從期貨市場的上升和下降變化兩面中獲利。該模型通常采用移動平均法和通道突破來判斷市場的一般方向,并產生交易的信號。
一般買入信號是一段時間的牛市中產生,而賣出信號是熊市過程中發(fā)現(xiàn)的。趨勢跟蹤方法很少能做到在市場底部買入和市場頂峰賣出,但是趨勢中間狀態(tài)也足夠利潤豐厚了。移動平均越長,則滯后性越大。滯后產生的原因是分析數(shù)據(jù)不以均值為中心,比如,簡單移動平均會滯后最近的數(shù)據(jù)點半個樣本寬度,也就是說,10天的移動平均會滯后5天。這種情況對投資人的交易決策影響很大。
上圖說明移動平均法會產生一定的滯后效應。
所有的趨勢都是歷史性的,而我們需要的是當前趨勢。測量當前趨勢的一種簡單方法是采用當前狀態(tài)的兩個測量點,計算它們之間的差異。例如,我們可以采用動量(Motion)、速度(Velocity)和趨勢(Trend)等測量值來估算趨勢狀況。我們無法從當前的靜態(tài)狀況來測量這些量,因此需要找到某種方法來定義和計算這些測量點的值。下面是一個例子。
情景:某只股票長時間的交易價格是10元,但是某一天突然上漲到20元,并持續(xù)了很長時間。 1. 選擇當前價格:采用當前價格,即今天的收市價格20元; 2. 選擇一個歷史價格:采用5天滯后的收市價格。假設滯后價格是10元。 3. 計算(1)和(2)的差異:差異=當前價格-歷史價格=20-10=10元。 4. 估算變化頻率,并用滯后性來調整:變化頻率 = 差異/5 = 2元/天。成本回報率 = 2元/天/10 = 20%每天;或者7305%每年(按每年365.25天計算)。這樣,我們可能說,基于5天時間段,這只股票的向上趨勢是每天2元,或者每天20%,或者每年7305%。注意,所有這些映射是基于我們的歷史著眼點。如果我們按照20天的滯后時間段來估算,我們得出的結果就會不一樣。 5. 更新滯后價格:可以用下面的公式更新:新滯后價格 = 原滯后價格 + (當前收市價格 – 滯后價格)/時間常數(shù)。本例子中,新滯后價格 = 10元 + (20元 – 10元) / 5 days = 12元。 6. 通過滯后價格的變化找到趨勢:我們利用第五步的方法,可以每天跟蹤滯后價格的變化,這種變化反映了以五天為時間單位的長期趨勢。例如,第2天,我們重復步驟(5): a) 當天收市價格依舊是20元; b) 前一天的滯后歷史價格是12元; c) 差額是8元 d) 變化率 = 8元/5 = 1.6元/天;或者1.6元/每天/12元 = 13.3%; e) 更新滯后價格 = 12元 + 1.6元 = 13.6元
移動平均法
移動平均法用來減少時間序列中不必要的噪音,使得數(shù)據(jù)所能顯示的表現(xiàn)趨勢更加準確。也就是說,這種方法使得數(shù)據(jù)圓滑。我們可以用價格超過或低于移動平均線作為交易信號。當價格超過移動平均線某個臨界點,則表示是賣出的時機,反之則代表買入的機會。
通常我們采用20天到100天的時間段來產生移動平均線。較短的移動平均線對應于較近的的價格變化,而且會產生較多的交易信號。而較長時間段的移動平均線所產生的交易信號不是太頻繁。最常用的移動平均方法有簡單移動平均、加權移動平均和對數(shù)移動平均。簡單移動平均是每天價值的簡單平均數(shù)。假設移動平均線的時間段為n,每天的收市股票價格為x,那么簡單平均移動價格是: 典型的加權移動平均是賦予最近的時間點更多權重。例如,我們設定n時間段的加權移動平均計算中,最近一天的價格權重為n,前一天的權重為n-1,其它權重以此類推。那么移動平均價格計算方法為: 上面公式中分母部分是,也就是說,分母部分是所有單個權重的總和。
對數(shù)移動平均數(shù)采用今天的價格和昨天的移動平均值來計算。平滑因子決定了對數(shù)移動平均值多快地反映了當前的市場價格,平滑因子越大,所跟蹤的價格越接近當前價格,即:
對數(shù)移動平均值
其中, l 系數(shù)表示權重減少的幅度,為0-1之間的常數(shù)。較大的對較老的觀測值折現(xiàn)較大。我們可以用移動平均時間段n來表示因子,即。半周期權重,即一半時間段n對應的權重的近似值為n/2.8854. l 是時間點t對應的觀測值。 l 是時間點t對應的對數(shù)移動平均值(EMA)。
移動平均法的問題在于,如果市場沒有趨勢,呈現(xiàn)短期的,帶有很多回調的劇烈波動時,該方法就可能無效?;趦r格平滑的程度,移動平均值總是滯后于當前價格,因此移動平均值在趨勢上升時總是低于價格,而在趨勢向下時總是高于價格。這樣的滯后在要求對市場事件反映敏捷的情況下就是個問題。當然,如果移動平均值對市場的領先指標作用強烈的時候,就補償了這種滯后性的代價。
雙向移動平均交匯法(Dual Moving average crossover)
這種方法是采用多個移動平均值來產生交易信號,比如采用較短時間段的簡單移動平均值超過或低于較大時間段的簡單移動平均值。我們常見的雙向移動平均交匯法是采用10天和40天作為時間段來產生交易信號。交易員不用等待原始價格超過移動平均值,只要較快的(較短時間段n)的移動平均線超過了較慢的移動平均線,就可以定義為買入信號。同樣,如果較快的移動平均線低于較慢的移動平均線時,就定義為賣出信號。另外,采用雙向移動平均交匯法可以控制或消除單個移動平均線所帶來的滯后性。
突破法
突破模型是當價格突破某一上限臨界點(或者區(qū)間)就買入,而對于某一下限臨界點(或者區(qū)間)就賣出的交易策略。通道突破和波動突破是最常用的模型。 l 通道突破: 通道突破采用以前的價格高點或者低點確定支持和阻力線。當價格上升到上行通道的最高點時,投資人就買入,當價格下降到下行通道的最低點時,投資人就賣出。例如,某個40天通道突破策略是,當收市價格是過去40天最高點時,我們就買入;當收市價格是過去40點最低點時,我們就賣出。通道的長度越長,策略交易的頻率就越低。 l 波動突破: 波動突破采用波動區(qū)間來設置支持和阻力線。波動區(qū)間定義為高于或者低于當前價格。當波動增加,區(qū)間擴大,越加偏離當前價格;而當波動減少,區(qū)間更加接近當前價格。
高觸發(fā)點是參考價格(包括昨天的收盤價、今天的開盤價、或者短期移動平均值),加上波動率放大參數(shù)乘以波動率測量(如,價格回報的標準差)。如果今天的收市價格大于高觸發(fā)點,則買入。低觸發(fā)點是參考價格(如昨天的收盤價、今天的開盤價、短期移動平均值),減去波動率放大參數(shù)乘以波動率測量(如,價格回報的標準差)。當今天的收盤價低于低觸發(fā)點則賣出。
不適宜的門檻值會造成突破系統(tǒng)產生過多的不良交易信號,這種情況在活躍高波動市場更加顯著。當門檻值設置比較合理,相關的策略會非常有效;諸如方向性移動指標可以整合到系統(tǒng)中,以確保市場是否現(xiàn)在進入趨勢或者非趨勢模式。如果市場不呈現(xiàn)趨勢,突破產生的價格應該被廢棄。
基于震蕩指標的交易模型
震蕩指標
震蕩指標是在某個限制范圍內趨于周期性波動的指標。這些指標被用來識別價格趨勢的轉折點,投資者則可以在市場變化之前就預測價格方向,并進行交易。該類指標的反映重點是動量和周期性,而不側重在趨勢,并忽視了長期的反作用。震蕩指標歸納出交易動量信息以及趨勢過度的信息,其中動量是指價格在某個方向上移動的強度。趨勢過度是指價格過高或過低(超買或者超賣)因而有回歸合理價格的姿態(tài)。當震蕩指標低于某個門檻值進入超賣范圍,則定義為買入信號。當震蕩指標高于門檻值而進入超買范圍,則定義為賣出信號。交易執(zhí)行的信號就定義為震蕩指標和價格的差異。當價格和震蕩指標在低位,但是價格比震蕩指標更低,則為買入信號;而當價格和震蕩指標都在高位,但是價格比震蕩指標更高,則表示到了賣出的時候。
我們一般用兩類震蕩指標類型。 1. 線性帶通濾波器(Linear band-pass filters)諸如MACD和MACD-H,用來分析周期頻率和階段回應。類似于帶通濾波器,過濾掉緩慢的趨勢和反轉,以及高頻噪音。 2. 另一類震蕩指標將價格表現(xiàn)對應到常態(tài)化的尺度,它們不是有明確定義階段和頻率表現(xiàn)的線性過濾器,而是反映超賣/超買和動量信號的動態(tài)震蕩指標。它們表示市場是否到達了新高/新低,還是只運行在中間過程。
移動平均收斂離散(MACD)
移動平均收斂離散,英文簡稱為MACD,這種方法平滑數(shù)據(jù),消除了某些趨勢,強調或者顯示了周期,某些時候會和不滯后于市場,和市場趨勢吻合。這種方法用兩種指數(shù)移動平均的差異來構建,其中較短期的移動平均線的相關分析中表示對趨勢較快的反映,而較長期移動平均線反應較慢,對底層價格變化的互動較小。
MACD方法通過交錯點來產生買入和賣出信號。當MACD超越其信號線,投資人就買入。當MACD下降到信號線以下,投資人就賣出。我們通常用12天和26天指數(shù)移動平均線創(chuàng)建MACD線,而MACD的9天的指數(shù)移動平均線作為信號線。MACD的值減去MACD信號線的值,就得到MACD的歷史分布。 n MACD = 12天為周期的收市價格的指數(shù)移動平均線 - 26天為周期的收市價格的指數(shù)移動平均線; n MACD信號線 = 對MACD線以9天為周期的指數(shù)平均線 n MACD歷史分布 = MACD – MACD信號線
通常MACD有三種類型信號發(fā)生,即信號線超越;零超越和離散。 n 當MACD線超越信號線。就產生買入信號,也稱為牛市超越。當MACD線低于信號線時就產生賣出信號,也稱為熊市超越。 n 零超越提供了趨勢方向變化的證據(jù)。當MACD線中較快和較慢的指數(shù)移動平均線沒有區(qū)別時,MACD線就會穿越零值。MACD從正值變?yōu)樨撝荡硇苁械膩砼R,而MACD從負值變?yōu)檎当硎九J械膩須v。 n 離散信號表示MACD線和股票價格的差異。當股票價格創(chuàng)下新低,但是MACD線并不一定是最低,這時MACD線和價格的正差異也升高。這種狀況被解釋為牛市的到來,也就是說下行趨勢即將過去。當股票價格到了新高而MACD并沒有最高,顯現(xiàn)了負差異。這種狀況解釋為熊市的到來,也就是說最近價格上升的趨勢不會在繼續(xù)。在相關分析中,明顯的峰值或低谷比不明顯的圖形更加有代表性。
動態(tài)震蕩指標
動態(tài)震蕩指標是超買和超賣指標,表示市場是否進入新高/新低,或者還在中間狀態(tài)運行。我們一般用三種動態(tài)震蕩指標,稱為快速%K;慢速%K(也稱為快速%D)和慢速%D。 n 快速%D測量最近價格相對于過去n個階段中最高和最低的相對位置。其中n是為指標設置的,確定階段的時間段(或者周期)。 n 慢速%K的計算和MACD線中信號線的計算一樣,一般按照3天的移動平均來計算。即%K = 100×(收市價格–L)/(H–L),其中H和L是過去n周期中最高和最低的股票價格。 n 慢速%D是%K線的3-天簡單移動平均線。
動態(tài)震蕩指標表示了相對于最近市場高位和低位收市價格的位置。當收市價格接近最近價格范圍內的高位時,指標的數(shù)值就較大;而收市價格接近低位范圍時指標就較低。這類指標靠比較收市價格和價格范圍來預測趨勢轉折點。其道理是在轉折點之前價格趨近于最近價格范圍的極端值,即當交易動能開始減弱,交割價格會在價格范圍的上部邊界上重復,造成動態(tài)指標在價格趨近最高之前就發(fā)出信號。一般快速%K超越%D線時表示信號發(fā)生了。
其他交易模型
均值回歸
均值回歸的基本思想是未來的最高或者最低價格都是暫時的,長期而言價格會趨向平均價格,偏離平均價格則被預期會拉回均值。因此,識別了交易范圍并計算平均價格后,當當前的市場價格低于平均價格,則市場價格被預期會下降,因此是賣出信號。
一排3點
一排3點的原則是滿足下面三個條件時,就是買入信號: l 今天的收市價格大于5天前的收市價格; l 5天前的收市價格大于10天前的收市價格; l 10天前的收市價格大于15天前的收市價格。 賣出信號是: l 今天的收市價格低于5天前的收市價格; l 5天前的收市價格低于10天前的收市價格; l 10天前的收市價格低于15天前的收市價格。 當我們只采用一種信號時,這種策略是讓我們最早進入趨勢的方法。 作者陳公越,加拿大Waterloo大學管理科學博士,香港科技大學金融數(shù)學專業(yè)客座教授,同時指導多個產學結合研究項目,發(fā)表多篇學術論文和著作,包括上??萍汲霭嫔绯霭嬷鳌督鹑陲L險測量和全面險管理》等。現(xiàn)任杭州巨慧達科技有限公司董事長、杭州數(shù)論信息技術有限公司技術總裁。 |
|