QuantFabric量化交易系統(tǒng)
QuantFabric簡介
-
QuantFabric是基于Linux/C++開發(fā)的中高頻量化交易系統(tǒng),支持中金所、鄭商所、大商所、上期所、上海國際能源中心的期貨業(yè)務(wù)品種交易,支持上交所、深交所的股票、債券品種交易。
-
QuantFabric目前支持期貨交易柜臺如下:
- CTP
- 盛立REM
- 易達(dá)YD
-
QuantFabric目前支持股票交易柜臺如下:
- 寬睿OES
-
QuantFabric計劃支持股票交易柜臺如下:
- 中泰XTP
- 華鑫奇點
- 華銳ATP
-
QuantFabric量化交易系統(tǒng)架構(gòu)如下:
-
GitHub:QuantFabric
編譯構(gòu)建
QuantFabric
- QuantFabric量化交易系統(tǒng)下載:
git clone --recursive git@github.com:QuantFabric/QuantFabric.git
- QuantFabric編譯構(gòu)建:
cd QuantFabric # 進(jìn)入QuantFabric目錄
git submodule init # 初始化子模塊
git submodule update --remote # 更新子模塊
sh build_release.sh # 編譯構(gòu)建
-
編譯構(gòu)建完成時,可執(zhí)行文件和so文件位于build目錄下。
-
單個子模塊更新代碼:
cd XMonitor
git pull origin master
- 多個子模塊遍歷更新代碼:
git submodule update --remote
git submodule foreach 'git pull origin master'
XMonitor
- GUI客戶端XMonitor編譯構(gòu)建流程如下:
cd XMonitor # 進(jìn)入XMonitor目錄
git pull
git submodule init # 初始化子模塊
git submodule update --remote # 更新子模塊
mkdir build
cd build
qmake ..
make
- 編譯完成時,可執(zhí)行文件位于build目錄下。
- 由于CMake對于Qt工程構(gòu)建不完美,本人仍然使用qmake對XMonitor進(jìn)行單獨編譯構(gòu)建。如果需要使用CMake構(gòu)建XMonitor,請參看CMake構(gòu)建Qt工程實踐。
QuantFabric模塊
Utils
- 基礎(chǔ)工具模塊,提供交易系統(tǒng)不同組件共用的工具模塊,如配置加載模塊、HPPackClient客戶端、HPPackServer服務(wù)端、SQLiteManager數(shù)據(jù)庫操作、Singleton單例、Logger日志、RingBuffer、LockFreeQueue無鎖隊列、IPCMarketQueue行情消息隊列、IPCLockFreeQueue內(nèi)存隊列、SnapShotHelper快照工具、時間戳函數(shù)、字符串工具函數(shù)、不同組件消息通信協(xié)議。
- 項目地址:Utils
XAPI
- 第三方庫,包括SPDLog日志庫、HPSocket通信框架、YAML-CPP解析庫、CTP柜臺API、REM柜臺API、YD柜臺API、ConcurrentQueue并發(fā)隊列、OES柜臺API。
- 項目地址:XAPI
XServer
- 中間件,主要功能如下:
- 轉(zhuǎn)發(fā)GUI客戶端上行控制命令到不同Colo交易服務(wù)器,如轉(zhuǎn)發(fā)XMonitor的報單撤單請求消息到XTrader、風(fēng)控控制命令消息至XRiskJudge;
- 轉(zhuǎn)發(fā)交易相關(guān)數(shù)據(jù)到GUI客戶端,如轉(zhuǎn)發(fā)XMarketCenter行情數(shù)據(jù)、XTrader訂單回報至XMonitor。
- 管理XMonitor客戶端登錄用戶的權(quán)限校驗。
- 盤后提供歷史數(shù)據(jù)回放。
- 項目地址:XServer
XWatcher
- 監(jiān)控組件,提供Colo交易服務(wù)器上部署的交易組件的監(jiān)控,并負(fù)責(zé)轉(zhuǎn)發(fā)數(shù)據(jù)。主要功能如下:
- 轉(zhuǎn)發(fā)XServer轉(zhuǎn)發(fā)的控制命令,如報單、撤單、風(fēng)控參數(shù)修改等。
- 轉(zhuǎn)發(fā)Colo交易進(jìn)程如XMarketCenter、XTrader、XRiskJuage等交易、監(jiān)控數(shù)據(jù)至XServer。
- 監(jiān)控Colo交易服務(wù)器實時性能指標(biāo)、App交易進(jìn)程狀態(tài),并將相應(yīng)狀態(tài)轉(zhuǎn)發(fā)至XServer。
- 項目地址:XWatcher
XMarketCenter
- 行情網(wǎng)關(guān),采用插件架構(gòu),適配不同Broker柜臺行情API,主要功能如下:
- 收取行情數(shù)據(jù);
- 打包行情切片數(shù)據(jù)寫入共享內(nèi)存隊列;
- 行情數(shù)據(jù)落地;
- 行情數(shù)據(jù)轉(zhuǎn)發(fā)至XWatcher監(jiān)控組件。
- 項目地址:XMarketCenter
XRiskJudge
- 風(fēng)控系統(tǒng),主要功能如下:
- 提供賬戶間風(fēng)控,如流速控制、賬戶鎖定、自成交、撤單限制檢查等風(fēng)控功能;
- 加載風(fēng)控參數(shù),解析XServer轉(zhuǎn)發(fā)的風(fēng)控控制命令,更新風(fēng)控參數(shù),發(fā)送風(fēng)控參數(shù)至XWatcher;
- 接收XTrader報單、撤單請求,進(jìn)行風(fēng)控檢查,發(fā)送風(fēng)控檢查結(jié)果至XTrader;
- 接收XTrader報單回報、撤單回報,管理訂單狀態(tài),Ticker交易日內(nèi)累計撤單計數(shù)。
- 項目地址:XRiskJudge
XTrader
- 交易網(wǎng)關(guān),采用插件架構(gòu)適配不同Broker柜臺交易API,主要功能如下:
- 從網(wǎng)絡(luò)客戶端收取手動報單、撤單請求。
- 從Order內(nèi)存隊列讀取報單、撤單請求。
- 執(zhí)行報單、撤單指令,管理訂單回報。
- 將倉位、資金、訂單回報寫入Report內(nèi)存隊列。
- 將倉位、資金、訂單回報發(fā)送至XWatcher。
- 項目地址:XTrader
HFTrader
- 高頻交易組件,商業(yè)版,不開源。
- 性能指標(biāo):
Perf Indicator:Tick2Order (ns)
count: 405
min: 785
max: 3237
first: 785
mean: 1275.87
median: 1147
std: 449.36
10%: 916
20%: 951
30%: 1002
40%: 1076
50%: 1147
60%: 1249
70%: 1335
75%: 1395
80%: 1460
85%: 1525
90%: 1673
95%: 2390
99%: 3012
XDataPlayer
- 行情轉(zhuǎn)發(fā)器,主要功能如下:
- 從XServer接收行情數(shù)據(jù),打包為行情切片后寫入內(nèi)存行情隊列。
- 提供歷史行情數(shù)據(jù)回放功能。
Tools
- 工具箱,提供工具如下:
- OrderSend:提供批量報單功能,訂單寫入內(nèi)存隊列。
- MarketReader:提供行情數(shù)據(jù)導(dǎo)出功能,從內(nèi)存行情隊列導(dǎo)出行情數(shù)據(jù)。
- 項目地址:Tools
FinTechUI
- 基于Qt封裝的金融科技UI組件,支持凍結(jié)列TableView、多層次表頭HeaderView、自定義排序過濾模型、自定義Button代理、自定義Progress代理、自定義ComboBox代理、自定義表格模型XTableModel、可拖拽式UI插件框架。
- 項目地址:FinTechUI
XMonitor
-
GUI監(jiān)控客戶端,功能特性如下:
- 通過拖拽式插件架構(gòu)實現(xiàn)不同插件頁的分屏幕顯示,為交易、策略、IT生產(chǎn)運維等人員提供良好GUI體驗;
- 提供Colo交易服務(wù)器實時性能指標(biāo)和交易組件進(jìn)程狀態(tài)有效監(jiān)控;
- 提供交易組件的進(jìn)程級管理,實現(xiàn)GUI客戶端啟動、停止交易組件;
- 提供行情數(shù)據(jù)展示、訂單回報管理、報單、撤單、風(fēng)控管理、用戶權(quán)限管理、交易進(jìn)程管理等功能。
-
XMonitor客戶端提供Permission、Market、EventLog、Monitor、RiskJudge、OrderManager等插件,用于展示不同監(jiān)控信息。
-
項目地址:XMonitor
-
Permission插件:提供用戶插件權(quán)限管理,消息數(shù)據(jù)訂閱。如下:
-
Market插件:展示所有接收Ticker的行情數(shù)據(jù)。如下:
-
EventLog插件:展示交易系統(tǒng)所有組件的事件日志。如下:
-
Monitor插件:展示Colo交易服務(wù)器實時性能指標(biāo),交易進(jìn)程實時狀態(tài),提供交易進(jìn)程管理功能。如下:
-
RiskJudge插件:提供風(fēng)控系統(tǒng)流速限制、Ticker撤單限制、訂單撤單限制相關(guān)參數(shù)設(shè)置;提供賬戶鎖定功能;展示不同賬戶不同Ticker的累計撤單次數(shù);展示風(fēng)控系統(tǒng)事件日志。如下:
文章來源:http://www.zghlxwxcb.cn/news/detail-456761.html
-
OrderManager插件:提供報單、撤單功能;展示賬戶倉位信息;展示賬戶掛單信息;展示賬戶歷史訂單記錄;展示賬戶資金信息。如下:
文章來源地址http://www.zghlxwxcb.cn/news/detail-456761.html
參考資料
- 《量化IT工程師實戰(zhàn)》課程
- 《量化IT》專欄
- 《Linux性能優(yōu)化》專欄
- 《Qt開發(fā)》專欄
- 量化IT技術(shù)QQ群:748930268,加群驗證碼:QuantFabric
到了這里,關(guān)于QuantFabric量化交易系統(tǒng)開源發(fā)布的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!