致力于分享量化策略,培训视频,Python,程序化交易等相关内容

作者简介

吕洋洋

某大型资管公司在职量化策略研究员,熟悉数据清洗工作,擅于运用宏观因子、行业因子等进行对期货品种价格影响建模与相关性分析,理解机器学习多元回归法,SVM,XGboost,金融时间序列等底层算法逻辑,部分算法可自定义函数封装。掌握各种机器学习包与数据计算分析包的运用。包括不限于:Alphalens,pandans,爬虫技术,sklearn,statsmodels 等。

『正文』

ˇ

引言

众所周知,在我们做期货程序化过程中,大部分个人或者中小机构基本上都是采用的第三方商业化软件进行交易,国内用的最为广泛的就是TB开拓者这一平台,抛开软件稳定性个性化等问题来说,从策略回测角度来看,大家最为困惑和关心的问题就是期货指数合约和主连复权合约的误差问题。今天,笔者本人就带着实盘的初衷、科学的计算、细节的描述来给大家分享一下关于指数合约和主连复权的差异化分析。

逻辑步骤

废话不多说,我们直接上计算思考的逻辑。

步骤一:刻画指数和主连复权的相关性,协整性。

目地:通过初级统计学(高阶的我不会,哈哈~~)刻画,定量的方法,定性的观察,两个XY时间序列数据的趋同性或者说变动是否紧密相关,当然误差肯定是有的,但是只要整体是趋同的,就还好,最起码如果趋同都不趋同,那肯定就不能用指数合约的了。因为任何一种计算评估方法都是有误差的,就好比回归也是有“epsilon(希腊字母表第五个字母)”。所以就看这个误差是否可以接受的程度。

步骤二:我们实际用一个相同的策略(代码完全一样,参数也一样),加载到同一个周期的数据K线(相同的周期、相同的长度),去回测看指数和主连复权的绩效差别。

目的:通过实际策略在不同的XY数据进行的回测,才是最终我们想看到的结果差。

步骤三:针对回测出来的净值曲线数据进行协整性和相关性分析。

目的:这一步主要是我个人受限于数据问题,无法获取到主连复权数据到本地进行协整性分析。因此,只能通过对XY两个时间序列数据,回测后的权益曲线进行协整和相关分析。也就是说把第一步里面的协整放到了第三步。当然了,XY经过了同样的数学变换,那么他们的统计关系是不会变的。毕竟策略其实就是一个映射函数,将X也就是行情数据,通过策略f( ),转变为绩效曲线Y的一个过程。

数据准备

由于品种的差异性,以及各个板块流动性活跃问题,按照以下罗列进行逐个分析。

黑色的:螺纹、焦炭、热卷、铁矿石、猛硅、动力煤

有色:铜、铝、镍

化工:PTA、PP、MA 、RU、SC、EG、EB、LPG

农产品:苹果、鸡蛋、菜油、棕榈油、豆粕、玉米、白糖、棉花

基本上以上品种都是本人实盘在交易的品种,有的品种可能就1-2个策略,又得可能有6-8个策略,所以抱着“推到自己“的态度去探索这些问题。

由于这是开篇第一篇,可能还有很多更为科学、更为严谨的方法没有想到,所以在正式开始之前也希望各位给出各自的看法和意见。

指数和主连复权合约相关系数变动

我们采用的就是Pearson相关系数,数学公式如下图所示:

关于皮尔森的数学相关推导和性质我就不过多说了,说一些基本的,毕竟咱们这不是数学课。皮尔逊相关系数的变化范围为-1到1。系数的值为1意味着X和Y可以很好的由直线方程来描述,所有的数据点都很好的落在一条直线上,且Y随着X的增加而增加。反之亦然。

显然,当X和Y均落

和均值一侧,则(-)(-)的值均为正。也就是说他们各自的变量值同时趋向于大于或者小于各自的均值,则相关系数为正,反之相反一侧则为负。关于剩下的几何学解释我就不在此赘述了,有兴趣的大家自行百度。

图1:2016.1.1-2020.8.3,15分钟K线图

