量化策略开发,高质量社群,交易思路分享等相关内容

作者简介

吕洋洋

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

『正文』

ˇ

该篇是指数和主连复权差异化分析的最后终结篇。前两篇中,我们提出了该篇文章分析的必要和背景,分别在一些量化公众号和论坛上发表,也收到了很多人的想法和建议以及疑问。在这里先感谢大家的关注和阅读。

本篇将把前两篇内的遗留问题统统的梳理完毕;其次,笔者本人将主连复权的原理和算法写出来,供大家参考借鉴和讨论;再次,本人会将主连复权完毕后的回测细节在进一步推进完善。最终让我们的回测真正实现所测即所得的目标,真正崛起指数回测和实盘的虚无缥缈。

在之前两篇中,大家的问题主要集中在“如何复权,以及采取什么方式复权最合理”,“主连复权的绩效比指数波动大,甚至还比指数绩效好的原因”,“主连复权回测的跟实盘一样吗”,“真实价格映射后就完事儿了吗”等这么几个接近实盘的问题。下面我就来带着这些问题来一一回复给大家。

问:主连复权回测的跟实盘一样吗?

答:不一样,具体请看下一问。

问:主连复权的绩效比指数波动大,甚至还比指数绩效好的原因

答:因为主连后复权的原因,除了一直保持升水结构品种以外,基本上复权到现在所有品种基数都很大了,所以导致了回测绩效曲线收益也大,回撤也大,因为价格里面包括了rollover的倍数。这里我没有说是因为我要放在这一期介绍后复权原理后,揭晓答案的,没想到还是有研究过的人看出来了。另外,这种收益和回撤理论是倍数关系,但是孰大孰小随着行情和止盈止损条件并不一定清楚。

因此我们在回测和实盘中采用的是真实价格映射,也就是rolloverRealPrice这个函数,将发单价格再次根据“复权价格”=真实价格*复权因子这个公式,再次反推真实价格,用来计算开平仓的绩效。这样我们计算的就是真实的绩效(在不考虑滑点儿情况下)而不是被动按照后复权价格计算。目前初步测试看,真实价格映射计算出来的反而还要比直接用主连复权的要好一些。

问:真实价格映射后就完事儿了吗?

答:并不是,因为开平仓的价格是通过在初始化时候,对复权价格进行了反运算。也就是说我们信号的计算是复权价格,但是开平仓的价格是真实的实盘合约价格。我们脑补一下,如果你的策略里面有用到将进场价格赋值给某个变量的,而后计算例如止盈止损等变量值的时候,那么这里面就肯定会有错。

问:如何复权,以及采取什么方式复权最合理

答:这里我多写一些前因后果,请耐心阅读

众所周知,在主连复权出来之前,我们基本上都用的000的指数价格进行“规则型”策略的研发,这种000商品指数合约的常见算法,是将一个品种所有合约的开仓合约市值相加,再除以这个品种所有合约总数,最后得到一个加权平均价格,这就是000商品指数。

举例说明:

合约

价格

持仓量

市值(价格*持仓量)

XX01

200

1000

200000

XX05

220

7000

1540000

XX10

240

2000

480000

合计

10000

2220000

000指数 = ∑(合约价格*合约持仓量)/∑合约持仓量

也就是说,000指数 = 2220000 / 10000 = 222,其实大家都看得出来,这是一个加权平均。这种例子只是为大家说明指数合约的由来和算法,当然了,某些行情软件的跟这个并不完全一样,但是大同小异。

下面我举一个指数失真的例子:

假设某品种所有合约T时刻的状态如下

合约

价格

持仓量

市值(价格*持仓量)

XX01

200

2000

400000

XX05

220

10000

2200000

XX10

240

8000

1920000

合计

20000

4520000

指数价格 = 4520000/20000 = 226

假设某品种所有合约T+1时刻的状态如下

合约

价格

持仓量

市值(价格*持仓量)

XX01

240

2000

480000

XX05

260

10000

2600000

XX10

180

8000

1440000

合计

20000

4520000

指数价格 = 4520000/20000 = 226

显然我们可以看到,指数的价格在两个时间点是相同的,都是226。但是我们注意主力合约时,便会发现05合约的价格从220上涨到了260,涨幅达到了260/220-1=0.18(18%)。另外,次主力合约10,跌幅达到了180/240-1 = -0.25。合约上这样强烈的波动,指数为什么岿然未动?

原因主要有两点,其实也是我前两篇文章中一直总结的两点。

第一,主力合约和次主力的持仓量非常接近,05合约有10000,占总持仓的50%,而10合约有8000,占总持仓的40%,从占比来说相差并不悬殊。

第二,主力合约和次主力合约的价格发生了反向变动。在常规情况下这种变化是很少发生的,但是假如市场出现重大变动导致影响市场近期供需,而对远期供需基本不产生影响,这时便会产生价格反向变动。例如我们今年的疫情,导致了很多机构在2-3月份出现了做空近月,做多远月的情况。以及鸡蛋行情结构等等。说明在实盘过程中,这种情况是比较常见的。

