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

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

v0.4.0更新以下:

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

两个重大更新简单说明:

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

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

      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()
  • 独立执行器是另外一个重大更新。独立执行器的意义在于:不管你用何种策略框架产生的信号,你都可以很轻松的调用独立执行器来执行信号。这就从根本上为迁移平台存有顾虑的用户提供了一条捷径,尤为对于那些想要提高本身的管理效率,可是又没有合适的技术框架的用户来讲,这绝对是一个巨大的利好。flask

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

      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,方便初学者调用
  • 继续完善文档
相关文章
相关标签/搜索