C++在低延遲交易系統中的運用
在金融衍生品市場中,做市商(Market Maker)肩負著為期權期貨產品報價(Quoting)的義務。“低延遲”對於這類公司而言至關重要,如果你的速度比別人快,同樣的報價就可以優先成交,錯誤報價可以快速撤回,還可以抓市場上的錯誤定價進行套利。顯然,人工下單肯定不可行,而且面對種類繁多的產品,人工報價容很易出現失誤,所以我們需要開發交易系統來實現“低延遲”。
如今,大部分衍生品交易系統都是用C++實現,這固然與C++的一些優良特性密不可分,當然也有歷史方面的原因。金融衍生品大約發展成熟於20世紀80年代,當時世界上主流的編程語言有C,C++,Fortran等。現在C++主要的競爭對手Java和C#都還沒有出現。而C和Fortran並不太適合寫大型程序,所以,C++在衍生品交易領域就成了主流的選擇。
我們再來了解一下C++的歷史。它發明於20世紀80年代,大約經歷了三個發展階段。第一階段因為跟C有很好的兼容性,效率與C接近,而且還面向對象,在工業界中占據了相當大的份額。第二階段由於標準模板庫(STL)和Boost的出現,泛型程序設計占據了越來越多的比重。同一時期由於Java,C#等的興起,搶走了C++的部分市場。第三階段至今,模板元編程以及新特性的加入使得C++重新煥發活力,同時也變得更為復雜。
C++相比於虛擬機語言Java和C#,它直接把源程序編譯為機器碼,同時可以在編譯及鏈接期間進行優化,以獲得性能的提升。相比於動態語言Python和Lua,它減少了運行時的動態類型檢測。因為C++沒有垃圾回收(GarbageCollection)機制,所以不用擔心延遲的不確定性。又因為它能直接編譯成機器碼,可以做底層優化,例如使用內部函數和嵌入匯編語言。
此外,C++做並行計算也相對比較容易,比如可以直接用CUDA。但是C++也存在諸多問題,比如編譯鏈接速度慢且容易出錯,缺乏其他語言常見功能的支持,開發效率低等等。但是C++也一直在發展,相信越來越多的問題會得到解決。所以,如果你想開發高性能的服務器程序,那麽C++是一個很好的選擇。
但是,低延遲與C++並不能劃等號。有些公司用經過優化的JVM,用稍顯小眾的Ocaml, Haskell, Erlang等語言實現交易系統,也有不輸C++的性能。與整體系統架構設計相比,編程語言的影響並沒有那麽大。交易公司也會租用交易所的機位,用光纖直連,以及把不需要經常變動的部分用硬件實現等等來降低延遲
綜上所言,C++在交易系統中的廣泛運用既有歷史原因,也跟自身的特性密不可分。隨著信息技術的發展,C++也將在金融交易市場中扮演著日益重要的角色。如果你想一起塑造衍生品交易市場的未來,歡迎加入我們。
【社招】中/高級C++ Developer-頂尖金融交易公司-Akuna Capital
Company: Akuna Capital
Website: www.akunacapital.com
#香港市場交易 #比特幣#加密數字貨幣交易 # C++# 低延遲#Linux#量化交易
? 你對金融科技有興趣嗎?
? 你對期權,期貨,股票交易有興趣嗎?
? 你對量化交易系統有興趣嗎?
? 你對自動化交易有興趣嗎?
? 你對高性能系統有極致追求嗎?
【關鍵技術】 C++11 , C++,Linux, Python, multi-thread, template
【應聘方式】
? **郵箱: [email protected] ,請註明申請職位
? 微信號:akunacapital
? 網站:www.akunacapital.com
C++在低延遲交易系統中的運用