我们退一万步来说,即使行情结构没有问题,属于同涨同跌,那么当换月发生过程点的时候,主次合约的权重占比接近,两者的升贴水是有的,因此也直接导致了对升贴水的加权平均。

在我们上述的例子中,主次合约的权重比重接近,对指数的影响正好被对冲掉,导致指数基本没有变化。

指数既然没有变化,显然不可能触发任何交易信号,然而实际行情很有可能已经天翻地覆。如果说错过的是开仓信号,风险还是可控的。如果错过的是平仓信号,甚至是止损信号,这个风险就不可控了。

当然以上例子是为了方便说明,条件设定较为夸张,但是我们讲艺术来源生活,真实这种例子笔者本人可以100%负责跟大家说,也得却是发生过的。这也是笔者本人曾经一直担惊受怕,心有所念迅速切换主连复权的原因。

因此基于以上的真实场景,我们发现了指数合约的致命核心点所在。所以我们接下来考虑的就是复权的类型和方式。复权类型指的是:前复权和后复权,方式指的是:差值复权和比例复权。

如下图所示,前复权就是将红框之前所有数据往下移对标后面的红框,后复权反之亦然。

由于程序化模型的运行机制是从左到右运行,那么前复权会导致历史数据被修改,之前模型留下的信号记录就必须重算,等于说运行到一个复权节点,就要回头把之前的数据重新复权一下再运行计算一遍。我们先不谈系统设计复杂性和效率性,我们就谈历史数据的不断迭代变化,这本身就是一个违背正常人逻辑的一件事儿,怎么能随着新合约进入,然后历史数据就不断的变化了呢?

其次,如果是后复权那么只需要后复权一个新主力合约价格即可,但是前复权是所有合约和数据,设想一下:100年后你是否也愿意面对当切换新合约后,你要把历史百年甚至数十年的数据进行重新计算迭代呢?

因此,在复权类型上面我们采用的是后复权。

接下来,就是差值复权和比例复权,这个逻辑也很简单,如果某个品种主次合约一直是属于圣水结构,那么每次后复权都要减掉升水,到最后这个价格肯定是负数。所以,后复权差值复权不能用。

因此,在后复权基础上我们只能用比例复权。

综三篇文章所述,笔者将该系列文章的背景,研究的基本路径步骤,发现的问题,心得,实盘细节等一切所有的问题和解决都分享给了大家,虽然没有做到所谓的手把手,但是我相信期货人的智商是至上的,于大者难,吾以智与勇戒之。

以该背景的文章目前告一段落,后续笔者计划将CTA的风险平价组合进行研究,真正从风险平价组合的逻辑出发,而非某个波动率倒数的资金管理角度,来研究这一投资界长存的“免费的午餐”。

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

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

  1. 量化研究 | 策略在指数与主连复权的差异化分析

    致力于分享量化策略,培训视频,Python,程序化交易等相关内容 作者简介 吕洋洋 某大型资管公司在职量化策略研究员,熟悉数据清洗工作,擅于运用宏观因子.行业因子等进行对期货品种价格影响建模与相关性分 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
  2. 关于Unity中Mecanim动画的动画状态代码控制与代码生成动画控制器
  3. 计算机启动操作系统的过程,操作系统启动过程
  4. python创建文件夹 覆盖_Python 创建新文件时避免覆盖已有的同名文件的解决方法...
  5. HTML5新增的主体结构元素
  6. java中常用的包 类和接口_java.util包常用的类和接口
  7. RabbitMQ入门:发布/订阅(Publish/Subscribe)
  8. [Sql2008错误问题] 配置系统未能初始化 0x84B10001
  9. 青岛胶州职业教育中心计算机基础专业证,胶州市职业教育中心学校着眼胶州发展大局,精准培养人才...
  10. 正交db小波 图像处理 matlab,基于matlab小波工具箱的数字图像处理及小波分析
  11. Oracle varchar2 4000
  12. vscode ( Visual Studio Code )设置中文、字体和字号
  13. CGAL 点云法向量重定向(扫描线算法)
  14. 企业无线路由器故障排除实例解析
  15. 弹性力学(工程力学)
  16. c920摄像头驱动 linux,4G模块驱动 - PanGuBoard - 湃兔核i2SOM
  17. CLRS 6.3建堆
  18. R语言|绘制简单小提琴图
  19. 矩阵加法python实现
  20. hackershare = Pocket +Hackernews + RSS Reader

热门文章

  1. 主动扫描技术nmap详解
  2. H3CNE概念思维导图
  3. 来诈金花嘛?Python实现的那种
  4. Windows系统及应用技巧二十六篇
  5. u盘中的android文件夹图标不显示,怎么解决u盘图标变成文件夹,手把手教你解决方法...
  6. SSB基准测试-MySQL
  7. wmware虚拟网卡 VMnet8 VMnet1未识别网络解决方法
  8. 计算机技术是不是信息技术,计算机技术和信息技术
  9. 权限提升+权限维持+痕迹清理
  10. java从网络Url中下载文件例子