高頻交易:數學重要?還是技術重要?
- 2019 年 10 月 4 日
- 筆記

標星★公眾號 愛你們♥
作者:Nathan Doromal、1+1=6

各位讀者,如果讓你回答這個問題:高頻交易:數學重要?還是技術重要?你覺得哪個重要呢?在這裡。我們給大家普及一些涉及高頻交易的專業術語:
- Co-location:主機託管
- Flash Trading:閃電交易指令
- Low Latency:低延遲
- Liquidity Rebates:流動性傭金返還
- Matching Engine:撮合引擎
- Pinging:試單
- Point of Presence:接入點
- Predatory Trading:捕食交易
- Securities Information Processor:證券資訊處理器
- Smart Routers:智慧路由
速度遊戲
在高頻交易(HFT)中,技術幾乎是關鍵。當你在這場玩速度的遊戲中,你需要接近主機(Proximity)、靠譜的硬體和高效的演算法。
▍Proximity
很重要!因為正如你想的那樣,你離交易所越近,你就能更快地接收到最新的波動並對其做出反應。
巴黎證券交易所幾年前搬到了倫敦,更準確地說搬到了巴塞爾登,搬進了一個巨大的倉庫。你想知道為什麼要這樣做嗎?因為巴黎證券交易所的主要贊助者都是英國人。在高頻交易中,地理位置的臨近是至關重要的:事實上,離金融中心越近,交易的流通速度就越快(是的,所有交易仍在納米級上進行)。這就是託管的重要性。
例如,有了MoonX的託管服務,高頻交易將受益於30納秒的優勢:在高頻交易中,電腦以異乎尋常的速度買賣股票。一些市場,比如納斯達克,通常會在向這些「交易員」展示訂單之前,讓他們以30毫秒(0.03秒)的時間快速瀏覽一下訂單。這使得他們能夠很快下訂單,而且他們知道不久後需求將會強勁。每次操作可以賺幾美分,有時一天能賺幾百萬次。一隻行動緩慢的共同基金下了一份購買5000股XYZ股票的訂單。
在30毫秒時間內:
- 訂單在發送到整個金融中心之前,會先發送給高頻交易員。
- 在H + 50毫秒的時間裡,那些先入之見的高頻交易員會以21.00美元的價格買進XYZ的所有股票,然後湧入購買訂單市場。
- 在H + 300毫秒,執行共同基金的順序;高頻交易商以21.01美元的價格出售股票,每股獲利1%,在本案中總共獲利50美元。
- 如果該場景是在MoonX託管中心實現的,那麼就平均交易規模而言,在高頻交易的最大執行性能方面看到有利結果的機會是可能的。
▍硬體
非常重要!而且往往是HFT策略面臨的一個非常複雜的問題。
在中國,每快一毫秒(ms)就意味著能夠比別人獲得更多的機會,同時意味著在這場「負和」的遊戲中有更高生存下去的可能。所以這個領域需要的不僅僅是寫過幾萬行高性能C++編程的人,整個流程還需要很多hardcore的IT知識和經驗,例如linux kernel tuning,網路硬體延遲的優化,對於海量數據的接收、存貯和讀寫,並行演算法,嵌入式系統,而且越來越多的shop採用訂製的硬體,因此對於非x86系統和處理器的深入了解也是非常有幫助的,比如懂FPGA的人(因為要用到低延遲技術):
FPGA(Field Programmable Gate Array)是在PAL、GAL等可編程器件的基礎上進一步發展的產物。它是作為專用積體電路(ASIC)領域中的一種半訂製電路而出現的,既解決了訂製電路的不足,又克服了原有可編程器件閘電路數有限的缺點。

不同體系結構性能和靈活性的比較
▍FPGA 為什麼快?
CPU、GPU 都屬於馮·諾依曼結構,指令解碼執行、共享記憶體。FPGA 之所以比 CPU 甚至 GPU 能效高,本質上是無指令、無需共享記憶體的體系結構帶來的福利。

