
这是WonderTrader针对Python3适配的子框架
- WtBtAnalyst.py 回测分析模块,主要是利用回测生成的数据,计算各项回测指标,并输出到
excel文件- WtCtaOptimizer
CTA优化器,主要是利用multiprocessing并行回测,并统计各项交易指标,最后将统计结果汇总输出到csv文件- WtHotPicker 国内期货换月规则辅助模块,支持从交易所网站页面爬取数据确定换月规则,也支持解析
datakit每日收盘生成的snapshot.csv来确定换月规则
该模块主要包含了所有和
C++底层对接的接口模块
- ContractLoader.py 主要用于通过
CTP等接口加载基础的commodities.json和contracts.json文件- WtBtWrapper.py 主要用于和回测引擎
C++核心模块对接- WtDtWrapper.py 主要用于和数据组件
C++核心模块对接- WtDtHelper.py 主要提供将用户自己的数据和
WonderTrader内部数据格式进行转换的功能- WtDtServoApi.py 主要向用户提供直接通过
python访问datakit落地的数据的接口- WtExecApi.py 主要用于和
C++独立执行模块WtExecMon对接- WtWrapper.py 主要用于和实盘交易引擎
C++核心模块对接- WtMQWrapper.py 主要提供直接使用底层WtMsgQue模块的对接
- WtDtHelper.py 主要用于和底层的
WtDtHelper数据辅助模块对接
该模块主要包含了内置的监控服务,提供了
Http和websocket两种连接方式
- DataMgr.py 主要用于读取并缓存组合数据
- EventReceiver.py 主要用于在指定的
udp端口接收组合转发的各种事件- PushSvr.py 主要用于向
web提供websocket服务- WatchDog.py 主要用于自动调度服务端的进程
- WtBtMon.py 主要进行回测的管理
- WtMonSvr.py 监控服务核心服务模块 ,利用
flask实现了一个http服务接口- static
webui静态文件
主要位于根节点下,包含了各个子模块的入口组件
- WtCoreDefs.py 主要定义的
Python版本的策略基类,方便用户重写- CodeHelper.py 品种代码辅助模块,内置了一些方法,方便使用
- ContractMgr.py 合约管理器模块,用于加载
contracts.json或stocks.json文件,并提供查询方法- CtaContext.py 主要定义了
CTA策略的上下文,可以理解为单策略的运行环境- HftContext.py 主要定义了
HFT策略的上下文,可以理解为单策略的运行环境- SelContext.py 主要定义了
SEL策略的上下文,可以理解为单策略的运行环境- ExtToolDefs.py 扩展模块定义文件,主要定义了一些扩展模块的基础接口
- ProductMgr.py 品种管理器,主要用于
Python环境中的合约属性、品种属性查询- SelContext.py 选股策略上下文,即选股策略直接交互的
API- SessionMgr.py 交易时间模板管理器,主要用于
Python环境中的交易时段模板管理- StrategyDefs.py 各引擎策略基础定义模块,定义了
CTA、HFT、SEL三种策略基类- WtBtEngine.py 回测引擎转换模块,主要封装底层接口调用
- WtDtEngine.py 数据引擎转换模块,主要封装底层接口调用
- WtEngine.py 交易引擎转换模块,主要封装底层接口调用
WonderTrader
wtpy
github地址:https://github.com/wondertrader/wtpygitee地址:https://gitee.com/wondertrader/wtpy
wtpy获取地址:https://pypi.org/project/wtpy/
wtpy可以直接在python3.8以上的版本安装
pip install wtpy --upgrade
wtpy作为底层回测引擎的强化学习框架Wt4ElegantRL
https://github.com/drlgistics/Wt4ElegantRLwondertrader,可以收到WonderTrader的实时资讯610730738(加入前请先star一下, 然后提供github用户名)WonderTrader的文档请看https://wondertrader.github.io/WonderTrader半官方文档 https://dumengru.github.io/docs_wondertrader/C++底层更新到2023/11/27发布的v0.9.9版本C++底层更新到2023/08/18发布的v0.9.8版本C++底层更新到2023/03/21发布的v0.9.7版本C++底层更新到2022/12/19发布的v0.9.6版本C++底层更新到2022/11/04发布的v0.9.5版本C++底层更新到2022/08/29发布的v0.9.4版本C++底层更新到2022/07/14发布的v0.9.3版本C++底层更新到2022/03/28发布的v0.9.2版本C++底层更新到2022/03/14发布的v0.9.0版本C++底层更新到2021/12/24发布的v0.8.0版本ExtDataLoder的机制,实盘和回测框架都可以通过应用层的扩展数据加载器加载历史数据(可参考demos/test_dataexts)ExtDataDumper的机制,如果向datakit注册了ExtDataDumper,在收盘作业的时候,就会通过ExtDataDumper将实时数据转储(可参考demos/test_dataexts)C++底层完善了对T+1交易机制的支持WatchDog模块做了调整,增加了对进程使用的内存的监控DequeRecord(By ZerounNet),用于python部分的缓存替换原来的WtKlinData和WtHftData,在数据缓存方面,大致可以提升5%~10%的性能demos下新增一个cta_unit_test,作为一个基准测试demo,以后会逐步完善bug修正C++底层更新到2021/10/24发布的v0.7.1版本C++底层增加了单步控制机制,用于控制回测进度,主要为了配合强化学习框架的调用习惯WtDtEngine支持扩展Parser的接入,可以参考/demos/datakit_fut/testExtParser.pyC++底层更新到2021/09/12发布的v0.7.0版本WtDataServo模块,分为两种实现方式, 一种是调用本地底层WtDtServo模块,直接访问数据文件,根据需要可开启web接口,另外一种是直接访问第一种实现方式提供的web接口拉取数据,详情可以参考/demos/test_dataservoWtWrapper和WtBtWrapper,将原来的global变量全部改成局部变量,可以提升运行效率singleton修饰器限定Wrapper为单例,和底层统一WtMsgQue模块,通过WtMQWrapper模块调用底层的WtMsgQue模块EventReceiver模块改成调用WtMsgQue来实现,并按照回测和实盘框架分别实现EventReceiverWatchDog启动和监控进程的机制进行了优化,不再使用threading挂载进程句柄的方式,而是利用cmdline和processid进行检查和监控,这样WtMonSvr重启之后,就可以重新根据命令行挂在已经在运行的进程WtMonSvr新增回测管理模块WtBtMon,用于提供回测相关的接口服务WtMonSvr完善了组合配置文件查询和修改的接口WtMonSvr完善了组合风控过滤器filters.json的读取机制WtMonSvr新增了用户修改密码和管理员重设用户密码的接口PushSvr根据EventReceiver收到的数据,进行了适配,完善了消息推送的机制WtBtAnalyst模块新增了run_simple接口,用于只进行最简单的每日资金分析,并将结果输出到summary.json文件apps下新增了一个WtHotPicker.py模块,用于确定主力合约和次主力合约webui剥离出来,单独发布到wtconsole仓库C++底层更新到2021/07/19发布的v0.6.5版本WtDtHelper新增一个resample_bars接口,用于将制定的dsb数据文件重新采样为其他周期的K线SessionInfo新增一个toString对象,生成json格式的字符串CTAOptimizer支持设置多个回测时段read_dsb_bars和read_dsb_ticks接口,同时新增read_dmb_bars和read_dmb_ticks接口调用WtDtHelper.dll的同名接口Context新增一个is_backtest属性,用于判断是否在回测模式webui控制台针对风控员的权限控制webui完善C++底层更新到2021/05/24发布的v0.6.4版本WtDtHelper中调用优化,去掉了globalWtDtHelper新增了直接从python里向C++底层喂历史数据的接口trans_bars和trans_ticksdemoC++底层进行适配:1、CTA增加一个stra_get_fund_data接口,2、回测引擎,支持设置slippageWtEngine构造函数提供指定数据输出目录的genDir参数,以及日志配置文件的logCfg参数C++底层更新到2021/04/14发布的v0.6.3版本WtBtAnalyst功能大幅度扩展C++底层更新到2021/03/17发布的v0.6.2版本webui的部分表格添加了排序和统计功能C++底层更新到2021/02/26发布的v0.6.1版本PlatformHelper模块,用于确定操作系统的各种信息size->capacity,count->size,便于用户理解WtDtHelper模块新增两个接口read_dsb_ticks和read_dsb_bars,同步调用C++底层WtDtHelper模块的同名接口,用于直接读取dsb文件CTA策略新增一个stra_get_last_exittime用于获取上一个出场信号WtBeEngine和WtCtaOptimizer两个模块都增加了对C++策略的支持session开始和结束事件的响应接口/qrygrpentry、/cmtgrpentryweb-ui:去掉vue-json-viewer库,改用codemirror,用于展示和编辑代码web-ui:控制台新增入口代码修改的组件,用于修改组合盘下的run.py入口文件web-ui:优化了一些展示的细节wtpy.apps下添加了一个datahelper子模块,该模块的主要作用就是将不同数据源的数据按照WonderTrader支持的格式保存起来C++底层更新到2021/01/26发布的v0.6.0版本CTA策略API新增一个stra_get_tdate,用于获取当前交易日CTA策略API和SEL策略API各新增一个stra_get_all_position,用于获取全部的持仓数据WtBtWrapper模块中对tick数据的处理WtDtHelperC++底层新增的HFT接口的对接C++底层新增的股票Level2数据访问接口的对接WtDataDefs模块中的WtTickData改成WtHftData,作为高频数据的通用容器WatchDog模块中修改了一周星期的序列,因为Python从周一到周天标记为0-6,而WonderTrader采用周天到周六为0-6C++底层更新到2020/12/25发布的v0.5.4版本C++底层接口针对传递配置文件内容的支持做了修改,同步修改了wtpy中的部分关联代码WatchDog模块在linux下的启动参数的bug,解决了linux下无法启动的问题bugWebUI的一些展示细节wrapper下新增一个WtDtHelper模块,用于对接C++底层的WtDtHelper模块,给python调用处理数据转换的任务WtBtAnalyst模块迁移到wtpy.apps下WtOptimizer,用于遍历优化策略参数CTPLoader增加一个isMini的参数,用于控制底层调用MiniLoader对接CTPMini2进行拉取WtKlineData新增一个slice方法,用于对已有K线进行切片C++底层更新到2020/12/08发布的v0.5.3版本CtaContext新增一个stra_get_sessinfo接口,用于获取品种的交易时间信息monitor模块中的web-gui修改了一些bugWonderTrader核心为v0.5.2monitor增加了一个日志模块WtLogger.py,内部使用logging模块来记录日志web-ui的部分功能和配色CTPLoader模块,主要用于调用底层CTPLoader执行程序,用于从CTP账号加载合约列表WonderTrader核心为v0.5.1monitor监控服务模块,其中包含http服务、websocket服务两种对web端提供的服务,同时新增了组合事件组件,用于接收组合转发出来的实时事件,还新增一个调度模块用于自动调度服务器上的定时任务web-ui目录,用于管理wtpy的web-ui项目,暂时实现了PC版的监控界面,位于web-ui/console下,web-ui采用vue2+webpack来实现,前端采用element-ui界面库,能够实时提供强大的组合盘监控服务WonderTrader核心为v0.5.0hft策略以后,策略可以直接调用行情接入模块Parsers,所以调整C++底层模块的目录结构,方便策略调用HftContext以及BaseHftStrategy两个针对HFT策略的基础模块WtPorter和WtBtPorter导出的接口函数,以便调用的时候区分WtExecMon,并导出C接口提供服务。主要是剥离了策略引擎逻辑,提供单纯的执行服务,方便作为单纯的执行通道,嫁接到其他框架之下Windows下的开发环境从vs2013升级到vs2017,boost1.72和curl需要同步升级TraderMocker,可以满足目前已经支持的股票和期货的仿真交易CTPMini)TWAPbugOverall
Maintained
Code review
PyPI
Latest release
Releases this year
431 followers · starred Aug 2025
24 followers · starred Jan 2025
13 followers · starred Jul 2023
199 followers · starred Sep 2024

