在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:starquant开源软件地址:https://gitee.com/physer/starquant开源软件介绍:Welcome to StarQuant
StarQuant(中文名:易数交易系统)是一个轻量的、面向个人( 普通)用户的综合量化交易回测系统,目前主要用于期货期权程序化交易(CTP接口,在实盘测试中),也支持股票交易功能(中泰xtp,宽睿oes接口,待测试和完善)。 当前进展:完成1.0版本beta版本,在ctp实盘测试中: 1)对于流动性好,盘口大的品种非大笔交易下tick级回测与实盘的成交时间和价位一致; 2)无人工干预阿里云/腾讯云 7*24h连续工作,api柜台自动重连断开,行情自动记录,策略自动初始化、开始和停止; 功能特色
注:目前开源的代码具备了从回测到实盘交易的所有基础功能,也展示了系统的原型和框架,方便在此基础上二次开发和定制,定制化的代码(pro版)目前尚未开源,后期如果star数量较多时(1k以上)可以考虑开源。 PRO版特点
系统架构系统主框架基于c++实现,采用c-s架构,回测具有事件驱动模式和向量化两种模式,采用模块化松耦合设计,服务端的行情,交易、数据记录为单独线程,服务端与gui界面、策略之间的进程通信采用消息队列方式(nanomsg)或共享内存(基于功夫易筋经),行情数据可以通过相关端口以消息形式转发到策略进程,策略下单操作也通过相关端口将指令转发到服务端,然后调用相关柜台api,行情api支持CTP,TAP等,数据可以记录到本地(csv文件或Mongodb数据库),策略可以采用python或c++实现。GUI是基于PyQt5,支持手动交易,策略交易,委托持仓账号等信息查看。 开发环境本系统在开发过程中参考了已有的开源软件vnpy,kungfu等。主要开发环境: (1) Manjaro(arch,Linux内核4.14),python 3.7.2,gcc 9.1 (2) Ubuntu18.04, (3) Windows 10 ,vs2015 第三方库:(1)需要系统安装:boost,libmongoc-1.0 (2)需要系统安装或者自行编译cppsrc/ 下的 nanomsg 1.0, log4cplus 2.04,yaml-cpp,fmt5.3, ta-lib, (3)python依赖psutil,pyyaml, pyqt, qdarkstyle等包。 运行首先需要编译完成cppsrc下的库,需要事先安装boost,nanomsg以及CTP,TAP等柜台api的动态链接库。编译过程和原项目类似,使用 CMake 进行编译: $ cd cppsrc$ mkdir build$ cd build$ cmake ..$ make 编译完成后将cppsrc/build/StarQuant下的可执行文件apiserver.exe拷贝到主目录运行即可启动服务端,gui界面执行gui.py即可启动,运行strategy.py可启动单独的策略进程,运行recorder.py可启动行情记录进程。 编写约定c++参考google 的c++ guide, cpplint检查; python 采用flake8检查,autopep8格式化; 变量命名:类名采用驼峰式,单词首字母大写,不包含_字符;类成员变量字母一般小写,后加_,如data_,全局变量加g_修饰,函数一般大小写混合形式。 使用说明品种符号约定:采用全名的形式:交易所 类型 商品名 合约,如SHFE F RB 1905对于ctp,程序内部api会转换为对应的简写形式,rb1905,行情、交易、策略之间消息传递的格式:消息头|消息内容消息头:目的地|源地址|类型,类型有: 消息内容:对应类型的数据 DemoTODO本系统完成了版本1.0的beta版本,正在实盘测试中,同时在完善c++回测、向量化回测,cli界面。 |
请发表评论