上图所示是指数(上)与主连复权(下)的相关系数可视化图,其中有两条横线分别是0.8、0.9,纵横2016-今天4年7个月的时间轴来看,大部分的相关系数都在0.9以上,下面我们来看看这些相关系数抖动的时间段是什么样的。(我们由近到远的定性的去看)

图2:2019.11-2020.8.3,15分钟K线图

从最近半年多的相关系数可视化图和2个K线行情图,我们可以看到,大范围、差异较大的异常波动是在更换主力合约之前和更换日期附近发生的。其中的逻辑其实也很简单,因为临近换月升贴水和持仓量的变化,导致了有2个月的持仓量权重产生了相同,且升贴水越大,这个差异也就越大,相当于取了升贴水的平均值。届时指数和实际交易的主力合约就产生了波动性差异,这一点我们通过相关系数刻画的方法也可以印证这个逻辑点。但是我们要注意的是,相关性降低幅度和相关性降低时间,哪一个对我们更不利,当然了废话就是对我们都不利,但是我们不能奢求理想完美变为骨感现实。通过图形可视化可以明显看出,近半年多以来总共有15次下穿到0.8以下。

图3:相关系数<< span="">0.8标记图

10个月时间里出现15次,平均一个月1.5次。持续的时间我们也来看一下。如下图所示:

图4:2019.11-2019.12相关系数图

其中最大的两次分别为2019.11.15和2019.12.2两次,持续时间为8根K线(从下穿0.9到上穿0.9),一根K线15分钟,8根共2个小时。其中这两次是近半年多以来,最大持续时间最久的2次。

在这里我也把实际的代码发给大家:

Params

//此处添加参数

Numeric length(10);

Vars

//此处添加变量

Numeric corr;

Events

OnBar(ArrayRefindexs)

{

corr = CoefficientR(Data0.close, Data1.Close, length);

PlotNumeric("corr",corr);

PlotNumeric("阈值2", 0.9, red);

PlotNumeric("阈值",0.8, White);

}

实际上“CoefficientR”这个函数就是我们刚开始提到的,皮尔森相关系数的计算方法,在TBQ里面我们是可以自动调用这个函数的,下面是对这个函数代码的分解。

图5:皮尔森相关系数函数源码

通过阅读源码我们可以看到,相关系数的函数封装是没有问题的。大家千万不要用TBQ里面自带的“Correlation”这个函数,这个函数是不对的,或者说不符合我们用的皮尔森相关系数的算法。

我们在回到图1中,历史上最大的一次是在2016.3.7,那一次是螺纹钢涨停了,第二天开盘继续涨停,但是实际肉眼观察指数和主连复权并没有特别大的不同,而且计算中我们发现出现了-2的场景出现,这个并不是计算的问题,是源码中加入了一个默认值,如下图所示:

图6:函数内容初始化

其余较大的相关性波动期就是在2018.11和2019.3两个时间点附近,这两个点基本上位于01→05,05→10合约的转换点之前。按照之前审视逻辑,最大周期为13根K线也就是3个小时时间。

纵观4年零7个月的时间内,大大小小的相关性波动有7次,并不是每一次主力合约更迭就会发生相关性降低的情况。

同一策略回测差异分析

下面我们来进行第二步:用同一个策略对指数和主连复权合约进行回测。让我们来看看具体的绩效指标和绩效曲线的区别什么样子。

图7:TBQ指数回测绩效图

上图是A策略(只包含多头)在万1.5手续费滑点1跳的场景下,从2016.1.1-2020.8.3的回测绩效图。图中看到整体绩效还是可以的。下面我们来看一下主连的绩效图

图8:TBQ主连复权回测绩效图

我们通过图一眼就看出,指数和主连复权还是蛮大的,最起码曲线后半段的盈利就明显看出差别。先不要直接否定,我们做研究分析的目得不是看一眼线那么简单,还要具体看所有的绩效指标的差距到底是多大。

图9:TBQ指数回测绩效

图10:TBQ主连复权回测绩效

主要绩效指标差异幅度如下表所示:

指数

主连复权

百分比幅度

净利润102157

57833

-43%

最大回撤值17729

21137

19%

