國內做 Algo execution 的情況怎麼樣?

這裡的algo execution指的是為buy side公司(基金公司)執行大的訂單,優化交易步驟,減小交易成本(minimize t-cost, minimize market impact and trade off with risk). 是否有人或者公司在做?一般國內的buy side在execution的時候怎麼做?自己做還是讓其他公司來做?


有點,簡單的演算法單,訊投或者恒生改的券商pb就能實現。高級點的,中信從Citadel買了套還不錯的。

不過實際上,我國根本沒法用。一是,一個賬戶有400次報單的限制,超了有人給你打電話,再犯就封號了。像做alpha的,一次調倉一百多支股票很正常,還演算法拆單,沒成交補一兩次單就差不多快用光額度了。

另外,用演算法單,很容易被別人搞,說你報單次數過多,或者撤單比過高,是操縱股市,惡意做空。現在券商都風聲鶴唳的,搞演算法交易的基本都拿著做反面典型了。目前國內這塊要把國家放在最前面,技術什麼的,國內又沒有什麼高頻演算法在盯著你,更是連t+0都沒實現,買點美國淘汰的東西就足夠用了。


我是這樣理解這個問題的:

—是否有公司在做?中國我還沒有看到專門只做Algo execution公司。券商和投資公司都要做,像國泰君安這些。Barclays, UBS, Credit Suisse等國外大投行都要做。

—怎麼做:

——初代Algo execution,2種普遍的被動策略(passive execution)

——VWAP(Volume weighted average price )和TWAP(Time weighted average price),

———VWAP策略:即按照每次成交量和總體成交量相同比例的方式成交。一般做法是首先將今日的成交次數按照等時間劃分為N個點。再預測每個點的成交量和總體成交量,算出每個點成交量在總成交量裡面的比例,按照比例拆分倉位。比如現在成交量是V1,預測今日總成交量是V0,那麼VWAP策略就以V1/V0的比例拆分你現在所有想成交的倉量。就是vwap的字面理解。缺點是需要預測,預測總體的成交量和你馬上準備交易的點的成交量。

———TWAP策略:定義這樣說:Equal amount of shares in each period of time. 以某一特定周期統計每個trader的成交情況來計算平均值。一般是計算Bar的open, close, high, low 求均值,再除以成交量。TWAP的目的就是找到一個公平的價格,避免在拆分倉位的時候,定價不合理。缺點是不一定準確:比如一個波動很大的Bar有90%的時間是在高位,只有10%的時間波動到了低位,但是求平均,就放大了低位的影響力,讓TWAP小於一個真實的均值。

——改進VWAP和TWAP:

———改進VWAP:動態調整。不根據太遠的歷史數據來預測,而是實時預測,比如用前幾分鐘數據預測後幾分鐘。具體參見:演算法交易-以VWAP為例的策略筆記

———改進TWAP:動態調整。仿照MA的方式調整:或者是加入時間權重,或者是在某點全部reset之前的數據,以此達到更快跟蹤。

——VWAP versus TWAP

———上面已經提到了各自的缺點。當價格變化較慢且有趨勢存在的時候,VWAP和TWAP類似,但是在市場震蕩期間,兩者會產生偏差,如下圖。但是流動性不高的市場一般用TWAP替代VWAP。

——幾種其他方法:

———Almgren-Chriss Trajectories: 公式推導見 http://www.math.nyu.edu/faculty/avellane/QuantCongressUSA2011AlgoTradingLAST.pdf

公式:

Q(t)是還需要成交的倉位,即你的剩餘倉位。t是成交的時刻,T是這一段時間。

Omega是參數,與成交的時間成正比,與市場受到成交衝擊而波動的彈性成反比,受價格波動的影響。

Omega不同,對應的execution每時刻的成交量不同. Omega的值越大,應該越快交易更多的頭寸。Omega=0時,就是最基本的VWAP和TWAP策略。

見下圖

