准备自己写一套量化回测框架

2024年1月9日 500点热度 0人点赞 0条评论

最近给自己开了一个新坑,准备写一套适合自己,适合国内市场的量化回测框架。

市面上成熟的量化回测框架也有很多了,比如BackTrader还有ZipLine之类。但是在学习这些类库的过程中,或多或少总有感觉不是非常顺手,而且如果要吃透的话,学习成本还是比较高的。于是有了自己写一套回测框架的想法。

目前对这套框架的设计是这样的:

1、整体数据都基于K线的dataframe进行计算填充,从原始数据的OHLCV开始,先封装一个数据集类对原始数据进行清洗,对齐。

2、将数据丢入生成技术指标的模块里,根据需要的指标参数,在原有的OHLCV的dataframe基础上生成时间序列的指标数据。

3、将包含技术指标的dataframe丢入策略类中,策略类在原有技术指标的dataframe基础上,继续添加资金、利润、收益率、开平仓信号等数据列。只需要重写基类的买入卖出判断接口,然后调用策略类的run方法,遍历包含上述信息的dataframe,在遍历的过程中,将交易信号及对应的交易结果写入dataframe中对应的行。遍历完整个dataframe后,基本这个策略的效果就可以进行评价了。

4、将包含策略运行结果的dataframe丢入分析器Analyzer中,对策略运行的量化指标,比如夏普比率,最大回撤,波动率之类的数据进行计算。

4、将包含策略运行结果的dataframe和量化指标计算结果,继续丢到Plotter这个绘图类中,Plotter将所有的K线数据、指标数据、资金、利润、收益率、各种信号数据整理出来,然后交给echarts进行渲染输出。

至此,整体策略回测工作就完成了。

从框架的整体使用体验和数据粒度上,对标BackTrader这个德国人写的知名回测框架,但是相较于BackTrader,因为对国内市场的费率,交易品种有针对的封装,而且渲染上用的是echarts,所以使用体验应该是更好一些。

目前这个框架的数据清洗和策略基类接近完成,正在写分析器模块,进度上比较随意,估计顺利的话,春节期间应该能撸出来一个能用的版本。以后会在博客上多更新一些策略研究类的文章,使用的工具会是这套自己写的框架。

QThinker

前地产从业者,假装是个程序员,热爱编程与交易 自研QThinker量化交易框架

文章评论