今天(2020年07月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,作为flaskserver的资源,允许用户远程查看和优化底层接口细节,方便python等应用层调用和测试底层核心模块
