WonderTrader发布v0.5.0版本

今天(2020年7月28日)WonderTrader发布了最新版本v0.5.0,同步发布的还有wtpy的最新版本v0.5.0

WonderTrader在v0.5.0中做了如下修改:

  • 高频策略引擎正式发布。高频策略引擎之前在WonderTrader中已经做了实现,但是因为测试不够充分,暂时并没有正式发布,只是以CTA策略组合为主,随着v0.4.0发布的选股引擎,v0.5.0也正式发布了高频引擎,从而实现了WonderTrader对不同策略应用场景的全覆盖。

    • CTA引擎,适用于多策略组合。CTA引擎采用同步事件驱动模式,这样就要求策略计算时间不能太长。对于期货来说,按照500ms一笔快照的速度,一般Python中CTA策略在主K线闭合时触发重算,单次计算时间为一般在10个毫秒以内,也就是说同一个策略组合中,在两个tick间隔的时间内,除去引擎本身的时间开销来说,能支持40个以上的策略同时运行。而一般来说全部国内期货的主力合约,也就是这个数目。CTA引擎同步调度的目的是要整合策略组合的目标仓位为净头寸,然后发送给执行模块提交指令,从而从根本上杜绝自成交等问题,而且节省佣金和保证金,提高资金的利用效率。(回测引擎可以测算出每个策略大概每次计算的平均耗时,以Demo中的DualThrust为例,一般情况下耗时4-6个毫秒)CTA引擎同时提供tick级响应接口,主要针对策略本身的风控需求。
    • SEL引擎,适用于选股系统或者复杂算法策略。SEL引擎采用异步时间驱动模式,只要在两次重算调度之间,策略运算完成即可。SEL引擎因为是异步的原因,所以信号无法整合到同一时间发出(强行整合到同一时间执行可能会导致交易机会的丢失,从而造成策略意料之外的风险)。SEL引擎的优势是:支持日级别以上的任务调度(主要针对选股的需求,一般选股策略轮换时间都比较长),同时也支持分钟线级别的任务调度(主要针对预设股池的盘中筛选),日线级别的任务调度不限定时间,是否交易时间都可以执行,分钟线级别的任务调度限定在交易时间内。比较典型的用法就是盘后日线级别选股得到基本股池,然后在盘中针对该基本股池设置分钟线级别的选股。
    • HFT引擎,适用于高频策略。HFT引擎也采用同步事件驱动模式。HFT引擎和CTA引擎不同的点在于,CTA引擎要外接执行模块,而HFT引擎的策略自带执行。简单来说,就是HFT引擎允许策略直接操作交易接口。HFT引擎对策略要求较高,需要策略自行管理订单,处理超时撤销等操作。但是HFT引擎还是向策略提供了一系列方便的接口,例如:HFT引擎对策略只提供买入、卖出和撤单三种下单指令,策略逻辑中,不需要刻意去关心是买入开仓还是买入平仓,这些都会在交易接口中自动处理掉(交易接口读取开平策略配置文件actionpolicy.json,通过配置文件中,针对不同的品种配置开仓、平仓、平今的优先级和边界参数)。
  • 增加股票数据复权因子处理逻辑。在使用WonderTrader进行股票回测或者交易的时候,WonderTrader会自动读取未复权的数据,以及复权因子,然后进行前复权处理。
  • 交易模块增加交易数据落地。主要实时落地的数据包括:成交明细、订单明细、持仓数据和资金数据。
  • 其他代码细节调整

wtpy在v0.5.0中做了如下修改:

  • 同步底层为最新版本v0.5.0
  • 因为高频策略开发的需要,重新调整了C++底层的目录结构(主要是行情接入接口,之前是数据组件单独使用,现在HFT策略也可能直接使用)
  • 新增了高频策略对应的HftContext模块,以及BaseHftStrategy模块。

下一阶段的计划

到目前为止,WonderTrader基本已经做到了应用场景全覆盖,所以以后的开发计划,将会从大功能实现为主,变成

  • wtpy会内置一个基于flask的伺服引擎,主要用于远程监控
  • wtpy会内置一套web-ui,作为flask伺服的资源,供用户远程查看
  • 优化底层接口细节,更方便python等应用层调用
  • 测试完善底层核心模块

你可能感兴趣的:(c++,python)