在金融衍生品市場中供嚎,做市商(Market Maker)肩負著為期權(quán)期貨產(chǎn)品報價(Quoting)的義務(wù)黄娘∏妥矗“低延遲”對于這類公司以及量化對沖基金公司而言至關(guān)重要,如果你的速度比別人快逼争,同樣的報價就可以優(yōu)先成交优床,錯誤報價可以快速撤回,還可以抓市場上的錯誤定價進行套利誓焦。顯然胆敞,人工下單肯定不可行,而且面對種類繁多的產(chǎn)品杂伟,人工報價容很易出現(xiàn)失誤移层,所以我們需要開發(fā)交易系統(tǒng)來實現(xiàn)“低延遲”。
如今稿壁,大部分衍生品交易系統(tǒng)都是用C++實現(xiàn)幽钢,這固然與C++的一些優(yōu)良特性密不可分,當(dāng)然也有歷史方面的原因傅是。金融衍生品大約發(fā)展成熟于20世紀(jì)80年代匪燕,當(dāng)時世界上主流的編程語言有C,C++喧笔,F(xiàn)ortran等∶毖保現(xiàn)在C++主要的競爭對手Java和C#都還沒有出現(xiàn)。而C和Fortran并不太適合寫大型程序书闸,所以尼变,C++在衍生品交易領(lǐng)域就成了主流的選擇。
我們再來了解一下C++的歷史浆劲。它發(fā)明于20世紀(jì)80年代嫌术,大約經(jīng)歷了三個發(fā)展階段。第一階段因為跟C有很好的兼容性牌借,效率與C接近度气,而且還面向?qū)ο螅诠I(yè)界中占據(jù)了相當(dāng)大的份額膨报。第二階段由于標(biāo)準(zhǔn)模板庫(STL)和Boost的出現(xiàn)磷籍,泛型程序設(shè)計占據(jù)了越來越多的比重。同一時期由于Java,C#等的興起现柠,搶走了C++的部分市場院领。第三階段至今,模板元編程以及新特性的加入使得C++重新煥發(fā)活力够吩,同時也變得更為復(fù)雜比然。
C++相比于虛擬機語言Java和C#,它直接把源程序編譯為機器碼周循,同時可以在編譯及鏈接期間進行優(yōu)化谈秫,以獲得性能的提升扒寄。相比于動態(tài)語言Python和Lua,它減少了運行時的動態(tài)類型檢測拟烫。因為C++沒有垃圾回收(GarbageCollection)機制,所以不用擔(dān)心延遲的不確定性迄本。又因為它能直接編譯成機器碼硕淑,可以做底層優(yōu)化,例如使用內(nèi)部函數(shù)和嵌入?yún)R編語言嘉赎。
此外置媳,C++做并行計算也相對比較容易,比如可以直接用CUDA公条。但是C++也存在諸多問題拇囊,比如編譯鏈接速度慢且容易出錯,缺乏其他語言常見功能的支持靶橱,開發(fā)效率低等等寥袭。但是C++也一直在發(fā)展,相信越來越多的問題會得到解決关霸。所以传黄,如果你想開發(fā)高性能的服務(wù)器程序,那么C++是一個很好的選擇队寇。
但是膘掰,低延遲與C++并不能劃等號。有些公司用經(jīng)過優(yōu)化的JVM佳遣,用稍顯小眾的Ocaml, Haskell, Erlang等語言實現(xiàn)交易系統(tǒng)识埋,也有不輸C++的性能。與整體系統(tǒng)架構(gòu)設(shè)計相比零渐,編程語言的影響并沒有那么大窒舟。交易公司也會租用交易所的機位,用光纖直連相恃,以及把不需要經(jīng)常變動的部分用硬件實現(xiàn)等等來降低延遲辜纲。
綜上所言,C++在交易系統(tǒng)中的廣泛運用既有歷史原因拦耐,也跟自身的特性密不可分耕腾。隨著信息技術(shù)的發(fā)展,C++也將在金融交易市場中扮演著日益重要的角色杀糯。
另外相比國外扫俺,由于制度的原因,國內(nèi)股票市場比國外更加無效固翰,這意味著有更多的Alpha收益可以攫取狼纬,所以近年來國內(nèi)量化投資領(lǐng)域一直在快速發(fā)展羹呵。
Recruitment Consultant:Mike:微信authorwang,有國內(nèi)頂級對沖基金/券商C++ developer的機會(base 上海疗琉,北京冈欢,杭州(最緊急)),本碩名校985優(yōu)先盈简。