———Almgren-Chriss Trajectories的改進,single update和Multiple update:通過動態判斷來動態調整Omega。

因為是截別人的圖,下圖中Omega變為了K,但都是一樣的。

single update:

Multiple update:數學太複雜,推導詳見: http://www.algorithmictradingpit.com/lorenz-adaptive-arrival.pdf

———Adaptivity strategy:自適應策略,即是1.當流動性好的時候交易更多,2.當價格波動風險更大的時候交易更多。大家都知道價格的變化主要有2種,一種是均值回歸驅動的,一中是價格的動量驅動的(即慣性)。對於均值回歸驅動的價格而言,如果第一階段成交就能賺錢(或者說符合期望的成交點),已經產生了對市場的影響,那麼第二階段需要加快成交速度,以減小成交價格的風險。但此方法對動量驅動不適用,動量驅動型的市場衝擊會被放大,難以估計放大程度很可能導致第二階段無法以期望成交價買入。

———Daily Trading Cycle:按照人們每日交易習慣來構建自己的成交方式。考慮到人們每日習慣的誤差,加入滿足布朗運動的誤差項。通過之前數據和動態的數據來估計出這個誤差項。策略的構建依然是隨時間的增大而減少成交量。具體方法可以參見上一個的那個鏈接。

效果:

——還有一些方法,最中心的問題都是建立在這幾個點上,分析它們函數的變數和參數可以看到:流動性,市場對成交量的反應彈性,市場波動性,價格的本質驅動力,這幾點最重要。抓住這幾點,就可以用不同的演算法來構建自己的模型。最簡單的做法就是,如果第一階段成交,那麼第二階段成交手數直接減一半,第三階段再減一半,依次成交。謝謝邀請!

仍是學生,希望能多交流

zhangehua1993@163.com

西南財經大學

Baruch College NY


我了解到的情況是,國內有基金在用algo execution, 有自己開發做的,有的是一些軟體中作為附帶的小功能提供的,一些很原始和簡單的拆單,另外,也有專門購買UBS或其他國際投行的演算法交易服務的,但對performance的要求也並不高,反而是對完成率有要求。

總體來講,國內做這塊的需求不大,這是市場現狀決定的,algo execution(尤其是buy side)的主要目的: 減少對市場的衝擊(market impact),降低總體交易成本(trading cost); 目前在國內市場上,現實情況下其實不需要這麼麻煩,因為信息層面的不對稱,基金往往有很長的時間來建倉,人工也便宜,操盤手慢慢做甚至可以使總體vwap更划算。

通俗一點說,就像當年肥沃的東北大地上,「棒打狍子瓢舀魚,野雞飛到飯鍋里」,打獵太容易了,也就沒有多少公司有動力去弄什麼先進的狩獵工具了。


利益相關:我現在所在的公司就是做這個的。

張哥華先生金玉在前,說的已經很好了。我在這裡就補充一點自己的看法。

2015年下半年來,股市動蕩加劇,而且2016年初又鬧出了兩次熔斷。在這個背景下,演算法執行至少可以使你在一個劇烈動蕩的市場上逃命的機會比別人大。我們老大出去忽悠投資,都是介紹我們是做「應急逃生」軟體的。


國內第三方有金納,還有清沌等。前者更多是公募服務,後面更多是私募。


券商pb系統基本都有algo相關功能(中金 中信 中信建投),也有公司專門做algo賣給公募,還有用algo搞個股「做市」的私募。

就券商pb而言,algo成交佔比還是很高的。


推薦閱讀:

如何評價Two Sigma在Kaggle舉辦Financial Modeling Challenge?
高頻交易的業內人士是如何看待謝爾蓋.阿列尼科夫被捕這一事件的?
Google 這樣的公司為什麼不涉足量化對沖或高頻交易領域?
高頻交易系統怎樣在多線程和埠通訊之間取捨?
quant是否是一個江河日下的職業?

TAG:寬客Quant | 基金 | 程序化交易 | 資產管理 | 量化交易 |