说说我对系统搭建的理解,首先量化系统我认为可以分为3大类
1.回测系统(策略回测,指标评价等)
2.实盘系统(真正的生产)
3.可视化展示(锦上添花)
1.回测系统:
回测系统主要为研究开发策略,有大量的数据处理,然而对系统的速度要求不高,所以我选择python,除了资金曲线,还有一些统计指标,优化调参时可以使用python多进程,配个多核电脑,速度还是可以接受的,没必要搞c++,这么说,c++1个月开发,跑回测调参5分钟,
不如3天python多进程50分钟,人的时间才是宝贵的,电脑本来就是用的,不要担心多核风扇狂转.回测系统,80%的工作在数据整理,构建好交易模型,写出一套按交易模型构建的框架(通常都可以在基础框架的基础上修改),
2.实盘系统:
实盘系统在日线级别一下的中高频交易都是需要低延时的,频率越高,延迟系统的影响越大,把实盘系统简单分为3个步骤,1.数据更新后,我们从api获取数据--->2.获取新数据后,计算指标--->3.下单这三个步骤我们需要尽可能的缩短时间,不是说小时级的策略,这里就不需要低延迟了.否则,下单都是几秒前的数据,滑点会变大.所以如果是分钟以上的策略,策略计算还算简单的话,python还是可以应付的,但如果计算量大,频率又高,那还是选个静态语言吧..
3.可视化展示
主要用于监控账户,让我们可以更好的理解和了解我们策略的情况,不是必须的,起到锦上添花的作用,可以看我前面的文章有个配置grafana的.类似
*后想说说,试图把3个系统做到一起,显然是没有必要的,实盘系统追求速度,我认为越简洁越好,我见过一个正开发的系统,是这样的,一台服务器,接收数据,然后转存数据库同时websocket分发给实盘系统,实盘系统计算下单信号,再把信号转发给下单系统,显然如果策略很多,资金量很大,这样是没问题的,但对于小的私募,总共1,2个策略来跑,还是没必要搞的这么复杂.