重磅更新来袭!WonderTrader新版本v0.4.0全新发布

今天(2020年7月6日)WonderTrader发布了最新版本,有两个重大更新

v0.4.0更新如下:

  • 新增一个选股调度引擎,用于调度应用层的选股策略,得到目标组合以后,提供自动执行服务,暂时只支持日级别以上的调度周期,执行会放到第二天
  • 因为新增了选股调度引擎,所以全面重构WtPorterWtBtPorter导出的接口函数,以便调用的时候区分
  • 新增一个独立的执行器模块WtExecMon,并导出C接口提供服务。主要是剥离了策略引擎逻辑,提供单纯的执行服务,方便作为单纯的执行通道,嫁接到其他框架之下
  • Windows下的开发环境从vs2013升级到vs2017boost1.72curl需要同步升级

两个重大更新简单说明:

  • 选股引擎,也叫做时间驱动引擎,主要用于执行定时的较大计算量的任务,比如多因子选股等,所以WonderTrader内部也命名为选股引擎,相应的策略基类也叫做BaseSelStrategy,而策略的API接口也相应叫做SelContext

    • 选股引擎主要的适用于需要大量计算的场景,比较典型的就是选股场景。选股引擎底层采用异步回调,策略的计算逻辑可以拥有更多的执行时间,而不用担心将行情通道和交易通道阻塞。相对比的,原来提供的Cta引擎,主要是通过事件驱动(ontick/onbar/onschedule)同步回调,要求策略逻辑尽可能简洁,耗时短。
    • 选股引擎回测代码示例如下

      from wtpy import WtBtEngine
      from Strategies.DualThrust_Sel import StraDualThrustSel
      
      if __name__ == "__main__":
          #创建一个运行环境,并加入策略
          engine = WtBtEngine(isCta=False)#isCta主要用于标记是CTA引擎还是SEL引擎
          engine.init('.\\Common\\', "configbt.json")
          engine.configBacktest(202005150900,202006051500)
          engine.configBTStorage(mode="bin", path="E:/WTP_Data/")
          engine.commitBTConfig()
          
          # 创建一个选股策略,其实是一个DualThrust的变种,通过遍历目标标进行DualThrust的计算逻辑来实现
          straInfo = StraDualThrustSel(name='DT_COMM_SEL', codes=["CFFEX.IF.HOT","SHFE.rb.HOT","DCE.i.HOT"], barCnt=50, period="m5", days=30, k1=0.1, k2=0.1)
          engine.set_sel_strategy(straInfo, time=5, period="min")
      
          engine.run_backtest()
      
          kw = input('press any key to exit\n')
      
          engine.release_backtest()
  • 独立执行器是另一个重大更新。独立执行器的意义在于:无论你用何种策略框架产生的信号,你都能够很轻松的调用独立执行器来执行信号。这就从根本上为迁移平台存有顾虑的用户提供了一条捷径,尤其对于那些想要提升自己的管理效率,但是又没有合适的技术框架的用户来说,这绝对是一个巨大的利好。

    • 对于已经有成熟策略在别的平台上实盘的用户,如果有类似的需求:一套策略需要在多个账号上运行,一般平台上只能运行多个策略实例,每个实例对应一个交易账号,但是这样管理效率很低,想要重构原框架,开发能力和精力都不允许,开发完成以后还需要测试,迁移别的平台又意味着全部策略重写,那么独立执行器就能帮你彻底解决这个问题。
    • 对于日级别以上的策略类型,特别是选股策略。就可以通过独立执行器就能简单实现调仓的目的。
    • 独立执行器调用代码示例如下

      from wtpy import WtExecApi
      
      if __name__ == "__main__":
      
          execMon = WtExecApi()
      
          execMon.initialize("logcfgexec.json")
          execMon.config("config_exec.json")
          execMon.run()
      
          execMon.set_position("CFFEX.IF.2007", 1)
      
          input('press any key to exit\n')
          execMon.release()

下一阶段的计划

  • 将高频策略引擎WtHftEngine导出到python
  • 交易通道数据落地
  • wtpy中会提供一个内置的基于flask的服务引擎,在此基础上实现一套webui,方便初学者调用
  • 继续完善文档

你可能感兴趣的:(c++,python,量化,开源框架,金融科技)