夏普1.08

0.7

-35%

胜率44.28

41.44

-6.8%

平均利润508

260

-48%

交易次数201

222

10%

从部分绩效指标可以看到,收益型指标几乎少了一半儿,风险型指标增加了20%。总之就是整体削弱了。

从中我们来初窥什么?为什么要费劲搞这些?目得其实就是来验证,我们用指数做回测,用指数来映射实盘是否靠谱还是自欺欺人。

初步来看,从该数据中我们可以看到,我们用指数回测的绩效实际上要比实盘利润要削弱一半儿左右,风险要低估20%左右。平滑度也削弱接近40%左右,这些具体的直观感受从曲线图也可以看到。

下面我们为了验证客观性,我们按照上面所有的逻辑步骤程序,来进行空头的数据验证。我们这次就直接上结果,不在穿插任何解释图。

指数

主连复权

百分比幅度

净利润59526

-29171

-149%

最大回撤值23765

41385

74%

夏普0.59

-0.33

-155%

胜率38

30

-21%

平均利润607

-277

-145%

交易次数98

105

7%

从空头表中的结果我们可以看出,指数合约加载时,是盈利的,但是到了主连复权最后就是亏损的状态。

思考

1、是不是指数做策略的结果都是这样?答:并不是,因为这涉及策略问题,并不是所有空头策略在指数与主连复权有差一倍以上的差异,但是说明这种情况会出现。也就是说指数情况下这个策略都一般 就不要考虑了,因为在实际的主连复权肯定是亏损的。

2、那是不是我们就不要指数了,直接主连复权就完了,费那么多事儿干吗?答:的确是可以这么做,就算没有分析这些,从实盘和回测接近角度来说,也应该以实际的交易数据为主。

3、指数合约的价值还有吗?答:个人初步评估(并不是最后结论),是有的。因为指数在某种程度的确可以过滤主连复权中的信号杂音,我们从上面多空两个表的数据可以看出,指数合约的交易次数是少于主连复权的。我们可以考虑用指数计算信号,进出场间的绩效数据用主连复权来计算,那么问题又来了,如果指数和主连复权完全反向,那么还是不能用指数,例如后面我们会讨论到苹果和鸡蛋这两个奇怪的品种。

今天是指数和主连复权差异化深度分析第一篇文章,由于篇幅问题,后续我将把上面的问题,以及到底用主连复权、指数、还是指数计算信号,主连复权计算绩效等3种进一步的阐述。当然还有按照我们分析的逻辑把所有的品种结果都输出出来,会有符合逻辑的地方,也同样会有大跌眼镜的地方。

最后给大家留一个思考题,如果一个策略,在主力复权回测很好,是否在指数合约也是很好呢?可以留言参与讨论。如果你觉得这篇文章对您有帮助,麻烦转发一下或者在文末点一下在看和赞,码字不宜,望客官不要白嫖了洋洋和小松鼠~

本策略仅作学习交流使用,实盘交易盈亏投资者个人负责。

