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

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

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

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

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

f(ts,para) = E

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

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

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

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

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

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

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

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

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

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


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

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

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

在实现细节层面,其中:

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


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

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

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

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

测试策略:FPR(Faruto’s Pattern Recognition)

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

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

测试品种:IF。

测试周期:1分钟。

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

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

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

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

测试结果:



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

资金曲线:




累计盈亏VS手续费:




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

每笔交易收益分布统计:




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

仓位、最大回撤:



多空头饼图统计展示:




收益多周期统计:


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

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

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


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

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






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

代做工资流水公司保定打印工资流水福州车贷银行流水 图片漳州做背调银行流水漳州办银行流水修改襄阳签证流水模板保定办银行流水修改广州开银行流水单菏泽代开背调流水泰安公司流水费用常州银行流水账价格咸阳自存流水多少钱株洲企业流水打印价格金华企业贷流水开具北京代开签证银行流水泉州做对公账户流水绵阳办入职工资流水镇江签证流水费用大庆自存银行流水打印德阳银行对公流水查询大庆做个人流水长沙个人工资流水 公司大庆代办企业贷流水西宁办薪资银行流水西宁代开房贷流水温州查入职银行流水广州银行流水开具广州制作流水德阳背调流水制作菏泽办理签证工资流水贵阳收入证明办理香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

代做工资流水公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化