这是WonderTrader针对Python3适配的子框架
- WtBtAnalyst.py 回测分析模块,主要是利用回测生成的数据,计算各项回测指标,并输出到
excel文件- WtCtaOptimizer
CTA优化器,主要是利用multiprocessing并行回测,并统计各项交易指标,最后将统计结果汇总输出到csv文件- WtHotPicker 国内期货换月规则辅助模块,支持从交易所网站页面爬取数据确定换月规则,也支持解析
datakit每日收盘生成的snapshot.csv来确定换月规则
该模块主要包含了所有和
C++底层对接的接口模块
- ContractLoader.py 主要用于通过
CTP等接口加载基础的commodities.json和contracts.json文件- WtBtWrapper.py 主要用于和回测引擎
C++核心模块对接- WtDtWrapper.py 主要用于和数据组件
C++核心模块对接- WtDtHelper.py 主要提供将用户自己的数据和
WonderTrader内部数据格式进行转换的功能- WtDtServoApi.py 主要向用户提供直接通过
python访问datakit落地的数据的接口- WtExecApi.py 主要用于和
C++独立执行模块WtExecMon对接- WtWrapper.py 主要用于和实盘交易引擎
C++核心模块对接- WtMQWrapper.py 主要提供直接使用底层WtMsgQue模块的对接
- WtDtHelper.py 主要用于和底层的
WtDtHelper数据辅助模块对接
该模块主要包含了内置的监控服务,提供了
Http和websocket两种连接方式
- DataMgr.py 主要用于读取并缓存组合数据
- EventReceiver.py 主要用于在指定的
udp端口接收组合转发的各种事件- PushSvr.py 主要用于向
web提供websocket服务- WatchDog.py 主要用于自动调度服务端的进程
- WtBtMon.py 主要进行回测的管理
- WtMonSvr.py 监控服务核心服务模块 ,利用
flask实现了一个http服务接口- static
webui静态文件
主要位于根节点下,包含了各个子模块的入口组件
- WtCoreDefs.py 主要定义的
Python版本的策略基类,方便用户重写- CodeHelper.py 品种代码辅助模块,内置了一些方法,方便使用
- ContractMgr.py 合约管理器模块,用于加载
contracts.json或stocks.json文件,并提供查询方法- CtaContext.py 主要定义了
CTA策略的上下文,可以理解为单策略的运行环境- HftContext.py 主要定义了
HFT策略的上下文,可以理解为单策略的运行环境- SelContext.py 主要定义了
SEL策略的上下文,可以理解为单策略的运行环境- ExtToolDefs.py 扩展模块定义文件,主要定义了一些扩展模块的基础接口
- ProductMgr.py 品种管理器,主要用于
Python环境中的合约属性、品种属性查询- SelContext.py 选股策略上下文,即选股策略直接交互的
API- SessionMgr.py 交易时间模板管理器,主要用于
Python环境中的交易时段模板管理- StrategyDefs.py 各引擎策略基础定义模块,定义了
CTA、HFT、SEL三种策略基类- WtBtEngine.py 回测引擎转换模块,主要封装底层接口调用
- WtDtEngine.py 数据引擎转换模块,主要封装底层接口调用
- WtEngine.py 交易引擎转换模块,主要封装底层接口调用
WonderTrader
wtpy
github地址:https://github.com/wondertrader/wtpygitee地址:https://gitee.com/wondertrader/wtpy
wtpy获取地址:https://pypi.org/project/wtpy/
wtpy可以直接在python3.8以上的版本安装
pip install wtpy --upgrade
wtpy作为底层回测引擎的强化学习框架Wt4ElegantRL
https://github.com/drlgistics/Wt4ElegantRLwondertrader,可以收到WonderTrader的实时资讯610730738(加入前请先star一下, 然后提供github用户名)WonderTrader的文档请看https://wondertrader.github.io/WonderTrader半官方文档 https://dumengru.github.io/docs_wondertrader/C++底层更新到2023/11/27发布的v0.9.9版本C++底层更新到2023/08/18发布的v0.9.8版本C++底层更新到2023/03/21发布的v0.9.7版本C++底层更新到2022/12/19发布的v0.9.6版本C++底层更新到2022/11/04发布的v0.9.5版本C++底层更新到2022/08/29发布的v0.9.4版本C++底层更新到2022/07/14发布的v0.9.3版本C++底层更新到2022/03/28发布的v0.9.2版本C++底层更新到2022/03/14发布的v0.9.0版本C++底层更新到2021/12/24发布的v0.8.0版本ExtDataLoder的机制,实盘和回测框架都可以通过应用层的扩展数据加载器加载历史数据(可参考demos/test_dataexts)ExtDataDumper的机制,如果向datakit注册了ExtDataDumper,在收盘作业的时候,就会通过ExtDataDumper将实时数据转储(可参考demos/test_dataexts)C++底层完善了对T+1交易机制的支持WatchDog模块做了调整,增加了对进程使用的内存的监控DequeRecord(By ZerounNet),用于python部分的缓存替换原来的WtKlinData和WtHftData,在数据缓存方面,大致可以提升5%~10%的性能demos下新增一个cta_unit_test,作为一个基准测试demo,以后会逐步完善bug修正C++底层更新到2021/10/24发布的v0.7.1版本C++底层增加了单步控制机制,用于控制回测进度,主要为了配合强化学习框架的调用习惯WtDtEngine支持扩展Parser的接入,可以参考/demos/datakit_fut/testExtParser.pyC++底层更新到2021/09/12发布的v0.7.0版本WtDataServo模块,分为两种实现方式, 一种是调用本地底层WtDtServo模块,直接访问数据文件,根据需要可开启web接口,另外一种是直接访问第一种实现方式提供的web接口拉取数据,详情可以参考/demos/test_dataservoWtWrapper和WtBtWrapper,将原来的global变量全部改成局部变量,可以提升运行效率singleton修饰器限定Wrapper为单例,和底层统一WtMsgQue模块,通过WtMQWrapper模块调用底层的WtMsgQue模块EventReceiver模块改成调用WtMsgQue来实现,并按照回测和实盘框架分别实现EventReceiverWatchDog启动和监控进程的机制进行了优化,不再使用threading挂载进程句柄的方式,而是利用cmdline和processid进行检查和监控,这样WtMonSvr重启之后,就可以重新根据命令行挂在已经在运行的进程WtMonSvr新增回测管理模块WtBtMon,用于提供回测相关的接口服务WtMonSvr完善了组合配置文件查询和修改的接口WtMonSvr完善了组合风控过滤器filters.json的读取机制WtMonSvr新增了用户修改密码和管理员重设用户密码的接口PushSvr根据EventReceiver收到的数据,进行了适配,完善了消息推送的机制WtBtAnalyst模块新增了run_simple接口,用于只进行最简单的每日资金分析,并将结果输出到summary.json文件apps下新增了一个WtHotPicker.py模块,用于确定主力合约和次主力合约webui剥离出来,单独发布到wtconsole仓库C++底层更新到2021/07/19发布的v0.6.5版本WtDtHelper新增一个resample_bars接口,用于将制定的dsb数据文件重新采样为其他周期的K线SessionInfo新增一个toString对象,生成json格式的字符串CTAOptimizer支持设置多个回测时段read_dsb_bars和read_dsb_ticks接口,同时新增read_dmb_bars和read_dmb_ticks接口调用WtDtHelper.dll的同名接口Context新增一个is_backtest属性,用于判断是否在回测模式webui控制台针对风控员的权限控制webui完善C++底层更新到2021/05/24发布的v0.6.4版本WtDtHelper中调用优化,去掉了globalWtDtHelper新增了直接从python里向C++底层喂历史数据的接口trans_bars和trans_ticksdemoC++底层进行适配:1、CTA增加一个stra_get_fund_data接口,2、回测引擎,支持设置slippageWtEngine构造函数提供指定数据输出目录的genDir参数,以及日志配置文件的logCfg参数C++底层更新到2021/04/14发布的v0.6.3版本WtBtAnalyst功能大幅度扩展C++底层更新到2021/03/17发布的v0.6.2版本webui的部分表格添加了排序和统计功能C++底层更新到2021/02/26发布的v0.6.1版本PlatformHelper模块,用于确定操作系统的各种信息size->capacity,count->size,便于用户理解WtDtHelper模块新增两个接口read_dsb_ticks和read_dsb_bars,同步调用C++底层WtDtHelper模块的同名接口,用于直接读取dsb文件CTA策略新增一个stra_get_last_exittime用于获取上一个出场信号WtBeEngine和WtCtaOptimizer两个模块都增加了对C++策略的支持session开始和结束事件的响应接口/qrygrpentry、/cmtgrpentryweb-ui:去掉vue-json-viewer库,改用codemirror,用于展示和编辑代码web-ui:控制台新增入口代码修改的组件,用于修改组合盘下的run.py入口文件web-ui:优化了一些展示的细节wtpy.apps下添加了一个datahelper子模块,该模块的主要作用就是将不同数据源的数据按照WonderTrader支持的格式保存起来C++底层更新到2021/01/26发布的v0.6.0版本CTA策略API新增一个stra_get_tdate,用于获取当前交易日CTA策略API和SEL策略API各新增一个stra_get_all_position,用于获取全部的持仓数据WtBtWrapper模块中对tick数据的处理WtDtHelperC++底层新增的HFT接口的对接C++底层新增的股票Level2数据访问接口的对接WtDataDefs模块中的WtTickData改成WtHftData,作为高频数据的通用容器WatchDog模块中修改了一周星期的序列,因为Python从周一到周天标记为0-6,而WonderTrader采用周天到周六为0-6C++底层更新到2020/12/25发布的v0.5.4版本C++底层接口针对传递配置文件内容的支持做了修改,同步修改了wtpy中的部分关联代码WatchDog模块在linux下的启动参数的bug,解决了linux下无法启动的问题bugWebUI的一些展示细节wrapper下新增一个WtDtHelper模块,用于对接C++底层的WtDtHelper模块,给python调用处理数据转换的任务WtBtAnalyst模块迁移到wtpy.apps下WtOptimizer,用于遍历优化策略参数CTPLoader增加一个isMini的参数,用于控制底层调用MiniLoader对接CTPMini2进行拉取WtKlineData新增一个slice方法,用于对已有K线进行切片C++底层更新到2020/12/08发布的v0.5.3版本CtaContext新增一个stra_get_sessinfo接口,用于获取品种的交易时间信息monitor模块中的web-gui修改了一些bugWonderTrader核心为v0.5.2monitor增加了一个日志模块WtLogger.py,内部使用logging模块来记录日志web-ui的部分功能和配色CTPLoader模块,主要用于调用底层CTPLoader执行程序,用于从CTP账号加载合约列表WonderTrader核心为v0.5.1monitor监控服务模块,其中包含http服务、websocket服务两种对web端提供的服务,同时新增了组合事件组件,用于接收组合转发出来的实时事件,还新增一个调度模块用于自动调度服务器上的定时任务web-ui目录,用于管理wtpy的web-ui项目,暂时实现了PC版的监控界面,位于web-ui/console下,web-ui采用vue2+webpack来实现,前端采用element-ui界面库,能够实时提供强大的组合盘监控服务WonderTrader核心为v0.5.0hft策略以后,策略可以直接调用行情接入模块Parsers,所以调整C++底层模块的目录结构,方便策略调用HftContext以及BaseHftStrategy两个针对HFT策略的基础模块WtPorter和WtBtPorter导出的接口函数,以便调用的时候区分WtExecMon,并导出C接口提供服务。主要是剥离了策略引擎逻辑,提供单纯的执行服务,方便作为单纯的执行通道,嫁接到其他框架之下Windows下的开发环境从vs2013升级到vs2017,boost1.72和curl需要同步升级TraderMocker,可以满足目前已经支持的股票和期货的仿真交易CTPMini)TWAPbugOverall
Maintained
Code review
PyPI
Latest release
Releases this year
431 followers · starred Aug 2025
24 followers · starred Jan 2025
13 followers · starred Jul 2023
199 followers · starred Sep 2024