量化研究 | 策略在指数与主连复权的差异化分析相关推荐

  1. 全面解读量化中性策略

    相信很多投资者在购买投资产品时,常常会听到一些投资专用词语,例如下文将介绍的"量化中性策略",这些词语对于投资小白们来说,仅听名称就让人一头雾水,具体什么是量化投资,以及常见的策略 ...

  2. 什么是股票量化研究?

    谈到股票量化研究领域,肯定少不了有自动交易系统的支撑,像平时能将股票池中的数据挖掘出来也能熟能生巧的进行自助量化研究,包括数据接口系统的开发使用都是受到量化的影响,那么,如何看待股票量化研究? 像平时 ...

  3. 风控策略中如何制定差异化利率定价方案

    风控策略中如何制定差异化利率定价方案 前言 一.框架设计 二.流程设计 三.方案测算 四.策略上线 总结 前言 一个产品上线后,随着规模的扩大,基于风险收益的匹配原则,以及差异化营销的管理要求,除了授 ...

  4. 【基金量化研究系列】大类资产配置研究(二)——股债二八轮动策略

    文章目录 1. 引言 2. 股债二八轮动策略 3. 动态再平衡股债二八轮动策略 4. 基于python的策略实现 4.1 策略代码 4.2. 运行结果实证分析 5. 总结 写在最后 1. 引言 在上一 ...

  5. 用python完成选股策略_python量化选股策略_量化股市

    金字塔决策交易系统 等安装结束后自己找缺少的对应的软件安装.2.软件本体开始安装3.阅读勾选软件安装协议4.选择软件安装目录5.准备开始安装6.等待以后就可以看到金字塔决策交易系统安装完成!登陆软件后 ...

  6. 量化选股策略搭建(一)(股票数据获取)

    量化选股策略搭建(一)(股票数据获取) 接触股市一年多,能力有限并未赚钱,目前个人时间渐渐宽裕起来,准备开发一些量化策略,包括股价预测.股票选取.股票操作等.创立这个公众号的目的是为了记载一些个人在量 ...

  7. 《量化炼金术-中低频量化交易策略研发》读书笔记-序言,引言

    序言: 1.'圣杯'的找寻 2.策略复制性的强大 3.策略的时效性和解释能力的周期性 4.量化的本质是将思维转化为数理化规则,借由代码为工具进行直观表述 5.量化流程设计与思考,量化策略构建 6.本书 ...

  8. 异质化社群量化研究4丨RATE OF CHANGE WITH BANDS

    致力于量化策略开发,高质量社群,交易思路分享等相关内容 Rate Of Change With Bands 大家好,我是Le Chiffre.今天给大家带来的是第4期异质化社群的量化研究内容--ROC ...

  9. 股票量化对冲策略的发展与展望

    01.海外量化投资基金的发展 量化的起源 证券市场的历史悠久,由此形成了各式各样的投资流派.而基于股票的本质是代表股东对企业的所有权,本杰明·格雷厄姆领衔的价值投资方式,最为大众所熟悉.格雷厄姆因此也 ...

最新文章

  1. 石家庄的联通破网络,请大家鉴定
  2. 如何网络推广教你如何网站排名“更上一层楼”?
  3. python帮助文档中文版下载-python3.5.2官方帮助文档 参考手册(CHM版)
  4. webservice 存根方式
  5. 【Android 逆向】IDA 工具使用 ( 同步指定的 IDA View 视图 | Hex View 数据格式 | 过滤设置 )
  6. c面试题总结(含答案)
  7. linux下文件无法删除不能编辑
  8. mysql执行查询出来的数据_F#连接到在线MySQL数据库执行查询
  9. 【数据库】一篇文章搞懂数据库隔离级别那些事(LBCC,MVCC)
  10. Mybatis中SQL注入攻击的3种方式,真是防不胜防!
  11. 智能家居系统--选配防盗锁新(转载)
  12. c/c++常见关键字
  13. MP288MP280清零软件
  14. LLVM的源码目录结构
  15. 布兰迪斯大学计算机美国大学排名,美国留学 近5年布兰迪斯大学排名情况
  16. Arduino与Proteus仿真实例-MPX4250压力传感器驱动仿真
  17. iOS高性能Model转换框架----YYModel学习
  18. AI数字攻防看数字社会基建发展
  19. 机器学习-知识点总结
  20. Visual Studio Code:Web前端——登录、注册界面、个人相册

热门文章

  1. 苹果手机自带软件删除了怎么恢复_手机短信删除了怎么恢复?送你几个苹果手机实用的小技巧...
  2. Windows 桌面图标异常处理解决方法
  3. 测验制作工具iSpring QuizMaker教程:如何将测验结果发送给测验者
  4. 已解决:u盘文件被病毒设置隐藏后,只能看到病毒生成的同名exe文件
  5. 线性表定义 线性表顺序存储结构
  6. 头脑风暴优化算法(Brain Storming Optimization Algorithm, BSO)
  7. 【流量池】裂变营销(3)
  8. 机器学习 K-Means 实现文本聚类 2021-10-30
  9. 为移动化办公保驾护航,指掌易获高成资本领投2亿元B轮融资
  10. Debian下最简的添加ttf字体文件的方法(网络收藏)