该过程在业界被称为回测。回测是量化工作者常见的工作内容之一。
Note
很遗憾的是,回测跟实盘交易永远存在差距,再好的系统也无法回避。现在市面上有几个开源的回测引擎框架,虽然减少了回测的开发工作量,但或多或少都存在回测的误差。在此,我们优先介绍概念,其次介绍一些常见的规避或者补偿误差的方法,供读者在实践中使用。
回测工具有哪些功能?
历史交易过程和结果的模拟
顾名思义,回测当然是回顾一段时间,用既定的交易策略,向模拟的交易平台提交交易请求,然后统计交易的结果。
这样,一个策略到底能不能运作,是不是像想象中的那样运作(实战中,策略辞不达意的情况概率很大),运作的效果在特定的行情下是不是有预期的效果(不是所有策略都适用于所有行情,显而易见的事情),一目了然。
自动记账
如果每一笔交易都要自己手动记录交易结果,计算扣费,遇到限制条件还要进行异常处理,这个工作量是及其繁琐和容易出错的。一般来说,回测会有专门的记账功能,确保量化系统的交易请求能被正确处理。
回报分析
为了辅助回测人员对自身的策略效果建立一个客观的认识,回测往往附带一套指标系统,包括但不限于回报率、alpha、beta、夏普率、最大回撤等,通过这些指标,一个策略的收益情况、收益的相对好坏、收益的稳定和波动程度、最坏情况等,都可以得到一个参考,在常规的理解里,这些指标在实盘中依然有同样的表现水准(严格数学证明略)。
当然,为了分析的方便,回测还会提供基准参考与图形可视化功能,把市场的平均回报连同策略的回报按时间顺序用图形展示,能极大地具象化策略运作情况。
怎么使用回测工具?
回测工具有很多,这里只介绍我们推荐的相对简单可靠的方式。
回测工具与量化系统高度集成。在理想的情况下(参照我们设计的简单的量化系统),用户可以原样照搬量化系统里面的策略内容,并添加少量的系统变量设置,然后回测工具自动装载策略,加载回测情报系统,对回测的交易系统进行操作,记账。
这跟量化系统的执行逻辑非常相似,差别是:
- 情报系统是实时在更新,而回测数据系统提取历史数据;
- 交易系统会向交易平台提交交易请求,模拟交易记账系统则是在本地进行模拟撮合交易,记录结果;
- 回测系统有专门的分析结果。
有了这样的系统,重复地运行,不断地调整参数,找到你认为可以接受的结果为止,回测也不是那么难,对不对?
所以到底需要准备什么才能进行回测呢?
答:完整且规范的数据源,自动记账程序,和你想测试的策略。
可是这几件都不是省油的灯,要自己重头写一遍,基本就是《量化交易从入门到放弃》的故事原本了。
如果你一直读到这里,还对自己完成这样的任务抱有期待,WeQuant佩服你的坚持。
新手做回测时容易犯什么样的错误?
这里面学问很多,主要围绕如何降低回测的系统与人为误差,回头有机会再慢慢更新。
结语
回测是调优你的量化系统的比较有效的手段,不过有效的回测并不容易,也不是所有的场景都能通过回测解决。对于回测可以解决的问题,我们设计了一套简单的标准和配套工具,降低大家使用回测的门槛。请阅读下一篇。