一個讓求職者非常感興趣的行業是貨幣交易。 軟件企業收到來自全球交易者的請求,要求提供一個可以快速有效地評估貨幣配對數據的交易平台。
交易平台是由某些金融機構(如銀行和經紀公司)提供給交易者和投資者的軟件程序。
交易平臺本質上是讓投資者和交易商進行交易並關注他們的賬戶。 其他幫助投資者做出投資決策的功能也經常包含在交易系統中。
實時報價、交互式圖表、各種圖形工具、實時新聞提要和高級研究是這些功能的幾個例子。
平台也可以設計用於某些市場,例如股票、貨幣、期權或期貨。
十多年來,自動交易系統,也稱為 算法交易,佔據了貿易行業的中心舞台。
“交易系統”,有時也稱為“交易策略”,只不過是一組規則,這些規則應用於輸入數據以提供買入/賣出進入和退出信號。 儘管創建交易策略可能看起來很簡單,但事實並非如此!
量化交易策略背後的思想在算法交易領域被稱為“Quants”,因為製定良好的交易策略需要廣泛的量化研究。
自動交易系統的基本設計在過去十年中經歷了重大修改,並且仍在不斷變化。
算法交易行業已成為計算機和網絡技術發展的溫床,因為企業,尤其是那些使用高頻交易系統的企業,必須進行技術創新,以便在算法交易領域競爭。
我們將討論交易平台的 系統設計 在本文中。 交易平台的基本規範包括其架構、協議和創建您自己的自動交易系統的說明。
基本級別的自動交易軟件要求
最好的解決方案是完全滿足軟件要求的解決方案。 自動交易軟件的主要規格有:
- 可擴展性(系統處理不斷增長的請求和工作量的能力);
- 多處理和卓越的性能;
- 安全和安保(它如何應對突然發生的違規或攻擊並防止非法進入);
- 互操作性(系統與其他系統交互的能力);
- 可靠性(它如何解決故障並在出現問題的情況下運行)。
算法交易系統需要非常熟練的勞動力和細心的關注。 當有明確的非功能性需求時,更容易理解系統的功能性需求。 它們作為軟件開發團隊建立和定義產品質量的管理標準。
交易平台的功能特點包括
各種支付方式的成功支持、安全的雲託管服務、強大的數據分析工具、風險管理、精準報價、合適的圖表種類都是重要的功能需求。
以下是所有交易者密切關注的自動交易平台的一些基本屬性:
顯示統計數據的儀表板
為了對多個時區的貨幣匯率進行實時、同時檢查,平台必須運行持續更新、操作來自多個圖表的數據並操作價格表。
認證
快速但值得信賴的驗證方法首先創建了安全平台和精英工程努力的形象。
交易軟件可以支持從多個賬戶訪問,類似於具有雙重身份驗證的開源交易平台(例如使用 SMS 或 Google Authenticator),但您也可以擁有一個通過電子郵件、電話號碼或其他方式啟用訪問的系統僅適用於一小部分交易者的方法。
新聞聯播
在做出任何財務決定之前,進行研究至關重要。 為防止因無知而導致錯誤,交易者可以從便捷的新聞、相關概覽和對世界貨幣市場的洞察中受益,所有這些都可以在他們的交易平台上立即獲得。
方便管理員和用戶的功能
在這樣的系統中,只需單擊一下即可快速管理所有內容的能力至關重要。 這包括管理交易、待處理和提交的訂單、個人賬戶、訂單進度指示和客戶請求。
這樣可以在最短的時間內做出決策,並保證對重要信息的持續訪問。
使用推送通知
用戶預計交易平台將可全天候訪問,並將被告知任何安全問題或最新更改。
當交易平台跟踪經濟事件、價格波動、市場發展、技術指標等,並發送有關您的股票頭寸的更新時,您可以通過可定制的通知隨時了解情況。
兌現和付款
為了進行交易活動、跟踪現金流動以及使用信用卡、PayPal 或直接銀行轉賬從您的個人賬戶中快速安全地取款,需要此功能。
當您的提款請求處理完畢後,您將收到通知。
自動交易系統的架構
在自動交易平台中執行決策邏輯的引擎,也稱為“複雜事件處理”引擎,或 CEP,將位於服務器的應用程序內。
應用層本質上是一個 用戶界面 用於觀察並向 CEP 提供參數。 儘管應用程序層主要是一個視圖,但一些風險檢查(由於規模問題,現在已經成為資源密集型操作)可以卸載到應用程序層,特別是那些涉及用戶輸入的完整性的操作,例如胖手指錯誤。
一個有趣的情況是由自動交易系統中的可擴展性問題引起的。
讓我們想像一個單一的市場數據事件正在由 100 個獨立的邏輯處理(如前面的示例中所討論的)。 對於 100 個邏輯單元中的大多數,假設為選項計算希臘語,可能存在必須執行的複雜計算的公共組件。
如果每個邏輯獨立操作,每個單元將執行相同的精確計算,這會浪費處理資源。
複雜的冗餘計算經常被劃分為不同的計算引擎,這些引擎將希臘語作為輸入提供給自動交易系統中的 CEP,以最大化計算冗餘。
目前,訂單管理器 (OM) 中的單獨風險管理系統 (RMS) 在發布訂單前不久在自動交易系統中執行剩餘的風險評估。
由於只有一個 RMS 系統來管理所有邏輯單元/策略的風險,因此以前有 100 名獨立的交易者控制他們的風險。 這是由於規模問題。
但是,某些風險評估可能是特定策略獨有的,而其他風險評估可能需要在所有方法中執行。
因此,RMS 本身由全局 RMS (GRMS) 和策略級別 RMS (SLRMS) 組成。 SLRMS 和 GRMS 也可以通過用戶界面 (UI) 看到。
現在讓我們進一步了解服務器的組件。
市場適配器
交易所或任何其他市場數據提供商以其格式傳輸數據。 您的算法交易系統可能理解也可能不理解該語言。
Exchange 使您可以訪問 API(應用程序設計接口),您可以使用該 API 來編程和構建您自己的適配器,從而將數據格式轉換為您的系統可以理解的格式。
複雜事件處理引擎
您的方法的核心在於本節。 一旦你有了數據,你必須按照你的計劃使用它,這需要進行不同的統計計算,與過去的數據進行比較,並做出將導致創建訂單的決策。
此塊是使用訂單類型和訂單金額構建的。 簡單地說,複雜事件是傳入事件的集合。 這些包括新聞,市場走勢,股市趨勢等。
快速完成複雜事件的計算操作稱為複雜事件處理。 自動交易系統的操作可能涉及發現複雜的模式、創建相關性以及建立任何傳入信息之間的因果關係和時間等聯繫。
訂單路由系統
使用交易所給定的 API,訂單以交易所可以理解的語言加密。 該交易所提供原生 API 和 FIX API,兩種不同類型的 API。
本機 API 專為給定的交換而設計。 一些交易所使用一組稱為 FIX(金融信息交換)協議的準則來促進和改善證券市場中的數據流。
在此之後的部分中,我們將詳細解釋 FIX。 如果一個經濟體是開放的,人們可以通過自動交易系統向交易所或非交易所提交訂單,ORP 應該能夠處理多個方向的訂單。
在這裡,我們要強調的是,訂單信號可以由人手動執行,也可以自動執行。 最後一部分是我們所說的“自動交易系統”。
訂單管理器模塊包括根據預先建立的邏輯執行買/賣訂單的幾種執行技術。
風險管理
由於自動交易系統無需人工干預即可運行,因此必須進行嚴格的風險分析以確保交易系統按預期運行。
量化公司風險管理不善或缺乏風險檢查可能會導致重大的不可挽回的損失。 因此,任何自動交易系統都必須具有風險管理系統 (RMS)。
自動交易系統的協議開發
為了從單個服務器連接到多個目的地,這是由於架構能夠擴展到每台服務器的許多策略而實現的,這是必需的。
因此,為了將訂單傳輸到多個目的地並從眾多交易所接收數據,訂單管理器安裝了許多適配器。
每個適配器的作用是充當系統內部通信協議和交換所理解的協議之間的解釋器。 因此,許多交換將需要許多適配器。
由於每個交易所都有針對其提供的功能量身定制的協議,因此需要創建一個新的適配器並將其插入架構中,以將新的交易所添加到自動交易系統中。
已經開發了標準協議,以防止適配器插入這種令人頭疼的問題。 FIX 協議是其中最著名的。
與新目的地連接的上市時間顯著縮短,這不僅使連接移動中的多個目的地變得容易。
由於存在通用協議,自動交易系統可以輕鬆地與其他供應商進行交互以進行分析或市場數據饋送。
結果,市場變得非常有效,因為不再有與新地點或賣家整合的限制。
此外,模擬變得非常簡單,因為使用 FIX 協議連接到模擬器所需要的只是發出訂單並從真實市場接收數據。
模擬器本身可以在內部創建或從其他來源購買。 與實時市場數據類似,記錄的數據集也可以通過獨立於數據源的適配器進行回放。
新興的低延遲架構
借助自動交易系統的基本要素,這些策略現在可以實時評估大量數據並做出快速的交易選擇。
由於 FIX 等行業標准通信協議的發展,現在更容易構建算法交易台或自動交易系統,這增加了算法交易市場的競爭。
隨著服務器獲得更多內存和更快的時鐘頻率,重點轉向降低決策延遲。
由於各種原因,隨著時間的推移減少延遲是必要的,包括:
- 只有在低延遲環境中,該技術才有意義。
- 如果你在適者生存的遊戲中不夠快,競爭就會淘汰你
對於涉及單個目的地的任何高頻方法,託管已成為自動交易系統中的絕對必要條件。
但多目的地系統需要精心準備。 在做出這樣的選擇之前,必須考慮變量,例如目的地訂單響應時間的持續時間以及它與兩個目的地之間 ping 持續時間的比較。
為了減少自動交易系統的總延遲,網絡延遲通常是首先要解決的問題。 但是架構也可以通過許多其他方式進行改進。
網絡處理延遲
網絡處理延遲是路由器、交換機等引入的延遲。 數據包從 A 點移動到 B 點所需的跳數將是自動交易系統設計的下一個優化級別。
躍點被描述為數據包的源和目標之間的路徑部分,它不通過物理設備(例如路由器或交換機)傳輸。
我們所說的微突發也會對網絡操作的延遲產生影響。
可能會或可能不會影響平均數據傳輸率的數據傳輸速度的快速峰值稱為微突發。
由於自動交易系統是基於規則的,它們都會對同一事件做出一致的反應。 由於多個參與系統同時發送命令,參與者和目的地之間可能會發生微突發的數據傳輸。
應用程序延遲
自動交易系統的應用程序延遲是處理應用程序所需時間的度量。 這取決於數據包的數量、專用於應用程序邏輯的處理、所用計算的複雜性、編程效率等。
隨著處理器數量的增加,系統的應用程序延遲通常會減少。 對於更高的時鐘頻率,同樣適用。
許多自動交易系統受益於將 CPU 內核分配給程序的關鍵部分,例如策略邏輯。 通過這樣做,該過程不會增加因切換內核而導致的延遲。
與此類似,如果自動交易系統的方法在編程時考慮到緩存大小和內存訪問的接近性,則會出現多次內存緩存命中,從而進一步減少延遲。
許多系統通過將代碼優化到特定的處理器架構來做到這一點,這是通過使用非常低級的編程語言來完成的。
使用完全可編程的門陣列,一些企業甚至將復雜的計算刻錄到硬件 (FPGA) 上。
測試
測試是識別軟件應用程序缺陷的行為,不可能被低估,尤其是在金融科技領域。 由於存在財務損失的可能性,金融技術不能有缺陷。
質量保證工程師可以識別的缺陷越多,成品運行正常的可能性就越大。 根據開發交易平台的公司或客戶的需求,測試過程的結構包括:
功能測試的基礎是創建輸入並分析結果。 使用假卡,運行金融應用測試用例。 這些卡旨在提高支付的可靠性、效率和準確性。
通過性能測試來確定係統的速度、可擴展性和穩定性。 評估應用程序的速度是為了了解它的響應速度,它的可擴展性表明它可以同時支持多少用戶而不會崩潰。
此外,穩定性表明應用程序在各種負載下是否正常運行或是否存在任何潛在缺陷。
構建完全自動化的交易系統可能超出單個零售交易者的能力。 自動交易系統在市場上以訂閱的形式提供,是希望研究交易算法技術的交易者的一種選擇。
建立自己的自主交易系統
初學者交易者可以開發自己的算法交易技術並參與成功的市場交易。 作為一般大綱,下面列出的階段可用於創建算法交易策略:
- 使用您的想像力或方法創建一個您認為在活躍市場中會成功的交易概念。 該概念可以來自您自己的市場觀察、交易書籍、學術論文、交易博客、交易論壇或任何其他來源。
- 收集必要的信息——你需要歷史數據來檢驗你的假設。 此信息可從付費數據供應商或 Google 財經等網站獲得。
- 編寫計劃需要使用 Excel、Python 或 R 編程等工具。 一旦你有了數據,你就可以開始編寫你的方法了。
- 在編碼後根據歷史數據測試您的交易概念稱為回測您的方法。 回測需要輸入優化、建立利潤目標和止損單、頭寸規模和其他相關任務。
- 紙上交易你的策略——在回測階段之後,紙上交易你的策略是必要的。 這將包括使用市場模擬模擬器測試您的計劃。 對於紙質交易方式,有經紀人提供算法交易平台。
- 如果您的方法在紙面交易之後是有利可圖的,那麼您可以在現實世界的情況下實施它。 您可以通過提供算法交易的可靠經紀人創建交易賬戶。
隨著時間的推移,越來越多的交易所允許專業和零售交易者進行算法交易,越來越多的交易者正在使用算法交易。
結論
這是一篇關於自動交易系統架構的詳盡文章,我們相信它對所涉及的組件以及架構開發人員為了設計強大的自動交易系統必須處理/克服的許多障礙提供了深刻的理解。
我已盡力為您提供自動交易系統的概述,但幕後還有很多事情要做。 我希望你發現這種材料是有益的,並好好利用它。
發表評論