- XTest是QuantFabric量化交易系统的测试用例集合,可以作为QuantFabric开发和学习过程中测试使用,所使用测试环境为不同柜台厂商提供的仿真测试环境,可以直接运行。主要组件如下:
- XServer:QuantFabric交易系统中间件,部署在用户侧、公司侧。
- XWatcher:交易监控组件,部署在交易服务器,监控交易服务器的交易组件和交易服务器性能指标。
- XRiskJudge:交易风控系统,提供防自成交、流速、撤单限制等风控功能。
- XMarketCenter:行情网关,采用插件架构,通过加载不同插件适配不同柜台的行情API。
- XTrader:交易网关,采用插件架构,通过加载不同插件适配不同柜台的交易API。
- XQuant:量化交易策略,通过内存通道读取行情数据出发交易信号,将报单、撤单请求通过内存通过发送到XTrader交易网关,并读取从XTrader交易网关返回的订单状态、仓位信息、资金信息。
- XDataPalyer:行情数据转发组件,用于将XServer收到的行情数据分发到不能获取行情的交易服务器。
- HFTrader:高频交易组件,将行情、交易、策略整合到一个进程,提供ns级别的系统内部延迟。
- 在CentOS 7.9 Linux服务器创建xtrader用户,并在xtrader主目录下执行:
git clone https://github.com/QuantFabric/XTest.git XTest
-
升级glibc++(root用户):
cd XTest cp libstdc++.so.6.0.29 /lib64 cd /lib64 rm libstdc++.so.6 ln -s libstdc++.so.6.0.29 libstdc++.so.6
-
更新当前要交易的合约列表到TickerList.yml,覆盖到交易进程XMarketCenter、XTrader、XQuant、HFTrader交易进程的Config目录下。
-
XQuant虚拟环境安装:
conda create -n XQuant python=3.9 conda activate XQuant pip3 install HPSocket -i https://mirrors.aliyun.com/pypi/simple/ pip3 install loguru -i https://mirrors.aliyun.com/pypi/simple/ conda install -c conda-forge ta-lib
-
一个简单的QuantFabric量化交易系统可以仅包括一个CTP行情网关示例和CTP交易网关实例。
-
启动XServer中间件:
sh /home/xtrader/XTest/XServer/run.sh
-
启动XWatcher监控组件:
sudo sh /home/xtrader/XTest/XWatcher/run.sh
-
启动XRiskJudge风控系统:
sh /home/xtrader/XTest/XRiskJudge/run.sh
-
启动CTP行情网关:
sh /home/xtrader/XTest/CTPMarket/run.sh
-
启动CTP交易网关:
sudo sh /home/xtrader/XTest/CTPTrader/run.sh
-
启动XQuant交易策略:
sudo sh /home/xtrader/XTest/XQuant/run.sh
-
XMonitor监控客户端启动:
# 打包依赖库到当前目录Lib目录下,执行一次即可 /home/xtrader/XTest/XMonitor/DeployApp.sh XMonitor_0.9.2 sh /home/xtrader/XTest/XMonitor/run.sh
- 基础组件部署在用户侧服务器。
- 启动XServer中间件:
sh /home/xtrader/XTest/XServer/run.sh
- XMonitor监控客户端启动:
# 打包依赖库到当前目录Lib目录下,执行一次即可 /home/xtrader/XTest/XMonitor/DeployApp.sh XMonitor_0.9.2 sh /home/xtrader/XTest/XMonitor/run.sh
-
XWatcher、XRiskJudge、XTrader、XMarketCenter、XQuant为交易相关组件,需要部署在交易服务器上。
-
启动XWatcher监控组件:
sudo sh /home/xtrader/XTest/XWatcher/run.sh
-
启动XRiskJudge风控系统:
sh /home/xtrader/XTest/XRiskJudge/run.sh
-
启动CTP行情网关:
sh /home/xtrader/XTest/CTPMarket/run.sh
-
启动CTP交易网关:
sudo sh /home/xtrader/XTest/CTPTrader/run.sh
-
启动宽睿OES交易网关:
sudo sh /home/xtrader/XTest/OESTrader/run.sh
-
启动盛立REM行情网关:
sh /home/xtrader/XTest/REMMarket/run.sh
-
启动盛立REM交易网关:
sudo sh /home/xtrader/XTest/REMTrader/tool/run.sh # 启动盛立采集信息工具 sudo sh /home/xtrader/XTest/REMTrader/run.sh
-
启动易达YD交易网关:
sudo sh /home/xtrader/XTest/YDTrader/run.sh
-
启动XQuant交易策略:
sudo sh /home/xtrader/XTest/XQuant/run.sh
-
启动CTP HFTrader:
sudo sh /home/xtrader/XTest/HFTraderCTP/run.sh
-
启动盛立REM HFTrader:
sudo sh /home/xtrader/XTest/HFTraderREM/tool/run.sh # 启动盛立采集信息工具 sudo sh /home/xtrader/XTest/HFTraderREM/run.sh
-
启动易达YD HFTrader:
sudo sh /home/xtrader/XTest/HFTraderTYD/run.sh
-
启动华鑫Tora HFTrader:
sudo sh /home/xtrader/XTest/HFTraderTora/run.sh
-
启动中泰XTP HFTrader:
sudo sh /home/xtrader/XTest/HFTraderXTP/run.sh
- Capture是一个抓包工具。
- MarketReader是一个行情消费者,从行情队列读取行情数据。
- SHMClient是一个共享内存队列消费者。
- XDataPlayer行情数据转发组件,可以根据需求部署:
sh /home/xtrader/XTest/XDataPlayer/run.sh