打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
期货策略回测的框架、实现、测试——以一个具有品种通用性和测试周期通用性的策略为例


本篇主要讨论的是期货CTA策略回测的框架和细节实现问题,后面展示的策略算是彩蛋吧。

回测平台实现的好处就是可以缩短策略开发的周期,可以高效地回测实现某一想法,看其在历史中的表现,关于回测中的一些细节思考之前有发过文章(查看历史消息:<回测中的细节思考-如何构建基于MATLAB的回测系统>),在量化投资中,定量投资模型的设计好坏无疑是成功的关键,单纯从数学角度来看,一个交易系统(交易模型)仅仅是一个从行情序列到资金曲线的映射:

f(ts,para) = E

其中f是一个交易系统,ts是某一个投资标的(股票、期货、期权、外汇等等)的行情时间序列,para是交易系统的参数组,E是资金曲线。如果f可以解析的表达出来,那么就可以使用泛函分析等数学工具,直接在理论层面来研究f的一些性质,包括其连续性、稳健性、对参数的敏感性等等一些性质,但事实上,往往实际投资中的交易系统大多数都没有显性解析表达式,只能通过数值回测给出该交易系统的表现,通过对资金曲线E的一些再处理,可以得到一些评价指标,比如年化收益率、夏普比率、最大回撤等等指标,通过这些指标,可以从一定角度来窥探这个交易系统的性能。

量化投资进行回测的目的是:尽可能真实地还原实际交易过程,进而检测策略的表现!

 

一个通用的期货CTA量化回测平台,应该具有如下一些特性:

1)可以实现日内、隔夜策略的回测;

2)可以实现低频、高频策略的回测;

3)可以实现简单、复杂策略的回测;

4)具有丰富的图形展示,可以自动保存相关图形文件;

5)可以自动生成Excel文件,保存交易记录、统计指标、资金流、累计平仓盈亏等数据指标。

6)可以实现多目标函数与自定义目标函数参数寻优以及2D3D参数分布图形展示。

整体的量化回测平台大致框架如下图所示:


在数据模块,通过.mat数据格式转换后,MATLAB直接调用.mat文件会比从第三方的数据源(数据库)调用数据更加高效,数据的存贮格式推荐直接使用double型的矩阵来存贮,对于大数据量的回测不建议使用structdataset等复杂的数据格式,虽然structdataset等复杂的数据格式在数据的操作上会稍微方便一些,但进行大数据量的回测时这些复杂的数据格式的访问读写会比double型的耗时很多。

在回测模块,可以把计算和图形展示分别实现,这样系统耦合性不高,扩展性强。

在模型参数寻优模块,可以考虑使用并行计算(相关MATALB函数matlabpoolparfor)进行参数寻优,提高效率。事实上,在数据模块的数据清洗中也可以考虑进行并行化的计算处理,可以很大程度上的提高整体的工作效率。

 

在实现细节层面,其中:

数据模块中,生成主力的时候要注意保存期货合约的换月信息,这样才能回测的时候才能更加贴近实际的回测换月对于隔夜策略的影响,下图中红色矩形框存贮的就是IF的换月信息(在哪个时候有主力由哪个合约换为哪个合约,价位分别为多少)。


回测模块中,最后资金流权益的计算一定要仔细,由于期货是T+0的所以可以在单个Tick(单个Bar)上进行两个两个方向的操作,比如平空且开多,这样资金流、权益的计算会稍微复杂一点,需要细心实现。

所有模块中的数据计算和图形展示都建议使用单独函数分别实现别耦合在一起。

下面以一个策略为例,看下回测平台的实现结果。

一个具有品种通用性和测试周期通用性的策略,即该策略对于测试品种和测试周期不敏感。

测试策略:FPRFaruto’sPattern Recognition

策略类型:日内策略,趋势类策略,模式识别类策略。

策略简介:利用高级计量经济学模型识别上涨和下跌形态进出场、固定比例止损。

测试品种:IF

测试周期:1分钟。

测试手续费:双边分别计算2%%(即入场2%%,离场2%%)。

测试冲击成本:双边分别计算1跳(1 slip)。

参数设置:一个核心参数。

其他说明:使用固定1手进行测试

测试结果:


可以看到FPR是一个正收益的系统,由于是趋势类的策略,胜率不高很正常(40%左右)。

资金曲线:


累计盈亏VS手续费:


通过将多空头的收益分离出来,目的是看单独的多空的收益和手续费的状况,进而在某些层面改善策略。

 

每笔交易收益分布统计:


通过统计每笔交易的收益分布,可以看出趋势类策略的收益分布大致是个右偏态,小亏大赚,主要靠着右边尾部的大盈利来实现整体的正收益。

 

仓位、最大回撤:


多空头饼图统计展示:


收益多周期统计:


多周期的收益统计可以方便的看到该交易系统在每年、每月、每周、每日等不同周期的收益情况。

 

------------------------------------------------------------------------------------------

我们期望着研发出来的策略具有鲁棒性,即最好具有多品种、多周期的通用性,看下FPR的品种通用性:FPR策略,在不改变参数的情况下,可在大多数商品期货上使用,下面以CU为例,测试结果。







------------------------------------------------------------------------------------------

在测试周期通用性方面,FPR策略在某一固定品种上的1小时内的周期上均适用(1MIN2MIN3MIN5MIN10MIN15MIN等等),当然不同的测试周期会带来资金流局部的不同,最开始测试的是IF-1MIN,下面测试IF-10MIN,测试结果:







 

至此本篇结束,大致介绍了期货策略回测的框架、实现细节,并用一个具有品种通用性和测试周期通用性的策略为例展示了回测平台的实现结果。



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
程序化实盘和历史测试98%相似!他是如何做到的?
来这里做股票交易一定要看的一篇干货
【CTA策略实盘源码】C05:商品期货通用策略系列之二(限时特惠)
理发师章位福:如何轻松舒服地在市场上存活?
如何构建自己的交易系统5:双均线策略
精彩的期货人策略成长经历,能让人少走十年弯路
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服