前言:
做量化交易的朋友都知道回测的重要性,回测结果是衡量一个量化交易策略是否靠谱的重要依据。回测平台会按历史行情数据模拟成交,并将回测结果汇总成报告。
在很多时候,仅有一份回测的最终结果是不够的。比如说当我们发现结果不符合策略的设计预期时,就需要对部分或全部股票的买卖操作进行检查确认。通常我们要翻阅回测平台给出的回测日志,找到有待检查确认的买卖交易,根据其品种、时间周期和交易时间翻查当时的历史行情,而这时又往往需要打开第三方行情软件,输入该品种的交易代码,调整K线图到特定的时间周期(比如60分钟图),再在时间轴上定位至相应的日期,然后查看该笔交易发生当时的行情走势是否符合你的策略预期。整个过程操作起来很麻烦,如果你的电脑只有一个显示屏,还得在回测平台和第三方行情软件之间来回切换,效率极低。
通过解析回测日志,可以提取出交易代码和交易时间等信息,再利用JQData的本地数据下载功能,结合matplotlib这一常用绘图工具库,可以实现自动获取行情数据然后在屏幕上绘制相应的K线图,并直接定位到图上的特定日期附近,这样就能快速方便地可视化复盘回测日志中的每笔交易,直观地来检验每一笔交易是否符合预期。
整个项目全部用python语言来编写,以下分几个部分简要介绍实现的方法:
一.解析回测日志:
在策略的代码中可以加入日志信息来详细记录每笔买/卖操作,比如像这样:
买入:log.info("Buying %s" % (security))
卖出