演算法交易與相關研究整理

若您讀過與金融交易相關的專書或文獻,可在此交換心得。或若您有好的交易模型也可在此分享模型內容與績效報告。

演算法交易與相關研究整理

文章clcy 發表於 2009年 12月 31日, 14:22

最近的發文中,一再提及演算法交易策略,並提到用於交易執行的演算法交易策略,可以達成程式交易策略的設定績效目標,並達到保護程式交易策略的效果,避免910慘案的發生。
由於演算法交易是目前研究的主題,在此從文獻中整理一小部分,羅列於下(由於擔心太過學術性,讓網友反胃,我略去技術細節…,另外,必須特別聲明,這些內容整理自我們收集到的文獻,不敢略美;雖然,我們據此做了一些研究,但還未成熟到可以公開…)

演算法交易又稱為自動交易(Automated Trading)、無人執行交易(Robot Trading),係「在程式交易模型中加入演算法,設定目標並在限制條件下,設定最佳交易時點與交易量,並自動執行交易命令」,由於具可變與不可預測性,又稱「黑箱交易」。
演算法交易的實現必須透過資訊系統之應用,借助電腦執行各種交易策略,藉以銜接不同定量交易策略,為不同複雜交易模型提供執行方法。
演算法交易用以設定下單最佳執行路徑、執行時間、執行價格與執行數量的交易方法,以實現並保護程式交易的佈單;不同類型交易模型之佈單最佳化目標不同,趨勢交易者希望交易能迅速完成,但可接受較高成本;價值型交易者傾向延長交易時間以得到較佳價格;而套利交易對於價格極為敏感;而機構投資者希望提高交易隱蔽性與並降低衝擊成本。
演算法交易功能包括了,智慧路由選擇、降低衝擊成本、提高執行效率、減少人力成本與增加投資組合收益;透過演算法交易可:(1)降低交易市場衝擊,隱藏交易動機;(2)完成複雜程式交易,提高交易效率;(3)降低交易成本,提高投資報酬率;(4)降低人力成本,提高交易工作效率與品質。
演算法交易發展過程,起源於80年代後期美國證券市場全面電子化交易開始發展;NYSE在1997年開始推動分數制報價制度改為十進位小數點報價,降低了造市者的交易優勢、降低了市場流動性,也改變了金融市場微觀結構。市場流動性的降低導致機構投資者使用電腦分割交易指令,以執行更優越價格,此即最初的演算法交易策略—VWAP與TWAP演算法所希望達成的目標。交易者希望藉由「直接趨近市場」(Direct Market Access)的交易方式提高交易效率。
演算法交易不僅被使用於大量交易的買方,提供流動性的造市者、避險基金均使用之。對於同時在許多不同市場交易的商品,演算法交易提供最佳執行條件的路由選擇。
演算法交易的使用大幅改變下單執行方式,至2007年的統計資料顯示,在美國約有80%的機構投資者使用演算法交易;歐洲市場約有58%交易筆數與50%交易量採用;而倫敦交易所的演算法交易約為總交易量的60%。經濟學人預期美國市場在2010年以後的交易量將以AT,交易仲介者被迫提升基礎建設(Economist(2007))。由於演算法交易使用數量化模型自動產生定時與定量的指令流輸入市場,使基金經理人工作簡化,也促使更多樣化的演算法被開發出來。
關於演算法交易的相關研究整理如下:整體而言,演算法交易的目標在於同時平衡低交易成本與低交易風險兩大目標。市場交易成本包括了,佣金、交易費用、稅、買賣價差、延誤成本、價格浮動、市場衝擊、時間風險與機會成本等項目(其中佣金、交易費用與稅為可見的固定成本,其他為隱藏性的交易成本)。交易成本的負面影響包括:降低預期報酬率、影響定量策略(高頻交易、價差交易、套利交易等)模型實際收益率,以及影響組合實際配置比例等。
交易成本在市場微觀結構分析向為重要議題,Merton(1998)曾指出交易成本的降低是證券創新的動力;如何降低交易過程的成本之問題衍生出所謂「交易最佳化策略」的研究,其目標為「透過對證券交易成本的計算,制定出最佳的交易步驟,以降低交易成本,提高執行效率」。
演算法交易的使用確實能有效降低交易成本(Reinganum,1989),Domowitz與Yegerman的研究(2005)發現未採用演算法交易的交易成本為24 bp,而採用者為10 bp;此外,由於演算法交易將大交易單位切割成小的交易單位,亦可有效避免市場衝擊(Keim與Mashavan,1995);Hendershott、Jones與Menkveld的研究(2008)顯示演算法交易可提高流動性。
在確認演算法交易降低交易成本的功能後,Bertsimas與Lo(1998)研究如何在市場時序價格衝擊下擬定最佳執行策略;Almgren與Chriss(2000)延續其研究,探討訂單切割以至於延緩執行下單時間所可能引致的成本;Obizhaeva與Wang(2005)則嘗試在流動性不能立即滿足下,建立最佳化動態下單策略;Obizhaeva與Wang的研究依據市價報價列表(Limit-order-book)擬定最佳執行策略。
以上研究開啟了演算法交易的實務應用,因此產生更多樣化的演算法交易策略,但也因為背後的獲利潛能,使得更多的演算法交易策略被視為商業機密,只留下有趣的策略名稱與大致目標;公開的策略只是冰山一角,且往往過時,或被懷疑只是用以「釣魚」(引導市場形成特定Pattern以期設計後設策略以獲利)的演算法策略。
演算法交易可視為程式交易的分支,但與程式交易不同之處在於,演算法交易較強調交易的執行,即如何快速、低成本、隱蔽的執行大量下單;而程式交易則強調下單指令的形成;簡單的說,程式交易可定位為「下單管理系統」(Order Management System; OMS),而演算法交易為「下單執行管理系統」(Execution Management System; EMS),演算法交易決定了下單時點、價格與交易量,動態觀察市場條件變化,做最佳化佈單,以維持程式交易策略的績效。
同時,演算法交易策略亦可保護程式交易策略,以避免被人為作價的干擾(試想,上下一筆不合理的買賣報價,就足以讓程式交易策略產生誤判),因此演算法交易可以做為程式交易的免疫策略。
如前述,演算法交易用以「降低市場衝擊成本、提高交易執行效率、增加投資組合收益、降低手續費、減少人力成本、執行複雜交易與投資策略」,提高程式交易策略績效。目前常用的演算法交易策略如下列:
1. 交易量加權平均價格(VWAP):依據歷史成交量在開盤期間的比例,分配下單量,並以交易量平均價格為比較標竿。
2. 保證交易量加權平均價格(Guaranteed VWAP):在VWAP外,再加上保證成交價格與交易量加權平均價格一致,否則交易商將承受損失。
3. 時間加權平均價格(TWAP):在下單期間的時間點平均下單,用於價格衝擊小時。
4. 交易量固定百分比(TVOL):下單量依據成交量同向調整,用以跟上市場趨勢變化。
5. 基準價交易算法(Price In Line):設定基準價,在接近基準價時放大交易,並於交易時間內完成,用於對價格比較敏感的投資者。
6. 執行差額(IS):提供風險參數與承受限度,並平衡降低衝擊成本與風險兩目標做最佳化計算。
7. 隱藏交易單(Hidden):等待期望交易價格出現時立即下單或取消,以確保成交價位並隱藏交易企圖。
8. 游擊戰(Guerrilla):將數量較大的買賣單分散成小單並使用多種交易技術,以免被跟蹤下單企圖。
9. 狙擊兵(Sniper):以分散並隱藏交易方式不暴露交易企圖並偵測對手交易策略,使攻擊性演算法。
10. 搜尋者(Sniffers):搜尋其他交易者正進行的交易,並偵測所選用的下單策略,通常以少量下單誘敵,以待對手上鉤,繼而嘗試增加下單數量。設計目的係找出市場中正使用的演算法或程式交易策略,以從跟作或對作中獲利。
11. 複雜事件處理(CEP):以歷史事件分析確認市場對事件的反應,再依據發生事件啟動交易以期獲利,如關連股票間的價差交易。
12. 模式識別(Pattern Recognition):以資料分析方式找出交易資料間的特徵模式,以形成交易策略。
演算法交易發展至今近30種,並已發展到第四代:第一代演算法為比較簡單的策略如TWAP、VWAP、TVOL、Price-In-Line等;第二代以IS為代表(包括IS、Atopen、Atclose、Float等);第三代以搜尋隱藏流動性(Hidden Liquidity)為目標,如Nighthawk、Sniper、Cobra策略,以因應特殊交易制度;第四代傾向智慧型交易,包括複雜事件處理(CEP)、新聞交易(News Trading)等。這些策略係根據不同市場特性與交易需求進行設計。
clcy
 
