明天(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等应用层调用
  • 测试欠缺底层外围模块