Need help with wondertrader?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

wondertrader
360 Stars 97 Forks MIT License 692 Commits 0 Opened issues

Description

WonderTrader——量化研发交易一站式框架

Services available

!
?

Need anything else?

Contributors list

No Data

WonderTrader2.png

WonderTrader是什么

  • WonderTrader
    是一个基于
    C++
    核心模块的,适应全市场全品种交易的,高效率高可用的量化交易开发框架。
    • 面向于专业机构的整体架构
    • 数十亿级的实盘管理规模
    • 从数据落地清洗、到回测分析、再到实盘交易、运营调度,量化交易所有环节全覆盖
  • WonderTrader
    依托于高速的
    C++
    核心框架,高效易用的应用层框架(wtpy),致力于打造一个从研发、交易、到运营、调度,全部环节全自动一站式的量化研发交易场景。
  • WonderTrader
    的基本架构图 WonderTrader基本架构.jpg

WonderTrader
的优势

  • 丰富的交易引擎 > - CTA引擎,也叫同步策略引擎,一般适用于标的较少,计算逻辑较快的策略,事件+时间驱动。典型的应用场景包括单标的择时、中频以下的套利等。 > - SEL引擎,也叫异步策略引擎,一般适用于标的较多,计算逻辑耗时较长的策略,时间驱动。典型应用场景包括选股系统、多因子CTA等。 > - HFT引擎,也叫高频策略引擎,主要针对高频或者低延时策略,事件驱动。
  • 完善的开发接口 > - 高效易用的数据接口:每个策略都会有独立的上下文模块,上下文会自动缓存策略所需要的数据,策略直接调用即可。 > - 简洁的信号接口:策略只需要设置目标仓位,后台自动执行。 > - 上下文无关的策略逻辑:策略不需要自己记录任何数据,每次只需要向接口查询即可,数据全部缓存在内存中,访问效率有保障。
  • 专业的策略管理 > - 策略组合统一管理:采用策略组合的方式,主要为了配合专业机构的产品管理。一个组合盘,对应若干个策略的若干个标的,再设置一个基本的单位资金量,这就是产品管理的基本组合盘,方便扩展。 > - 目标仓位合并执行:目标仓位合并以后,避免了自成交的风险,同时降低了保证金占用和佣金开销。 > - 理论部位独立存储:策略的理论部位是独立存储的,组合盘的整体绩效也是独立核算的,轻松胜任内部管理。
  • 全类型的回测支持 > - 语言支持全:不论是
    C++
    开发的策略还是
    wtpy
    下开发的
    python
    策略,或者其他语言子框架下开发的策略,都在统一的回测引擎中统一回测。 > - 回测效率高:回测引擎采用
    C++
    开发,回测效率高,速度快。不管是
    C++
    策略还是
    Python
    策略,都能快速验证。 > - 策略支持完备:除了CTA策略SEL策略可以回测,HFT策略执行单元也能回测
  • 高效的数据伺服 > - 本地数据伺服
    WonderTrader
    内置的存储引擎采用本地存储,在本地建立数据伺服,通过
    udp
    端口广播实时行情,实现1+N的服务结构,可以同时向多个组合盘提供无差别数据服务。专业数据供应商级别的架构,支持搭建多级分发体系,轻松应对各种需求场景。 > - 缓存历史数据:交易过程中,历史数据全部缓存到内存中,同时采用内存直接引用内存数据切片的机制,从根本上避免数据拷贝,提高访问效率。 > - 高效存储引擎:实时数据采用
    mmap
    文件,读写高速并且不会丢失数据。同时支持mysql数据库存储历史数据,更方便在此基础上搭建自有的投研数据库。
  • 灵活的风险控制 > - 组合盘资金风控:组合盘有预设的资金规模,可以针对组合盘的虚拟资金,进行组合盘的资金风控。最大的优点是,如果组合盘处于下行阶段,触发风控以后,即使资金账户没有打到风控线,也不会再继续下行了。 > - 通道流量风控:主要针对合规风险,控制的是总撤单笔数、短时间内下单次数和撤单次数等指标。 > - 账户资金风控:和一般意义上的资金风控一致,主要控制账户资金的回撤等。 > - 紧急人工介入:提供一个紧急的人工介入的入口,通过上传一个配置文件,达到控制的目的。主要适用于单品种出现风险,如果全市场风险,人工停止系统即可。 > - 离合器机制:离合器机制依托于信号和执行分离的机制的,主要是如果策略或组合发生风险,通过离合器机制,直接断开信号执行。优点是不影响策略的逻辑,只断开信号的执行,可以继续观察策略在特定行情阶段的表现,和理论研究相互印证。
  • 强大的控制台wtpy的监控服务) > - 组合盘运行监控:可以查看实时运行日志、策略理论数据、交易通道数据等,并提供手动启停的入口。 monitor.jpg > - 自动调度服务:全自动调度定时任务(启动、停止、重启),支持按周设置任务重复,支持进程守护。 schedule.jpg > - 实时事件通知:监控服务接收组合盘推送的事件,然后转发给监控端,提示给用户。 > - 全自动远程部署(在建):全自动在线远程部署,提供回测环境、实盘环境等多种应用场景的自动化部署服务。 > - 在线回测分析(在建):全自动远程部署以后,提供在线回测服务,并进行结果分析和图形化展示。

应用场景简介

  • 团队内控 策略组合管理的方式,给团队内部管理提供了完美的解决方案。
    • 一方面,不同投研人员,不同的策略可以组合成一个组合运行,而且每个策略都有自己的理论部位,即使交易相同标的也不会互相干扰;
    • 另一方面,C++级别的代码可以提供最大的策略保密性,投研人员不用担心策略的泄露;
    • 策略的绩效是独立核算的,团队内部的考核指标可以很容易实现。
  • 多账户交易多产品配置) 对于不同行情周期下的策略组合,一般团队都会有一个当下最适应的策略组合。但是同一时期,团队可能会同时管理很多个账户,而其实这些账户用到的策略组合都是相同的。这个时候
    WonderTrader
    平台提供的1+N执行架构就能够完美的满足这个需求。
    • 首先,策略组合有自己的单位资金容量和对应的风险参数,以及各个策略的单位交易数量;
    • 其次,不同的账户有不同的资金规模和风险偏好,这个时候只需要根据这些要求配置不同的手数倍率即可; > 假如某组合盘P基本资金规模为500w,预期收益30%,最大回撤10%,收益风险比3:1;A账户使用该组合盘P交易,A账户的资金量为1000w,可以接受的最大回撤也是10%;B账户也使用该组合盘P交易,资金量也是1000w,但是可以接受的最大回撤为20%;这个时候因为A账户风险参数和基本盘一致,所以A账户的手数放大倍数为资金规模/基本盘的资金规模=1000w/500w=2倍;B账户因为可以忍受最大回撤20%,所以手数比例还要再放大一倍,即B账户可以配置4倍。
    • 第三,不同的账户可以配置独立的风控逻辑,账户之间不会互相影响。
  • 多标的跟踪 一些用解释型语言(如
    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
怎么获取

写在最后


  • 特别感谢@ZerounNet,他在使用WonderTrader进行实盘交易的过程中也对WonderTrader提出了许多宝贵意见
  • 关注公众号
    wondertrader
    ,可以收到
    WonderTrader
    的实时资讯
  • 用户交流QQ群上线:
    610730738
    (加入前请先
    star
    一下, 然后提供
    github
    用户名)
  • 更多
    WonderTrader
    的文档请看https://wondertrader.github.io/

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.