文章: 479
註冊時間: 2009年 3月 23日, 19:15

Re: 演算法交易與相關研究整理

文章藍色投機客 發表於 2009年 12月 31日, 15:24

謝謝老師這麼詳細的整理,讓我們可以對演算法交易的瞭解可以更完整。

國外有一小段介紹高頻交易High Frequency Trading的影片,我將重點整理出來。提供給各位先進作參考。

http://www.slideshare.net/derekhcw168/hft-2804520
藍色投機客
 
文章: 50
註冊時間: 2009年 4月 5日, 16:11

Re: 演算法交易與相關研究整理

文章imisskat 發表於 2010年 7月 23日, 15:36

老師您好,最近剛開始研究演算法交易中的VWAP,
但有一點一直看不太明白,想向您請教。
VWAP的定義是:依據歷史成交量在開盤期間的比例,分配下單量,並以交易量平均價格為比較標竿。
在網路上有找到一些資料說最基本的VWAP是用過去幾天的交易量分布的情況來預測今日的,
不過,在分配了下單量後,委託單的委託價格應該怎麼找?還是都是用市價單?
imisskat
 
文章: 1
註冊時間: 2010年 7月 23日, 15:26

Re: 演算法交易與相關研究整理

文章clcy 發表於 2010年 7月 25日, 09:50

imisskat 寫:老師您好,最近剛開始研究演算法交易中的VWAP,
但有一點一直看不太明白,想向您請教。
VWAP的定義是:依據歷史成交量在開盤期間的比例,分配下單量,並以交易量平均價格為比較標竿。
在網路上有找到一些資料說最基本的VWAP是用過去幾天的交易量分布的情況來預測今日的,
不過,在分配了下單量後,委託單的委託價格應該怎麼找?還是都是用市價單?


程序如下,

1.將交易日分為若干時段,依據各時段交易量占預定交易期間預測交易量比例在時段間佈單。
2.在個別時段內下達設定數量的限價單。
3.若限價單未能執行且成交價偏離預定價格,則調整限價。
4.若時段結束未能完成交易,則以市價單完成該時段所有交易。

因此是限價單與市價單交叉使用,
用限價單爭取好價格,用市價單爭取時效,以平衡兩目標
clcy
 
文章: 479
註冊時間: 2009年 3月 23日, 19:15


回到 金融交易讀書心得和程式交易模型報告

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 0 位訪客

cron