CTA策略:主力连续、全合约模式下回测结果的差异探讨
CTA策略因为对象是期货合约,因此,不可避免地会遇上迁月的问题。因此,做CTA策略回测往往有两种跑法,一种是用主力连续数据,一种是用全部合约数据。
一、合约迁月:问题和算法
1、主力合约
比如针对IC, 2017年5月6日 就有IC1705, IC1706,IC1709,IC1512四个合约,其中IC1705,其持仓量最大(1.8万手),我们往往把它做为IC的主力合约来看待。如果我们把IC每天的主力合约串起来,也就构成了时间序列的连续数据。
2、一个重要的问题:迁月如何处理?
当IC交易日向当月的第三周五(结算日为2017年5月19日)靠近时,比如,假定在2017年5月17日左右,这时可能会发生迁月,迁到IC1706。
这个期间,由IC1705和IC1706产生的价格跳跃,可以用“分红”复权的思路进行处理。这样,尽量避免简单的价格迁月跳跃。
3、迁月的算法
一般情况下,迁月是会进行类似的复权处理的。只不过,存在“向前”还是“向后”复权两种不同处理的方式。这里暂不详述。
我一般用这种复权方式:
即若IC1705由主力变非主力时价格3000点,而IC1706由非主力变主力价格3020点,即IC连续合约的价格是仍是3000点,即IC1706后面的价格要同比例(不是直接减,而是按比例折算)归一化到3000点开始,这种方式进行平滑处理。
4、主力合约数据:衍生的特质
通过以上的算法,我们就可以得到IC连续主力合约数据,这个数据并不是真实的某个合约的数据,更准确地说,是一种衍生的数据,专门为策略回测的便利进行”定制“的数据。
把主力合约数据用于策略回测的模式,可以叫主力连续模式。这是一种简化和近似的分析模式。
这种模式的优势在于,回测策略不需要专门考虑合约迁月的问题,比较简单,方便,另外,运行速度比较快,特别适合于CTA隔夜策略。
二、全部合约数据
这种情况是全合约模式:
即策略回测时,把全部合约放在策略中,模拟真实交易的情况,需要IC1705就用IC1705,价格也是真实的价格。
此外,在策略中需真实考虑迁月。
三、两种模式的区别、回测结果差异
1、两种模式的区别
由此可见,全合约模式和主力连续模式区别有:
(1)、全合约模式是在策略内考虑迁月问题,而主力连续模式是在策略外前置考虑。
(2)、全合约模式是更加仿真的状况,而主力连续模式是近似仿真的模式。
(3)、相比于主力连续模式,全合约模式逻辑更复杂、运算时间更长,但回测的结果更加真实;
(4)、全合约模式更适于回测日内模型,主力连续模式特别适合于隔夜策略。
问题是:这两者有多大的区别?会不会影响回测的真实性,精度如何?
2、回测的差异分析
我选取了一个CTA的日内策略,经分析,这个策略在两种模式下,其开仓和平仓时间、次数都是完全一样的,因此,完全隔离了信号带来的差异。
只是由于数据不同,导致了开仓价和平仓价在第一次迁月后就不一样。
1、IC和cu两个品种的分析
(1)对IC实际分析:
数据段:【2015年4月16日至2016年3月31日】 IC
主力合约模式:
2015 年 收益金额 : 1269172 交易次数: 322 平均单笔收益率:0.00204
2016 年 收益金额 : -188954 交易次数: 118 平均单笔收益率:-0.00128
全数据模式:
2015 年 收益金额 : 1286375 交易次数: 322 平均单笔收益率:0.00205
2016 年 收益金额 : -192062 交易次数: 118 平均单笔收益率:-0.00125
需要说明的是,由于2015年9月12日起,重新设置了冲击成本和交易费用(量级你懂的,日内策略不亏死才怪呢)。
(2) cu的分析
数据段:【2010年1月1日至2014年12月31日】 cu
全数据模式:
2010 年 收益金额 : 121399 交易次数: 79 平均单笔收益率:0.00092
2011 年 收益金额 : -21440 交易次数: 80 平均单笔收益率:-0.00012
2012 年 收益金额 : -53475 交易次数: 91 平均单笔收益率:-0.00033
2013 年 收益金额 : 86324 交易次数: 93 平均单笔收益率:0.00056
2014 年 收益金额 : -218825 交易次数: 447 平均单笔收益率:-0.00034
主力合约模式:
2010 年 收益金额 : 120829 交易次数: 79 平均单笔收益率:0.00092
2011 年 收益金额 : -21236 交易次数: 80 平均单笔收益率:-0.00012
2012 年 收益金额 : -53538 交易次数: 91 平均单笔收益率:-0.00033
2013 年 收益金额 : 86531 交易次数: 93 平均单笔收益率:0.00056
2014 年 收益金额 : -219262 交易次数: 447 平均单笔收益率:-0.00033
可见,总体上,如果时间不长,这种影响在1%以内的水平。如果是期间较长,总体偏差会更小。
结论:用主力合约来进行简化策略分析框架是可以接受的,基本不会影响策略的结果。
2、影响差异的因素
总体上,不同合约的价差、不同的时间段、不同的品种在以上两种模式应用中,都有可能有不同程度的影响。
CTA策略:主力连续、全合约模式下回测结果的差异探讨相关推荐
- MT5自动打开全部主力连续合约图表
在MT5里有了稳定快速的期货行情和交易之后,我们就可以通过强大先进的MQL开发交易策略,更可以做出自己想要的各种交易软件功能. 比如我们想打开全部主力连续合约的图表,即打开rb9999, TA9999 ...
- 国内4种常用日内CTA策略介绍及实现
本文首发于微信公众号:优矿量化实验室.文章内容属作者个人观点,不代表和讯网立场.投资者据此操作,风险请自担. 本文将向大家介绍四种常见的CTA策略(Dual Thrust.R-Breaker.菲阿里四 ...
- 【量化交易01】CTA策略 菲阿里四价+空中花园策略
菲阿里四价+空中花园策略 CTA策略(Commodity Trading Advisor Strategy),称为商品交易顾问策略,又称管理期货策略(Managed Futures),简单理解--CT ...
- 商品cta策略_《衍生品系列研究之三》:国内商品期货常用日内CTA策略测试
研究结论 本报告主要在国内10个成交活跃的商品期货品种上测试了几种常见日内CTA 交易策略的效果,具体包括Dual Thrust 策略.ATR 策略.R-Breaker策略.菲阿里四价策略和空中花园策 ...
- VNPY - CTA策略模块策略开发
转自:https://blog.csdn.net/IAlexanderI/article/details/81459430 策略模板 一般来说,交易策略的思路主要来源于两个方向:第一.实盘中的交易经验 ...
- cta策略 有哪些_CTA 主流的交易策略都有哪些?
CTA策略(Commodity Trading Advisor Strategy)称为商品交易顾问策略,也称作管理期货. 主要通过在基本和技术分析中导入数量模型,并借助计算机系统根据数量模型产生的买卖 ...
- 英仕曼235年传奇之路从CTA策略鼻祖到全球最大上市对冲基金
英仕曼235年传奇之路:从CTA策略鼻祖到全球最大上市对冲基金 CTA基金网 前天从1783年伦敦城的一个木桶糖酒贸易商,发展为全球最大上市对冲基金,英仕曼集团235年的发展史令无数人感慨钦佩.英仕曼 ...
- 量化策略篇:股票多头策略、CTA策略、期权策略
来源 | FunZoo趣园 出品 | Fintech独角兽 我认为quant(策略quant)的核心是策略,底层基础是系统.策略可以个逻辑,简单到我就要买或者卖,也可以是个复杂的模型.而支撑的是平稳测 ...
- 为什么那么多人喜欢用CTA策略?
CTA策略被称为最"分散"的策略,由于基于管理期货基金本身的特性,其可以提供多元化的投资机会,从商品,黄金,到货币和股票指数等.因此在某种程度上,管理期货基金的决策一般对计算机程序 ...
- 那些CTA策略的表现如何(一)
致力于量化策略开发,高质量社群,交易思路分享等相关内容 『正文』 ˇ 大家好,我是乌克兰剑圣. 今天我们盘点一下从年初到现在,松鼠CTA策略表现如何(样本外跟踪). 由于策略较多,我选了5个周期长短不 ...
最新文章
- 处理器拦截器(HandlerInterceptor)详解
- CentOS 6.8 上 MySQL-server 数据库安装失败
- linux2.6内核compat_ioctl函数
- 6 道 BATJ 必考的 Java 面试题
- mysql的命令行安装,忘记密码,密码重置问题
- 机器学习-吴恩达-笔记-13-大规模机器学习
- kotlin 扩展函数_在 Kotlin 中“实现”trait/类型类
- azure linux root密码,Azure Linux 云主机使用Root超级用户登录
- 华为交换机配置IPSG防止DHCP动态主机私自更改IP地址
- matlab pt站下载,PT站RSS下载使用教程 | PT邀请码网
- C语言实现七夕表白爱心
- 风险热度地图(Risk heat map)
- 微信小程序中使用阿里巴巴字体图标
- RollBack RX Professional 设置快照教程
- 向UBOOT 中添加自己的板子
- 简易的本地音乐播放器 适用于Java初学者
- 笑话集原创笑话精品展3
- 关于IT行业人员吃的都是青春饭?
- 基于路网和GeoPandas的高斯两步移动搜索法可达性分析
- C语言编程入门—基本输入输出(week1)