C/C++高频量化投资交易平台
EliteQuant 是一个开源并永久免费的统一量化交易平台,由量化投资者所写并为量化投资者服务。它同时在github 和 码云上开源。
统一这个词有两层意思
EliteQuant 相关项目包括
EliteQuant_Cpp是基于C/C++ 11的多线程并发式高频交易平台。它遵循现代设计模式,例如事件驱动,服务器/客户端架构,依赖注入和松散耦合的强大稳定的分布式系统。它可以独立运行和直接使用。同时,它也作为其他EliteQuant项目的服务器端。
我们欢迎任何形式的贡献,包括发现问题,发送代码块,或创建拉请求。通过共享代码架构,这还会帮助使用其他语言的交易者。
不需要安装,直接下载代码并使用。
最简单的方法是从项目根目录下载并编译compiled.zip。然后运行名为eqsever.exe的程序。在运行此可执行文件之前,需要修改几个配置设置。默认情况下,程序从相同的目录中读取config.xml。因此打开配置文件
盈透证券 是零售交易商中最受欢迎的经纪商。 Quantopian,Quantconnect等许多零售交易平台都是支持IB的。如果您没有IB账户,但想要试用,他们提供模拟账户edemo与密码demouser。只需下载TWS交易者工作站并使用此演示帐户登录。请注意,每次使用模拟账户登录交易平台时,账户ID都会发生变化,因此您必须相应地更改EliteQuant配置文件。
CTP 是中国期货市场的实际标准,包括商品期货和金融期货。他们还提供免费模拟账户SimNow。注册后,您将获得帐户,密码,brokerid,以及市场数据和交易经纪地址。将其替换EliteQuant配置文件相应位置。
以下是我们正在使用的环境
Visual C ++是Windows上流行的IDE。 CodeLite是一个免费的Linux IDE,在用户体验方面非常接近Visual Studio。其他的选择是CLION,CMake等。
您可以按照以下步骤安装必要的第三方库,并使用cmake在最新的64位Ubuntu系统上构建此项目。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install aptitude git cmake
sudo aptitude install zlib1g-dev rapidjson-dev python3-dev libboost-all-dev libsodium-dev \
libyaml-cpp-dev libwebsocketpp-dev libnanomsg-dev libzmq3-dev
# 下载 SimNow CTP tradeapi Linux 版本
cd ~ # 或者您选择的目录
wget http://simnow.sfit.com.cn/download/api/v6.3.5_20150803_tradeapi_linux64.tar
tar xvf v6.3.5_20150803_tradeapi_linux64.tar
cd v6.3.5_20150803_api_tradeapi_linux64/
sudo cp thostmduserapi.so /usr/lib/libthostmduserapi.so
sudo cp thosttraderapi.so /usr/lib/libthosttraderapi.so
cd ~ # 或者您选择的目录
git clone https://github.com/EliteQuant/EliteQuant_Cpp.git
cd EliteQuant_Cpp/source
mkdir build
cd build
cmake ..
make -j2
# 运行程序
cd eqserver
cp ../../eqserver/config.yaml .
mkdir log data
./eqserver # 在这之前要改动 config.yaml
在Linux上,按Ctrl + C终止eqserver时,可能会遇到double free or corruption(!prev)错误。抑制此警告的一种方法是将MALLOC_CHECK_ = 0变量添加到您的环境中。
sudo vim ~/.bashrc # 编辑系统配置文件
export MALLOC_CHECK_=0 # 把这一行加到文件最后
source ~/.bashrc # 重新加载配置
服务 | 协议 | 端口 | 捆绑还是连接 |
---|---|---|---|
MarketData | PUB | 55555 | Y |
Brokerage | PAIR | 55556 | Y |
DataManager/BarAggregator | PUB | 55557 | Y |
TickRecording | SUB | 55555 | N |
DataBoard | SUB | 55555 | N |
ApiServer | PAIR | 55556 | N |
ApiServer | SUB | 55557 | N |
ApiServer | PAIR | 55558 | Y |
消息由字符“|”来分割。例如
以下是消息类型:
在EliteQuant中,一个交易品通过其完整代码Full Symbol来识别,完整代码由空格隔开的字符组成。一般模式是“本地代码 交易品类别 交易所 乘数”
enum OrderStatus {
OS_NewBorn = 0, // NewBorn
OS_PendingSubmit = 1,
OS_PendingCancel =2 ,
OS_Submitted = 3, // submitted
OS_Acknowledged = 4, // acknowledged
OS_Canceled = 5, // Canceled
OS_Filled = 6, // Filled
OS_Inactive = 7,
OS_PartiallyFilled = 8 // PartiallyFilled
};
enum OrderFlag { // for CTP offset flag
OF_OpenPosition = 0,
OF_ClosePosition = 1,
OF_CloseToday = 2,
OF_CloseYesterday = 3
};
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。