用 Java构建股指期货交易系统
原文出處?http://daliliu.iteye.com/blog/610530
用?Java構建股指期貨交易系統
Liu Hang (dalihang@hotmail.com?)
?
未經作者許可,不得用于任何商業用途。轉載請注明出處和作者
概要
本文主要介紹怎樣使用?Java?相關技術構建一個股指期貨交易系統(金融期貨)。主要內容包括股指期貨交易系統簡介,系統業務架構,系統規劃要求和采用的技術架構及使用?Java?技術的優點。其中重點介紹使用?Java?相關技術實現的系統架構,關鍵技術包括?– JMS, SOA/Web Service, Appliction Server Cluster?等。本文為系統的概要描述,不會過多闡述具體設計。
1?股指期貨交易系統簡介
在本文中所提到的股指期貨、期權交易系統,均指券商端的期貨、期權交易系統。期貨客戶通過該交易系統連接到交易所撮合成交平臺。系統提供客戶下單,行情信息,資金結算和風險控制等功能。
和股票交易系統類似,股指期貨交易系統提供在線下單,行情查詢等功能。和股票交易系統相比,期貨、期權交易在業務上要求更復雜的風險控制和資金結算等功能。在技術架構上,由于交易的標的物是指數或期權、貴金屬、全球市場等,市場行情數據變化更頻繁、相比于股票市場,風險更大。對系統的實時性、穩定性要求更高。
在現代期貨、期權交易中,有相當多的投資者進行快速、頻繁的交易,追求短期交易機會。對券商的交易系統要求能提供一定程度的程序化交易功能和靈活的交易方式。面對激烈的商業競爭,券商應該能夠提供多樣化的交易方式、快速推出新的交易模式以吸引更多的投資者。
在整個金融期貨交易系統的規劃中,應當考慮到以下幾點?–
1)?交易系統應該提供一個統一的交易平臺,以支持多種產品交易,包括金融期貨、期權、本地和全球市場
2)?系統應該支持多種交易渠道,包括可下載的交易客戶端,?WEB?交易、電話委托和客戶代理委托等
3)?系統規劃應分開企業核心信息服務和外圍應用系統,以支持持續豐富的外圍應用系統
4)?面對激烈的商業競爭和業務變革,要求系統支持快速開發、部署和持續的新功能發布。
2?系統業務框架
本章節主要介紹股指期貨交易的業務框架,從高層次簡介期貨交易系統的功能。
?
整個股指期貨交易系統包括下面幾個大的部分?–
核心服務系統、券商內部運行維護系統、交易和行情借口、客戶端交易終端系統等。
- 核心服務系統
提供股指期貨系統的核心功能,包括訂單處理,交易管理、行情服務、風險管理、基礎數據服務、?Back Office?服務(Position?結算等)、數據中心(資金結算等)服務。這些功能以組件或服務的方式提供外部應用系統使用。
- 運行維護系統
運行服務系統為交易系統運行提供所有必要的操作支持,包括?Back Office?操作終端,風險管理?/?監控終端、?Data Center?操作終端、?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?中間件軟件,實現服務器應用的?Load balance?和?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,?系統設計?GUI framework?幫助所有的?GUI application?開發。像對應于?Web Applciation,?可以采用主流的?Web MVC framework.
對應?Internet?客戶端?Application,?采用?web service?技術和服務器進行交互。對應訂單消息、市場行情采用?Message?系統。
- 服務器端
服務器端的主要業務服務,采用?Web Service?方式發布,以供客戶端調用。市場行情服務接受來自市場的信息?(Message Driven bean)?,進行解析后發送給客戶端。
具體的業務組件可使用?Spring?Ioc?等框架技術。
- 消息網關
使用?Socket?或?API?調用的方式,接受來自市場的消息。進行處理后發送給消息中間件。
- 數據存儲
數據存儲可采用成熟的數據存儲框架如?Hibernate?等。
4.2?物理運行環境
應用程序部署要考慮系統的?Load balance?和?Fail-over?等功能,利用?Application Server?和?Message Middleware?的cluster?功性去確保系統的穩定性和可擴充性。
下圖為物流運行環境示意圖?-
?
5?小結
用?Java?開發分布式大型應用系統,技術相當成熟,利用基于服務、組件和成熟的開源框架和中間件服務器,能夠快速構建大型的期貨交易系統,并易于擴充和維護。
?
后記 -
?
期貨交易系統是一個技術復雜的關鍵性系統,?本文并沒有對一些具體的技術進行闡述,而這些正是系統的復雜性所在。比如怎樣實現Swing GUI framework, 怎樣實現Web Service,怎樣實現App Server Cluster 和MQ Cluster以及安全性,和怎么樣使用MQ進行交易狀態更新等。另外對怎么樣實現交易成交的具體流程,市場行情的broadcast具體實現,也沒有詳細闡述。這些屬于具體的設計,設計到Java的多個方面,本文不打算具體闡述。有興趣的,可以技術交流 - dalihang@hotmail.com。
總結
以上是生活随笔為你收集整理的用 Java构建股指期货交易系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机网络 组网设计 论文,网络设计论文
- 下一篇: winxp原版系统iso镜像+大白菜启动