前言
之前发过一篇关于如何搭建WonderTrader开发环境的文章《从零搭建WonderTrader的开发环境》,帮助不少用户解决了一些编译源码的问题。因为笔者是在Ubuntu 18.04 LTS
上开发的,而有不少用户在CentOS
上搭建开发环境以后,反馈编译出错。为此笔者特地的在CentOS7
和CentOS8
上进行了一番测试,最后得出的结论是:由于CentOS7
和CentOS8
的gcc
版本和Ubuntu 18.04 LTS
上的gcc
版本不一致,所以导致笔者共享的预编译库无法正常链接成功。
于是本文就针对CentOS
下搭建开发环境,专门整理了一些细节,希望能帮到有需要的人。本文末尾,还介绍了12月25日发布的最新版本v0.5.4
,欢迎大家尝试、拍砖。
共享资源
编译源码所需的共享资源已经上传到百度云盘,其中包括了Ubuntu 18.04 LTS
、CentOS7
和CentOS8
三个操作系统的预编译依赖库,需要的朋友可以自行下载
下载连接:https://pan.baidu.com/s/1Bdxh...
提取码: d6bh
CentOS
开发环境搭建
安装系统:CentOS7(2009)
或者CentOS8(2011)
网络上虚拟机安装CentOS
的教程很多,这里就不做赘述了。
1、安装开发环境
$ yum install -y gcc gcc-c++ make automake
使用gcc --version
查看gcc
的版本号CentOS7
下gcc
版本号为4.8.5
CentOS8
下gcc
版本号为8.3.1
安装cmake
$ yum install cmake
使用cmake --version
查看cmake
的版本号CentOS7
下cmake
版本号为2.8.12
$ cmake --version
cmake version 2.8.12.2
CentOS8
下cmake
版本号为3.11.4
$ cmake --version
cmake version 3.11.4
CMake suite maintained and supported by Kitware (kitware.com/cmake).
2、启用epel源
因为CentOS7
下cmake
版本是2.8.12
,而WonderTrader
的CMakeLists.txt
要求cmake
最低版本是3.0.0
。
cmake_minimum_required(VERSION 3.0.0)
但是CentOS7
下需要启用epel
源才能通过yum
安装cmake3
,不然就需要自己下载源码编译cmake3
。此外,因为共享资源基本都是7z
压缩包,所以还需要安装p7zip
,而p7zip
也依赖于epel
源,所以CentOS8下
也需要启用epel
源。当然也可以直接下载rpm
包安装,读者可以自行选择安装方式。epel
源的启用,需要下载epel
的安装包,官方下载地址为http://mirrors.kernel.org/fed...
读者根据系统版本下载对应的rpm
文件即可,下载完以后通过rpm
安装。
$ wget -c http://mirrors.kernel.org/fedora-epel/epel-release-latest-7.noarch.rpm
$ rpm -ivh epel-release-latest-7.noarch.rpm
3、安装cmake3
(CentOS7
)
$ yum install cmake3
4、安装p7zip
$ yum install p7zip
5、安装git
$ yum install git
6、从共享资源
中下载预编译依赖库mydeps_centos7.7z
/mydeps_centos8.7z
并上传到CentOS
可以使用使用SecureFX
(共享资源中的SecureCRT
自带SecureFX
)上传到虚拟机,如下图:
7、将预编译依赖库解压到/home
下
$ 7za x mydeps_centos7.7z /home
8、拉取WonderTrader
的源码
$ git clone https://github.com/wondertrader/wondertrader.git
9、进入src
目录,修改build_release.sh
中的cmake
指令为cmake3
(CentOS7
)
$ vim build_release.sh
10、执行编译脚本
$ ./build_release.sh
新版本v0.5.4发布
12月25号发布了最新的v0.5.4版本,wtpy同步升级
WonderTrader
在v0.5.4
中做了如下修改:
WtBtPorter
、WtPorter
、WtExecMon
的初始化接口,全部改成支持传文件名和文件内容两种方式CTA
实盘引擎中,策略发出信号的时候,新增了一个订阅tick
的操作,主要针对策略交易未订阅K线的品种
的需求- 优化了
Windows
下dmp
文件生成的路径,方便调试bug
- 回测引擎中,成交明细和平仓明细,新增了一个
BarNumber
的字段,主要用于统计每个交易回合的周期数,BarNumber
指的是主K线的BarNumber
,并且是一个相对开始回测的第一条K线的编号。 - 回测引擎中,针对
CTA
策略交易未订阅K线的品种
的需求做了一些优化 - 全平台中,将能部分
boost
库改成std
的库,减少对boost
的依赖 - 新增一个
WtDtHelper
模块,主要提供数据辅助功能,目前主要是提供csv
和二进制文件的互转,后面还会加入数据库、二进制、csv
的互转接口 - 将平台版本号从
WTSMarcos.h
迁移到WTSVersion.h
中,减少修改版本号引起的重编译
wtpy
在v0.5.4
中做了如下修改:
- C++底层更新到2020/12/25发布的v0.5.4版本
C++
底层接口针对传递配置文件内容的支持做了修改,同步修改了wtpy
中的部分关联代码- 修正了监控服务中的
WatchDog
模块在linux
下的启动参数的bug
,解决了linux
下无法启动的问题 - 修正了监控服务的自动调度任务没有检查是否启用标记,从而导致重复启动的
bug
- 修改了监控服务的
WebUI
的一些展示细节 wrapper
下新增一个WtDtHelper
模块,用于对接C++
底层的WtDtHelpe
r模块,给python
调用处理数据转换的任务- 将
WtBtAnalyst
模块迁移到wtpy.apps
下 - 新增一个
WtOptimizer
,用于遍历优化策略参数
结束语
本文的主要内容就结束了,希望能帮到需要的人。
为了更加方便地让不同平台的用户编译源码,后续笔者会发布docker
版本的开发环境。最后,如果各位读者觉得WonderTrader还不错的,可以向身边正在做平台选型的朋友同事介绍一下,笔者将不胜感激!笔者也将尽量将WonderTrader完善并丰富起来,以满足不同用户的需求!
最后再来一波广告
WonderTrader的github
地址:https://github.com/wondertrad...
WonderTrader官网地址:https://wondertrader.github.io
wtpy的github
地址:https://github.com/wondertrad...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。