1 股指期貨交易系統簡介
在本文中所提到的股指期貨、期權交易系統,均指券商端的期貨、期權交易系統。期貨客戶通過該交易系統串連到證券交易所撮合成交平台。系統提供客戶下單,行情資訊,資金結算和風險控制等功能。
和股票交易系統類別似,股指期貨交易系統提供線上下單,行情查詢等功能。和股票交易系統相比,期貨、期權交易在業務上要求更複雜的風險控制和資金結算等功能。在技術架構上,由於交易的標的物是指數或期權、貴金屬、全球市場等,市場行情資料變化更頻繁、相比於股票市場,風險更大。對系統的即時性、穩定性要求更高。
在現代期貨、期權交易中,有相當多的投資者進行快速、頻繁的交易,追求短期交易機會。對券商的交易系統要求能提供一定程度的程式化交易功能和靈活的交易方式。面對激烈的商業競爭,券商應該能夠提供多樣化的交易方式、快速推出新的交易模式以吸引更多的投資者。在整個金融期貨交易系統的規劃中,應當考慮到以下幾點:
1)交易系統應該提供一個統一的交易平台,以支援多種產品交易,包括金融期貨、期權、本地和全球市場
2)系統應該支援多種交易渠道,包括可下載的交易用戶端,WEB交易、電話委託和客戶代理委託等
3)系統規劃應分開企業核心資訊服務和介面區系統,以支援持續豐富的介面區系統
4)面對激烈的商業競爭和業務變革,要求系統支援快速開發、部署和持續的新功能發布。
2 系統業務架構
本章節主要介紹股指期貨交易的業務架構,從高層次簡介期貨交易系統的功能。整個股指期貨交易系統包括下面幾個大的部分:核心服務系統、券商內部運行維護系統、交易和行情借口、用戶端交易終端系統等。
◆核心服務系統
提供股指期貨系統的核心功能,包括訂單處理,交易管理、行情服務、風險管理、基礎資料服務、BackOffice服務(Position結算等)、資料中心(資金結算等)服務。這些功能以組件或服務的方式提供外部應用系統使用。
◆運行維護系統
運行服務系統為交易系統運行提供所有必要的操作支援,包括BackOffice操作終端,風險管理/監控終端、DataCenter操作終端、Dealer/客戶Agent交易終端等。這些系統運行在券商的LAN之內,提供給券商的各類使用者使用。
◆統一交易、行情服務介面
期貨交易系統的核心商務服務提供給WLAN或其他渠道的使用者使用,要通過一個統一的交易和行情服務介面,以面向服務(SOA)的方式和其他外部交易終端整合。
◆交易終端
交易終端通過統一交易、行情服務介面和核心系統互動。這些交易終端包括可下載的獨立用戶端、WEB頁面用戶端、電話用戶端(通過語言模組轉化)等。在技術架構章節,涉及的用戶端為獨立用戶端。
◆統一網關(交易、行情)
核心服務通過統一的交易和行情網關串連到本地證券交易所和全球市場。
3 技術方案規劃
基於核心交易系統的性質,在技術方案的規劃時,需考慮以下因素–
◆高效能要求(Performance)
相比於其他管理資訊系統,股指期貨交易系統要求更高的效能,包括行情資料的即時重新整理,交易訂單處理等。
◆可擴充性要求(Scalability)
股指期貨交易系統通常支援較多的並發使用者,且隨著業務的發展,交易客戶持續或快速增長,這要求系統有能力易於擴充以應付系統負載的增長。
◆高穩定性要求(Availability)
系統穩定性對於交易系統的重要性不言而喻。系統有能力在整體架構上防止單點失敗,能有一定程度上的故障恢複(Fail-over)的能力。
◆與其他系統整合
隨著現在金融行業的快速發展和業務創新,交易系統也要求能和多個外部的系統包括第三方系統整合的能力,包括企業內部的客戶管理系統(CRM),證券交易所、銀行等。
◆支援快速開發和業務創新
市場競爭也是時間的競爭,必然要求整個交易系統從規劃、開發和部署要求能夠在儘可能短的時間完成。另外,金融行業業務創新在不斷加快,新的交易方式、測略不斷出現,必然要求IT系統能夠快速反映和支援這種變革。在技術選型時,必須考慮到技術方案能夠滿足這種要求。
綜上所述,使用的技術方案要能夠解決上面的要求。目前,在期貨、股票交易系統中,所採用的技術主要有兩種C/C++和Java.國內業界較多的採用C/C++實現核心交易系統,本文主要闡述使用Java技術來實現整個交易核心和用戶端。相比較C/C++,Java技術在滿足交易系統要求時,有如下特徵:
◆效能要求(Performance)
與C/C++技術相比,使用Java構建核心交易系統,效能問題可能是首要的考慮點。但隨著Java和最佳化技術的發展,Java的運行效能比早期有了大幅提高,已廣泛用於伺服器程式和即時應用。在另一方面,效能問題總是和具體要求相關聯,只要滿足系統的效能指標,使用Java應該是一個可行的選項。在筆者的項目實踐中,Java用來構建即時交易系統,配合合理的技術架構,完全能滿足系統的效能要求。
◆擴充性(Scalability)
使用Java相關技術和中介軟體如WebSphere,WebLogic等,構建一個高並發性的應用系統有著相當成熟的行業實踐,和快速實現的能力。
◆穩定性要求(Availability)
相比較於C技術,藉助於Java中介軟體軟體,實現伺服器應用的Loadbalance和Fail-over是一項相當便捷和成熟的技術。
◆與其他系統整合
Java/J2EE是一個開放的技術標準,有著廣泛的行業和開發社區支援,能夠較快並易於和其他系統整合。
◆支援快速開發和業務創新
相比於C/C++,Java的快速開發能力顯而易見。由於大量成熟的開源架構、基礎組件的出現,在常見的企業系統開發中,使得Java的開發效率遠遠高於使用C/C++技術,能夠較快速的實現新的業務功能。
綜上所述,Java技術能夠全面滿足股指期貨交易系統的要求,由於藉助於中介軟體技術解決Load balance,Fail-over等關鍵性問題,使得開發人員更關注於業務的實現,大大縮短了整個系統的開發時間和人力成本。同時Java語言的開發效率也使得新業務的創新能夠在系統上得以快速實現。這些因素使得採用Java構建股指期貨交易系統是一個可行和較好的選擇。
4 技術架構
本章節主要介紹股指期貨的技術架構,從總體技術架構、運行實體環境等方面舉個介紹。
4.1 總體技術架構
◆用戶端
用戶端有兩類應用程式,一類是基於Swing的GUI Application如可下載的交易用戶端,資料維護終端等,另一類是Web Based Application如web頁面交易應用等,對GUI Applcition,系統設計GUIframework協助所有的GUI Application開發。像對應於Web Applciation,可以採用主流的Web MVC Framework.對應Internet用戶端Application,採用WebService技術和伺服器進行互動。對應訂單訊息、市場行情採用Message系統。
◆伺服器端
伺服器端的主要商務服務,採用WebService方式發布,以供用戶端調用。市場行情服務接受來自市場的資訊(MessageDrivenbean),進行解析後發送給用戶端。
具體的業務組件可使用Spring Ioc等架構技術。
◆訊息網關
使用Socket或API調用的方式,接受來自市場的訊息。進行處理後發送給訊息中介軟體。
◆資料存放區
資料存放區可採用成熟的資料存放區架構如Hibernate等。
4.2 物理運行環境
應用程式部署要考慮系統的Load Balance和Fail-over等功能,利用Application Server和Message Middleware的Cluster功性去確保系統的穩定性和可擴充性。
5 小結
用Java開發分布式大型應用系統,技術相當成熟,利用基於服務、組件和成熟的開源架構和中介軟體伺服器,能夠快速構建大型的股指期貨交易系統,並易於擴充和維護。