演算法交易員 (Algo Trader) 的工作內容是怎樣的?和傳統意義上的交易員有何區別?
本題來自知乎圓桌 ? 資金,市場,交易員,更多交易員話題歡迎關注討論。
Algo Trader很少直接手動下單交易,通常是使用編寫的程序來執行自己的交易策略。
這類名詞在業界沒有統一的定義,為避免誤導,我們這裡只討論高頻交易範疇或者更準確一點是低延遲交易的Algo Trader,而不討論通過量化方法進行的日內少量甚至日間交易的交易員。在這個範疇之內我們不再區分Quant Trader和Algo Trader。對應的,傳統交易員或者說Manual Trader範圍,也有一些是進行日間多次交易的交易員,比如國內期貨界有所謂炒單和炒手的概念。
Algo Trader或者Quant Trader工作的特點通常是:
花大量時間處理數據
他們的工作根據風格不同,或者會把更多時間放在看盤尋找靈感,或是使用數學工具從中挖掘出有意義的信息來繼續研究。不管比例如何,他們都同樣會花大量時間將自己的看法和結論在歷史數據中進行檢驗,而手動交易者則較少的進行有意識和系統性的數據檢驗。
更多的團隊合作
對於高頻交易來說,交易系統的低延遲十分重要,所以交易系統的執行部分通常由低延遲開發者進行開發,交易員只負責核心的策略部分的開發。有一些交易者甚至會配備所謂的Quant Developer來負責實現核心策略的開發,而讓自己騰出更多的時間做研究。相比而言,傳統交易員更容易單打獨鬥。承擔的心理壓力較低
由於低延遲交易次數多,持倉時間短,通常他們所面對的風險是明顯小於手動交易員的。要麼好長時間做不出一個好的策略,要麼做出來則穩定賺錢。而手動交易員則更容易面對盈利和虧損的起伏,需要較長時間的鍛煉才能在心理上入門,而即使在很有經驗之後,仍然要面對明顯更大的心理壓力。當然承擔風險也使得運氣好時,手動交易員中更容易出現「明星交易員」,在技能和運氣的雙重作用下拿走大額獎金。交易文化不同
最後,上面所說的區別會衍生一些工作文化的區別。手動交易員由於工作壓力較大,通常會形成一種釋放性的文化,他們通過外向性的社交來維持一個好的自信從而抵禦較大的精神壓力。而量化交易員圈則比較少形成外向性社交文化,而通常較為智力導向,傾向於內在審視。總體上來說,量化或者演算法交易員的比例會越來越大,交易員這個圈子裡,十分聰明的人也會越來越多。補充一下盧大的,在銀行里,Quant Trader和Algo Trader是有區別的。前者主要指用數量模型和計算機模型進行交易(做市、對沖、風險管理等),而後者主要是幫助客戶維和使用銀行的Algo產品,工作性質前台支持人員差不多。
Algo的特殊意義來自於早些年銀行開發的,幫客戶自動執行大單的程序被成為Algo。這些執行策略大多對市場走向沒有見解,更專註減小大單對市場的影響,降低交易成本這個問題。最著名的開山鼻祖就是TWAP和VWAP策略,現在已經衍生出無數個變種。
我當年在瑞銀的時候曾經幫助外匯部門開發ALGO產品。瑞銀的股票Algo拿了許多大獎是個明星產品,我當年花了半年就把它們搬到外匯市場上來了。這類只負責執行的Algo產品並不複雜,管理維護它們的Algo Trader的工作挑戰性和壓力也沒有那麼高,和Quant Strategist、Quant Trader的工作性質有很大的區別。
來值乎問我問題瀉藥。早上快速寫幾句吧。algo trader這個東西在街上並沒有明確的定義,上面梅大和盧大已經介紹不少了。這裡再增加一些。在某些統計套利和HFT高頻交易的公司,它指從信號模型(alpha)、執行演算法(algo)、實際交易(execution)全過程都負責的人。注意這並不是每個公司都是這樣的,有些公司里這些東西是兩撥人或者三撥人,做模型的叫quant researcher,做執行演算法的叫quant developer,做execution的「人」有時候叫algo trader有時候叫quant trader,之所以要打引號,是因為這個第三撥"人"它經常並不是一個人而是一個程序。
就與普通voice trading(電話、IB聊天、DMA等途徑)相比,algo trader自然是用DMA的時候較多,所以多多少少肯定是要跟編程和數據打交道的,視具體情況而言,做全過程的那些人會用R和python多,只做execution的則是java和C++居多。至於交易模型的工作內容,有人喜歡在紙上搞(比如我),有人喜歡在desk邊上架個白板上畫,,,
梅大上面說的那類應該是D1之類的electronic execution(電子交易),確實和買方差別較大,各家投行都有,主要服務懶得自己搞DMA交易演算法而用投行pre-trading desk業務的買方。algo trader,傳統意義就是VWAP,TWAP這些東東以及其衍生出來的拆單演算法,樓上的梅師兄解釋的非常好,他本人也是這領域的專家,在此受教了。
不過話說來回,這個詞其實也沒個準確的定義。廣義上來說,「用計算機程序代替手工交易員來執行下單的交易」都是algo,所以algo trader顧名思義也就是用程序來對市場做出合理的判斷後執行交易的交易員。
目前國內的量化公司,分工還不是很細,尤其是一些小的工作室和剛起步的fund,基本上一個人把活全乾了,累得跟狗一樣,這種人就是我口中的algo trader。其實按照國外大的量化公司來說,有如下幾個分工:1.data analyst,負責數據購買,落地和整理,大的公司的data analyst都會開發自用的資料庫,負責對公司的數據整合規劃,通常這種analyst干兩年轉研發崗的居多,也勉強算半個researcher。所以對於新人而言,這個崗位是一個比較好的切入fund的職位;2. quant researcher,主要負責coding策略和維護現有策略,包括backtest和forwardtest這兩塊,俗稱矮人礦工;3. IT support,負責介面維護、代碼管理和提供coding支持,俗稱金融碼農;
4. PM,組合管理崗,負責對公司整體的portfolio下的各個策略分配係數,並按照市場行情靈活調整各類策略的比例,與績效最為相關的崗位,最容易被老闆操練,業績不好老闆第一個找的人,最容易被研發吐糟的人,最容易被風控打小報告的人,總之就是最容易拉仇恨的那種存在。這類崗一般由researcher轉崗而來,負責和實盤相關的大大小小的事情,基本上來說money相對也是最多的。用火影裡面火影裡面迪達拉的話來說,就是——藝術就是組合。基本上10-100個矮人礦工對應一個PM;5. RM,risk manager,風險控制崗,顧名思義;6. 此外作為執行程序無法完成的下單為了補刀而存在的交易員,也是一類了;Sell side的Algo/Quant Trader和buy side seeking Alpha的Quant Trader很多時候的工作是不太一樣的:
- Sell Side更多時候做的事情是幫助execution,即如何減輕對市場的衝擊,演算法都是非常常用的一批,以前我基本上都寫過,然後會有brokerage的公司買去我們的系統在我們的Algo基礎上進行一些他們的細微改動。更多時候這些algo都是提供一些execution的便利,並不能從中直接獲利,但是可以減低cost抑或是提供止損等便利,譬如:
- Iceberg Order. 顧名思義就是你想sell掉一個大山般巨大的position,那麼如果一個巨大的volume的order落到市場上是自殺式行為,會造成價格的大幅下降。那麼就好比冰山一樣,每次只把你的sell order露出來上面的一小部分即可,然後fill掉了繼續落下面一小部分。該演算法並不難,很多時候track住last trade基本就可以了。
- Peg Order. 很多時候是track住order book裡面的一個depth level的order來動態調整,比如我就是落一個peg order peg住best bid然後和他保持一定的offset。這個演算法就比較麻煩,需要keep an eye at order book並且防止被市場上其他玩家給利用。
- 和limit有關的各類synthetic order,比如stop limit etc etc
- Buy Side的Algo Trader有會細分很多種:
- 高頻交易的更多時候需要對market的微觀了解非常清楚,比如香港市場和美國市場會有很多交易的細節不同,如果不清楚你的algo會造成很大的問題,也只有在這個基礎上才可以基於各種order book的高頻演算法來進行開發。也有很多HFT algo trader不得不參與performance tuning中。我們當年為了一個basket order的HFT演算法奮鬥了半年,每天一到office第一件事就是看看performance metrics降低了多少個微秒...
- statistics arbitrage 又需要對數學統計非常在行,更多時候偏向於data research
- Seeking Alpha, 各種data crunching或者是對一些特殊市場現象先觀察然後去用數據驗證
- machine learning...? 似乎也是有不停被提到,那就是挖礦挖礦挖礦
寫著簡單的程序,賣弄著複雜的模型,忽悠著不明真相的觀眾。人生如戲,全靠演技。
我做過三年的演算法交易,用的是文華財經軟體。我來談談演算法交易員的工作內容。正如 @盧旺杉 所說:「Algo Trader很少直接手動下單交易,通常是使用編寫的程序來執行自己的交易策略。」 由於我是單幹,所以具體工作內容如下: 1、設計交易策略並編程實現。這個工作一般是在非交易時段完成。
2、在交易前半小時啟動交易軟體,並檢查載入的參數是否正確(有時會出錯);
3、在交易時段實盤觀察系統運行情況,主要任務是:(1)檢查軟體是否按策略出開倉或者平倉信號;(2)根據實盤運行情況來思考自己的交易策略是否合理、是否完備。 對於設計好了的自動交易策略,只要網路正常,可以放心交給它自動運行,實現真正的程序化交易。 2014年春節前我回老家過年,書房裡的計算機整整運行了15天,自動根據既定策略完成所有交易。 實話說,我還是喜歡程序化交易模式,它能快速而嚴格執行交易策略。能有效克服手動交易的如下缺點:(1)手動下單容易猶豫不決;(2)一旦合約多了,人工看盤忙不過來;(3)手動下單容易衝動下單;(4)它能24小時值守不疲憊。從另一個角度解釋一下--實際操作。
一般會有配algo GUI ,可以看到報價,倉位,orders, 各種model實時參數,市場數據和一個灰常重要的紅色按鈕。自己猜幹什麼的
每天看盤,看行情看單,早上switch on 下班switch off 或者另一個時區的人接過去。
重要消息的時候高度警惕,重要的model聽不到的消息發布的時候最能體驗價值,有trading idea過去跟quant和 it商量,blah
偶爾調幾下模型參數,不過這種情況越來越少了。推薦閱讀: