執行做市策略是否需要開發專門的交易系統?
做市策略(例如國內的期權做市)對交易系統的要求是否比普通的alpha策略、CTA策略要求高?特殊性體現在哪些方面?如果需要單獨設計交易系統的話,架構大概是怎樣的?(不是想問核心,請大家介紹一下基礎、共性、理念類的東西就好了)
1需要
2這種問題估計沒人會蛋(sha)疼(bi)到在知乎上把自己的商業秘密抖出來。。。---------------------------------------
好吧,覺得這樣的回答有點不好,但題主我實在忍不住吐槽,期權的那些模型定價你從書上都能找到模型,其實做市真正的核心競爭力是系統,很難有人能給你把核心的說出來。
設計系統架構你先要對做市流程熟悉,要是你沒接觸過期權做市,沒用過相應軟體,完全靠想像或者別人說的,做出來的東西會比較危險。。。
如果你了解做市業務流程,大體的架構有了,剩下技術上就主要是一些延遲,回報上面的問題,期權做市合約多的時候數百個,如何分配有限的限流,如何加速反應速度,定價上,網路上,說開去就太多了。。。
期權做市,只有第一,沒有第二,前幾名吞噬了大部分成交量,做得好的大多軟體經過長期磨合。
如果你實在很感興趣,要堅持,可以買個現有的學學。
-------------------------------------
最後贊一下黃charlie認真的回答,不過個人覺得做市不是一個量化平台加加策略,而是有著獨特架構的一個獨立軟體;)-----------------------最後再來一句,要是你是認真的,買一個現成的學吧,細節實在很多。要是你就隨便問問,那。。。跟alpha或者cta肯定不一樣,主要在速度、風險管理還有跨品種交易。模型層面本身就複雜,牽扯較准、自修正和速度。相對於一般線性的alpha,cta策略,很多細節很關鍵。
一般來講做市的機構本身應該已經有自己的量化開發平台,對接交易執行的系統,還要過風控。比如在龍軟上寫好策略,對接恒生UF的風控和交易。當然有些品種和策略對速度要求比較高,就要求恒生O32一類升級極速交易和風控模塊。風控還要根據你的對沖設置指標。單獨為一個新品種而建立新系統的較少,一般來說所用系統平台開發商都會提供新的模塊或者升級以滿足部分特殊需求。
如果不是大機構,自己可以選擇用C++寫好核心策略,封裝後用python、java一類組合到已有的交易平台,然後用比如UFT2或者FIX,CTP一類的對接到櫃檯。最簡單的個人如果想跑一些公開做市策略,直接策略寫好(做市對速度要求高,用C++吧,記得伺服器放交易所邊上),對接ctp或者fix就可以。當然你的broker能提供支持期權的fix或者ctp,最好還能讓你伺服器託管到它的機房。
做市策略就不說了,其實目前來看獎勵機制是很好的,但是估計名額比預期少。策略里具體哪些細節能提高表現,現在還不清楚,要看實盤。不過目前來看,從零開始寫的人很少,很多都在現有平台的基礎策略上改的,同質性高。需要。
架構Arthur Huo已經說得很全了,我來補充一個抽象些的概念。
和CTA、常規高頻策略最大的不同:你的系統在大量的合約上(國內目前是50+,未來估計最少200+吧)運行著對TICK級數據進行計算響應的報價演算法(或者叫策略)。
在量化平台上,策略演算法的運行通常存在三種模式:獨立進程、獨立線程和事件驅動(最後這個模式可能命名不當)。
這三種模式的安全性從高到低,系統開銷同樣從高到低。
據我所知在大智慧的DTS平台上,所有策略都是在獨立的進程中運行。這種方案提供了最好的安全性,一個策略進程崩了不會影響到其他的進程,但是涉及到進程間通訊,同時進程的開銷大,歐美那個AlgoTrader也是採用的這個模式。
多線程模式中,如果一個策略線程崩潰了,整個交易程序就會崩潰,所以安全性較低,但是相對開銷也較低。
以上兩種模式並不適合需要同時並行運行極多演算法的情況,進程間通訊的開銷,進程、線程切換的開銷等等都太高。
所以最合適的就只剩下了事件驅動模式,基於生產者-消費者模型,當出現數據爆發、成交爆發的時候,事件調度引擎還可以有選擇的調整演算法響應的優先順序,甚至忽略某些延遲大了的事件。期權做市是需要的,期權比較複雜,對應股票或者股指的變化會造成多個期權產品價格的變化,不同的strike,不同的maturity,和股票,期貨還是不一樣的
不能說的太詳細,簡單說一下吧。
Core pricing + circuit breakers,Dealer to client quoting + order mgmtDealer to dealer hedging + order mgmt.broker/exchange connectivity.
Market data (可能是broker data 的超集)最後加個GUI。在期權做市商開展業務前,首先要決定是購買一套商業系統還是自建一套內部系統。市面上已經有很多期權做市商系統,比如Actant, Horizon, Orc, RTS等等。購買商業系統,可以降低開發成本,做市商可以把更多的時間和精力用於研究策略而非編寫軟體。軟體商也會提供售後服務和使用培訓,降低了維護成本。同時,商業系統的客戶群比較廣泛,經過較全面的測試,能夠滿足多樣的需求,出現未知錯誤的概率較小。因此,對於中小型的做市商來說,直接購買一套成熟的商業軟體系統是兼顧效率與成本的合理選擇。然而,對於大型做市商來說,外購軟體有一些劣勢,通常他們都會選自建系統。下面從兩個角度分析自建系統的優勢:
一、源代碼
首先,做市商擁有自建系統的全部源代碼,而外購系統是黑盒或灰盒,因此用戶不(完全)清楚其內部實現機制。對一個承擔繁重做市義務的做市商來說,必須做到從內至外對自己的系統全面了解掌控,這樣才能從開發的角度將系統操作風險降至最低,從而最大限度地去滿足交易所規定的做市義務。
自建的系統雖然開發成本高,但是源代碼全部可見,因此在發現錯誤的不利情況下,開發人員能夠第一時間找到問題所在並進行修復,將系統掉線時間縮至最短;而在需要修改已有功能或增加新功能的時候,也能夠較快實現以滿足交易的新需求。
如果外購商業系統,這些耗時周期就會比較長,需要用戶先向軟體商提交問題或新需求,軟體商審核確認問題所在或評估新需求的可行性和實現難度,反饋用戶之後再確定開發、測試、上線流程,還需要聯繫其他客戶聯合測試以確保兼容性,這樣的一個長周期對一個要求每天滿足報價義務的做市商來說是很難接受的。
二、系統優化
其次,做市商可以對自建系統按照自己的想法盡量優化,從硬體到軟體,從伺服器的CPU、內存、網路設備到操作系統和編程語言的選擇、代碼的架構和風格,做市商可以根據自己的需求精心挑選合理搭配,達到最優化的目的。
期權做市商系統本質上和一般的電子交易系統相同,但是由於期權市場的特性,做市商對低延遲高吞吐有著更高的要求。我們知道一個標的資產可以衍生出多個到期日多個行權價的期權,而當標的資產的價格變動的時候會引發期權價格變動,這是期權市場和股票或期貨市場的一個重要區別。當一支股票或期貨價格波動的時候,期權做市商經常面臨著需要迅速更新上百個乃至上千個期權價格的艱巨任務,這就是我們說的低延遲高吞吐的要求,通俗的說,如何在盡量短的時間裡發出盡量多的報價。
和其他的高頻交易系統比沒什麼特別的地方。 只是簡單的策略上的區別而已。具體有什麼mistake先生已經說的很清楚了
回去吧,這種東西,吃飯的傢伙,不可能告訴你的。
推薦閱讀:
※怎樣無套利波動率曲面?
※做市商制度價格是怎樣產生的?價格的調整是根據什麼?
※撮合交易和做市商都有哪些區別?各自的優缺點是什麼?
※做市商交易機制中「做市商」是靠什麼盈利?
※Etrading 做市交易員的一天是怎麼度過的?