WonderTrader——量化研发交易一站式框架
WonderTrader是一个基于
C++核心模块的,适应全市场全品种交易的,高效率、高可用的量化交易开发框架。
WonderTrader依托于高速的
C++核心框架,高效易用的应用层框架(wtpy),致力于打造一个从研发、交易、到运营、调度,全部环节全自动一站式的量化研发交易场景。
WonderTrader的基本架构图
WonderTrader的优势
C++开发的策略还是
wtpy下开发的
python策略,或者其他语言子框架下开发的策略,都在统一的回测引擎中统一回测。 > - 回测效率高:回测引擎采用
C++开发,回测效率高,速度快。不管是
C++策略还是
Python策略,都能快速验证。 > - 策略支持完备:除了CTA策略、SEL策略可以回测,HFT策略和执行单元也能回测
WonderTrader内置的存储引擎采用本地存储,在本地建立数据伺服,通过
udp端口广播实时行情,实现1+N的服务结构,可以同时向多个组合盘提供无差别数据服务。专业数据供应商级别的架构,支持搭建多级分发体系,轻松应对各种需求场景。 > - 缓存历史数据:交易过程中,历史数据全部缓存到内存中,同时采用内存直接引用内存数据切片的机制,从根本上避免数据拷贝,提高访问效率。 > - 高效存储引擎:实时数据采用
mmap文件,读写高速并且不会丢失数据。同时支持mysql数据库存储历史数据,更方便在此基础上搭建自有的投研数据库。
WonderTrader平台提供的1+N执行架构就能够完美的满足这个需求。
Python)开发核心模块的量化交易平台,在标的数不多的情况下,能够胜任各种不同的应用场景。但是当需要跟踪的标的数达到100个以上,甚至是50个以上时,就无法满足需求了。一方面资源占用大,利用multiprocess等机制,虽然各个标的独立运行,但是上百个标的就要新建上百个进程,内存和CPU开销都非常大;另一方面策略效率低,资源争强严重的情况下,策略反应也会变慢。 WonderTrader核心采用C++开发,数据伺服更是一开始就设计成向多个组合同时提供服务的架构,同时策略和执行剥离,信号执行和策略计算完全在两个不同的线程中独立运行。在这样的架构下,就能够很好的满足多标的跟踪的需求。
WonderTrader的SEL引擎就是为了满足这方面的需求而定制的。SEL引擎采用异步时间驱动的模式,通过向引擎注册重算时间调度(支持日内,每日、每周、每月的等多种周期),定时触发重算,然后调整多标的的目标仓位,从而输出信号。
wtpy简介
wtpy是构建在
WonderTrader核心模块之上的,使用
Python3开发的
WonderTrader的
Python3子框架
Python作为量化领域最流行的语言,在时序数据处理上有许多非常受欢迎的强大的第三方库
Python作为一种解释型语言,代码编写和调试都非常方便,不需要编译就可以直接运行
Python的跨平台属性也使
Python可以应用到更多的场景中
wtpy主要功能是作为
WonderTrader在
Python语言的外延
wtpy还内置了一个强大的监控服务组件
WtMonSvr。该组件提供了远程的
webui的监控界面,可以实时监控策略组合的运行情况,还提供全天
24×7的自动调度服务,为你的交易保驾护航。
WonderTrader怎么获取
WonderTrader的
github地址:https://github.com/wondertrader/wondertrader
wtpy的
github地址:https://github.com/wondertrader/wtpy
wtpy获取地址:https://pypi.org/project/wtpy/
wtpy可以直接在
python3.5以上的版本安装
pip install wtpy
WonderTrader开源以后,虽然没有专门进行过推广,但是也吸引了一些愿意第一批吃螃蟹的用户。
WonderTrader还不够成熟的当下,还能够得到这些用户的认可,这是
WonderTrader开发团队的荣幸。在这里要特别感谢@sibaba8888,他提出了不少宝贵的改进意见,同时也要感谢@sunphoenix,他给我们也提供了很多的有用的信息。
wondertrader,可以收到
WonderTrader的实时资讯
610730738(加入前请先
star一下, 然后提供
github用户名)
WonderTrader的文档请看https://wondertrader.github.io/