WonderTrader介绍
前几篇文章主要围绕着vn.py展开,vn.py是少见的开箱即用的开源量化解决方案。对于不熟悉python,或者不熟悉交易框架的人来,vn.py绝对是最佳的选择。
但是vnpy也是有槽点的。
1. 绝大部分功能都能用,但不是太好用,需要自己二次开发
2. python因为GIL的原因,性能一直被诟病。
1. 多策略运行的时候,如果加载到一个python环境中,执行效率并不高。
2. 回测太慢
通常为了解决第二个问题,我们的方案是多开几个python环境,或者采用多进程的方式运行每一个策略。这个方式的好处就是每个策略都能保证运行,但是在vnpy中,就需要在每个环境中单独运行一个ctp的环境(ctp最多开5个环境)。
所以需要在vnpy中,把行情保存放到一个单独的运行环境中(最好全部保存)然后策略运行环境中调用行情中心的数据进行交易。
而这所有的工作都有一个框架已经完成了,那就是WonderTrader。
WonderTrader的设计其实是非常棒的,但是由于为了解决实际交易中的种种问题,导致WonderTrader的使用过程非常繁琐,并且由于文档并不完善,所以对新手并不友好。
我强烈推荐有IT能力的,但是不想在架构上更改太多人团队,或者有高频需求的团队使用WonderTrader。
WonderTrader虽然是C++开发的,但是有一层Python的环境,那就是WtPy。
WonderTrader介绍
>WonderTrader是一个基于`C++`核心模块的,适应全市场**全品种**交易的,**高效率*、**高可用**的量化交易开发框架。>- **面向于专业机构的整体架构** >- **数十亿级的实盘管理规模** >- 从数据落地清洗、到回测分析、再到实盘交易、运营调度,**量化交易所有环节全覆盖* >- `WonderTrader`依托于高速的C++核心框架,高效易用的应用层框架([wtpy](
https://github.com/wondertrader/wtpy)),致力于打造一个从研发、交易、到运营、调度,全部环节全自动一站式的量化研发交易场景。
安装
pip install wtpy
下载demo
https://gitee.com/wondertrader/wtpy
数据准备
rqdata
从RqData中下载数据
wonderTrader的数据是采用文件的方式存储,昨天我说过做好的方式是使用文件存储,这是行情数据的特点决定的,查询的时候基本上都是按照k线类型和品种来查询,而组合过程基本上在内存中组合对齐。所以用文件的方式是最简单直接的方式。
## 第一个回测
进入到官方demos中,找到cta_fut_bt,直接运行里面的runBT文件
python runBT.py
wtpy的回测结果会直接输出一个excel文件来。
运行实盘
由于wtpy是把行情和交易分开的,所以需要提前运行一的datakit组件,这个组件会作为行情伺服器一直运行,其它策略可以通过它调用历史数据和接受实时行情。
在demo中运行 找到datakit_fut 直接运行里面的 runDT.py文件
然后打开策略运行策略。找到cta_fut文件夹 运行其中的run.py
开启监控
监控中可以直观的监控策略运行,并且能配置各种自动运行的任务
在test_monitor中 直接运行testMonSrv.py文件!
总结
wtpy提供了一套开箱可用的方法,和vnpy完整的生态不同,wtpy一切都准备好了,只要按照他的布置一步一步来就行。
值得一提的是,很多人认为wtpy是C++写的,应该比纯python框架快很多,但是经过我的测试来看,只要是在python平台中写的策略,其实速度都差不了太多,因为所有回测框架的运行速度都是基于 回测引擎的速度+策略的速度,而策略运行速度往往是大头(在回测过程中)。所以不要在速度上期望太多。