当前位置: 首页 > 后端技术 > Python

重大更新即将到来!WonderTraderv0.4.0新版本全新发布

时间:2023-03-26 16:49:20 Python

今天(2020年7月6日)WonderTrader发布了最新版本,有两大更新。v0.4.0更新内容如下:新增选股调度引擎,用于调度应用层的选股策略。获取目标组合后,提供自动执行服务。暂时只支持日线以上的调度周期,会放在秒级执行因为新的选股调度引擎,WtPorter和WtBtPorter导出的接口函数都进行了全面重构,这样调用时,增加了一个独立的执行器模块WtExecMon,导出C接口提供服务。主要是剥离策略引擎的逻辑,提供简单的执行服务,方便作为简单的执行通道,嫁接到其他框架中。Windows下开发环境从vs2013升级到vs2017。Boost1.72和curl需要同步升级。两大更新简要说明:选股引擎,又称时间驱动引擎,主要用于执行计算量较大的定时任务,如多因素选股等,因此WonderTrader也被命名为选股引擎,对应的策略基类也称为BaseSelStrategy,策略的API接口也相应称为SelContext。选股引擎主要适用于需要大量计算的场景,典型的就是选股场景。选股引擎底层采用异步回调,策略的计算逻辑可以有更多的执行时间,不用担心阻塞行情通道和交易通道。相比之下,原先提供的Cta引擎主要采用事件驱动(ontick/onbar/onschedule)同步回调,要求策略逻辑尽可能简洁,耗时。选股引擎回测代码示例如下fromwtpyimportWtBtEnginefromStrategies.DualThrust_SelimportStraDualThrustSelif__name__=="__main__":#创建运行环境并添加策略引擎=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('按任意键退出\n')engine.release_backtest()独立执行器是另一个重大更新。独立执行器的意义在于,无论你使用什么策略框架来生成信号,都可以方便地调用独立执行器来执行信号。这从根本上为有平台迁移顾虑的用户提供了一条捷径,尤其是对于希望提升管理效率但又没有合适技术框架的用户。这绝对是一个巨大的好处。对于在其他平台已经有成熟策略的用户,如果有类似的需求:一套策略需要在多个账户上运行,平台上一般只能运行多个策略实例,每个实例对应一个交易账户,但管理效率很低。如果要重构原来的框架,你的开发能力和精力是不允许的。开发完成后,需要进行测试。迁移到其他平台意味着重写所有策略。那么一个独立的执行者就可以帮你彻底解决这个问题。对于日线以上的策略类型,尤其是选股策略。通过独立的执行器可以轻松实现调仓的目的。独立执行器调用的代码示例如下fromwtpyimportWtExecApiif__name__=="__main__":execMon=WtExecApi()execMon.initialize("logcfgexec.json")execMon.config("config_exec.json")execMon.run()执行监视器。set_position("CFFEX.IF.2007",1)input('按任意键退出\n')execMon.release()下一阶段的计划是将高频策略引擎WtHftEngine导出到python交易通道数据在wtpy中落地提供了内置的基于flask的服务引擎,并在此基础上实现了一套webui,方便初学者调用,继续完善文档