一个完整的量化系统的架构,应具备下图这些模块。
数据获取引擎,从不同的交易接口或网络获取数据,包括历史数据和实时数据,然后封装成数据流,一路发送到数据引擎,一路发送到策略计算引擎。可以接收监控与可视化模块的控制
数据引擎,主要负责数据的存储和数据的检索,将数据保存到数据库或其他存储系统中,同时支持将数据在检索出来。可以接收监控与可视化模块的控制
数据回放引擎,从数据引擎中获取指定数据,按照时间序列将数据按照数据流播放出来。可以接收监控与可视化模块的控制
策略计算引擎,主要负责将不同的运行起来,同时保证不影响实际交易策略的运行;不同的策略算法在这里运行,分别接收不同的数据流运行。实际交易和模拟交易算法策略,接受实时数据,将计算结果发送给交易执行引擎;回测算法策略,接收回放数据,将结果发送给策略评价系统。可以接收监控与可视化模块的控制,可以“热插拔”算法策略(即在模块不停止的情况下,可以动态装载或卸载算法模块,或改变模块属性)。算法策略,在开发、回测、评价通过后,通过控制台修改属性等参数,即可进行模拟交易、或实际交易,而不需要再进行额外的开发、或修改,这也减少了从回测到模拟交易、再到实际交易的转换过程中可能带来的错误,也减少了开发人员的工作,节约时间节省成本,提高效益。
策略评价系统,对回测的策略进行评价,判定策略是否有效,并将判断结果发送到监控与可视化模块,可以接收监控与可视化模块的控制
交易执行引擎,负责实际的交易执行,可以接收监控与可视化模块的控制
监控与可视化模块,是整个系统的总控及可视化模块,可以监控,可以可视化数据,可以控制不同模块行为;可视化可以启动多个程序实例。
如上,整个系统有众多的数据流或控制流需要配置管理,尤其是策略计算引擎与数据回放引擎之间、可视化与策略计算引擎、策略评价系统之间,而且可视化部分需要有多程序实例,需要对多路不同数据进行可视化,同时还要确保极低的通信时延。
水杉中间件在这些方面,正好可以满足以上需求,无中心节点,微妙级的通信时延,支持多对多的通信,并可对不同提供健康管理,减少系统开发工作。
123456:自动驾驶中间件水杉与Apollo CyberRT性能对比
123456:微秒级低延时L4/L5级自动驾驶中间件——水杉