馮氏結構中,由於執行單元(如 CPU 核)可能執行任意指令,就需要有指令存儲器、解碼器、各種指令的運算器、分支跳轉處理邏輯。由於指令流的控制邏輯複雜,不可能有太多條獨立的指令流,因此 GPU 使用 SIMD(單指令流多數據流)來讓多個執行單元以同樣的步調處理不同的數據,CPU 也支援 SIMD 指令。
而 FPGA 每個邏輯單元的功能在重編程(燒寫)時就已經確定,不需要指令。
馮氏結構中使用記憶體有兩種作用。一是保存狀態,二是在執行單元間通訊。
由於記憶體是共享的,就需要做訪問仲裁;為了利用訪問局部性,每個執行單元有一個私有的快取,這就要維持執行部件間快取的一致性。
對於保存狀態的需求,FPGA 中的暫存器和片上記憶體(BRAM)是屬於各自的控制邏輯的,無需不必要的仲裁和快取。
對於通訊的需求,FPGA 每個邏輯單元與周圍邏輯單元的連接在重編程(燒寫)時就已經確定,並不需要通過共享記憶體來通訊。
▍微波塔
它們已經變得越來越重要,特別是在跨國交易中。訊號不是通過地下光纜發送,而是從一個塔發送到另一個塔,數據包在空氣中的傳播速度比光纖快(大多數情況下)。
舉一個歐美競爭白熱化的例子:GetCo是跟Citadel一樣在高頻領域少林武當級別的公司,他們有一塊業務每年穩定盈利50+ million,突然有段時間這塊業務賺不到錢了,這是為什麼呢?原來有家公司花重金鋪設了從芝加哥到紐約的微波塔,而微波在空氣的轉播速度快過光纖傳輸訊號的速度,就這看似微乎其微的差別影響了一大塊業務線。
此外,操作速度也是原始機器溫度的函數,這一點也很重要!
▍演算法效率
它是一個深層次的問題。你需要知道簡單操作(如乘法和加法)的確切處理速度(除法非常昂貴,應該不惜一切代價避免)。此外,每個操作的累加意意味著你希望你的模型非常簡單。一個使用500個特徵的模型常常會比一個只使用3個特徵的模型表現得差,即使這個模型「更具預測性」。這是因為,如果你不能成功地根據這些預測採取行動,可預測性就沒有任何意義。
數學遊戲
高頻交易中有大量的數學運算。請注意,複雜的數學通常包括研究和創建策略。雖然演算法需要簡單,但研究不必如此(可以很深入)。
在基礎層面上,有古典統計學,你需要對所有假設進行徹底審核。金融數據雜訊非常大,在前期研究分析時,需要非常小心!
▍機器學習(Machine Learning)
通常,機器學習應用高頻交易意味著線性模型上運行複雜的靜態擬合。比如支援向量機(SVM)和神經網路通常很難應用,很大程度上是因為市場雜訊太大。在樣本內/樣本外方法之外,圍繞目標函數有很多可以研究的地方。
▍目標函數
幾乎所有的機器學習演算法最後都歸結為求解最優化問題,以達到我們想讓演算法達到的目標。為了完成某一目標,需要構造出一個「目標函數」來,然後讓該函數取極大值或極小值,從而得到機器學習演算法的模型參數。如何構造出一個合理的目標函數,是建立機器學習演算法的關鍵,一旦目標函數確定,接下來就是求解最優化問題。
關於目標,你必須知道你要預測什麼。你是否選擇在未來5分鐘後買進某一期貨合約?下1筆交易單,還是10筆?使用當日成交價格還是其他?等等······
目標函數是用於優化的函數。在經典OLS中,目標函數很簡單:

然而Lasso(回歸模型)最後使用了這個目標函數:

目標函數在擬合、過擬合和欠擬合方面都非常重要。Lasso很好,是因為它只能從你的特徵集中挑出少量的特徵,所以,如果你有500多個特徵,也許返回5個返回非零值(這是因為絕對值在0時不可微)。然而,如何處理離群值(Outliers)和高度相關的變數,也是我們需要面臨的困難。
▍風險管理
在數學中,另一部分主要是涉及風險管理。風險管理通常可以分解為一個線性代數問題。作為一名交易員/量化研究員,你的目標不僅僅是最大化PnL,還要確保你的投資組合在任何一天都不會爆倉。一個有用的策略是使用常見的市場指數對沖你的投資組合。
其他的遊戲
市場上許多參與者的目標是利用各種各樣的技術操縱市場。例如,一些經驗豐富的投資者可能會意識到市場「過於脆弱」,因此買入一些股票,看到市場反應過度,然後以更高的價格賣出。更複雜的策略包括使用交易所提供的多樣化訂單類型,利用交易所的微觀結構等。
在這個微觀結構裡面,包括你的交易過程怎麼做,交易成本,還有交易價格的發現,交易量的流動性等等,當然你還可以看出一些交易行為,包括內部交易、操作市場,另外是交易的監管資訊披露。比如利用交易所的微觀結構數據(每一次下單、執行和取消,從而可以基於歷史數據做到幾乎完全重建整個訂單)、基於機器學習的訂單簿高頻交易策略等等。
總結
高頻交易策略包括一定程度的速度、數學模型和市場博弈。一些策略是高度專註於快速交易,而另一些策略則利用了市場的特徵,但總體而言,成功的高頻交易機構對在些方面都非常精通。
看完此文,此刻,你有你心中的答案了嗎?歡迎留言!