持续行动1期 58/100,“AI技术应用于量化投资研究”。

前面我们说轮动其实是一种“范式”,天然带着分散、组合的特点。动量也不是一个策略或者某一个因子,而是一簇。比如N天收益率,均线,MACD金叉或者RSRS(光大证券的一个阻力支撑指标),甚至是通道突破(唐奇安通道或者布林带)都是动量的逻辑。

动量背后的逻辑是“强者恒强”,“惯性”。其实这是有道理的。价格趋势会保持一定的运动惯性,市场情绪消化需要一定的时间。

从策略上看,其实就是“追涨杀跌”,大家用来嘲讽新手韭菜的行事风格。但其实这符合人的直觉,“左侧交易”的低位价值投资或者“均值回归”是反人性的,而“右侧交易”更符合直觉。

其实并没有对错,只是周期的不同阶段罢了。

投资是知道自己在做什么,承担什么样的风险,赚什么样的回报。

01 大小盘动量轮动

轮动的基础是二者确实”有此消彼长“负相关性。

A股市场大小盘:沪深300指数、创业板指数就存在这样的效应。那么使用20日均量这样一个简单的指标。

年化21%,夏普比0.83,最大回撤21%。

说白了,过去12年(从2010年开始,就买这两个指数,过去20天的动量大的,如果动量都小于0,则空仓),年化收益超过股神巴菲特了,回撤21%也在可接受范围内,真的能做到一定的“抄底逃顶”的。

加上中证500之后,收益率下降,回撤增加。

如果换成标普500和日经225指数,效果会差很多。

原因分析:动量策略对于单边大牛市很有效,可能吃到大部分,并且可以把成果保留下来,但对于震荡向上的市场,则效果一般。

02 自定义RSRS指标

RSRS是光大证券提出的一个“阻力支撑”指标,广义上讲也是趋势指标。

我们用bt的框架里实现一下。

bt里的指标,都是继承自bt.indicator或者它的子类。

至少要定义1个lines,这里我们定义两个lines,一个rsrs,一个rsrs_dev。

它的参数用的是元组tuple

import backtrader as bt
import numpy as np
import statsmodels.api as smclass RSRS(bt.Indicator):lines = ('rsrs', 'rsrs_dev')params = (('N', 18), ('value', 5))def __init__(self):self.high = self.data.highself.low = self.data.lowself.lines.rsrs = bt.Max(0.0, self.params.value)self.lines.rsrs_dev = bt.Min(0.0, self.params.value)def next(self):high_N = self.high.get(ago=0, size=self.p.N)low_N = self.low.get(ago=0, size=self.p.N)print(low_N, len(low_N))try:X = sm.add_constant(np.array(low_N))model = sm.OLS(np.array(high_N), X)results = model.fit()self.lines.rsrs[0] = results.params[1]except:self.lines.rsrs[0] = 0

这里用了statsmodels的线性回归求两个序列的斜率。

rsrs还有正则化,修正正则化,右偏修正正则化的实现,明天继续了。

今天主要是在bt框架里,演示如何实现自定义的指标,熟悉了之后其实很容易。

动量轮动与光大RSRS指标在backtrader的实现相关推荐

  1. etf动量轮动+大盘择时:年化30%的策略

    原创文章第111篇,专注"个人成长与财富自由.世界运作的逻辑, AI量化投资". 今天重点来探索一下elegantRL. 昨天的文章金融强化学习与finRL开发包里介绍了finRL ...

  2. ETF动量轮动+RSRS择时,RSRS修正标准分,回撤降至16%

    原创文章第113篇,专注"个人成长与财富自由.世界运作的逻辑, AI量化投资". 昨天的策略我是比较满意的,沿着进化的方向在迭代我们的策略.ETF轮动+RSRS择时,加上卡曼滤波: ...

  3. ETF轮动+RSRS择时,加上卡曼滤波:年化48.41%,夏普比1.89

    原创文章第112篇,专注"个人成长与财富自由.世界运作的逻辑, AI量化投资". 昨天我们设计了一个不错的策略:etf动量轮动+大盘择时:年化30%的策略.ETF动量轮动+RSRS ...

  4. RSRS指标择时及大小盘轮动

    RSRS指标择时及大小盘轮动 简介: RSRS指标的构建 1)取前N日的最高价序列与最低价序列. 2)将两列数据,以最高价为因变量,最低价为自变量进行OLS线性回归. 3)取前M日的斜率时间序列,计算 ...

  5. 量化选股——基于动量因子的行业风格轮动策略(第1部分—因子测算)

    文章目录 动量因子与行业轮动概述 动量因子的理解 投资视角下的行业轮动现象 投资者视角与奈特不确定性 动量因子在行业风格上的效果测算 动量因子效果测算流程概述 1. 行业选择:申万一级行业 2. 动量 ...

  6. 研报复制(三):基于相对强弱指标的大小盘轮动

    欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答.求职一站式搞定! 对商业智能BI.大数据分析挖掘.机器学习,python,R等数据领域感兴趣的同学 ...

  7. 《缠中说禅108课》106:均线、轮动与缠中说禅板块强弱指标

    以反弹为例子说本节,调整的只要反过来就是. 任一级别,都有最少的延伸时间,例如,一笔,由于必须有顶与底的分型,因此,必须至少延伸 6 个基本 K 线单位,也就是说,如果 5 日线都不能碰到,那就不会是 ...

  8. 西蒙斯都在用的量化选股策略——风格轮动模型

    阅读原文:京东量化平台-为投资者提供数据支持.策略开发到策略输出的量化生态服务 京东金融官方资讯QQ:3414182370 有什么想问的想说的都可以来参与!还有机会获取奖品! 市场上的投资者是有偏好的 ...

  9. 多因子策略_单因子选股轮动测试

    多因子策略 因子 因子就是在选择一只股票时,能够帮助你做出决定的一个因素 类型 规模因子 1. 总市值 2. 流通市值 3. 自由流通市值 4. 小市值因子(市值越小,其操纵涨跌所需要的资金越少,股票 ...

最新文章

  1. 2016去哪儿编程题:乘坐公交
  2. linux命令全集,Linux命令全集
  3. cuda10安装_Win10安装GPU版本的Tensorflow 2.1
  4. Tomcat 修改JSESSIONID
  5. Mockito框架学习 - how does expected annotation work
  6. The C10K problem
  7. Linux内核开发:内核模块参数
  8. ngnix集群产生的问题
  9. 实现元素拖拽放大缩小_G6 3.6:放大每一处细节
  10. Visual Studio 2019 C++实现socket通信,添加ws2_32.lib库,新手代码
  11. 天使投资喜欢什么样的商业计划书
  12. 元宇宙持续升温,金蝶推出数字员工破圈而来
  13. 22-05-21 西安 javaweb(07) HttpServletRequest和HttpServletResponse、转发与重定向、web应用的路径问题、解决中文乱码问题
  14. 网站结构之扁平结构与树形结构的区分
  15. 有衬线字体和无衬线字体
  16. 阿里云备案流程、操作步骤及所需时间图文详解
  17. 台式计算机的8g,win10系统台式机配置8G内存显示可用内存只有3.4G的教程
  18. Using React, Typescript, and Webpack with Visual Studio 2015
  19. Eclipse 配置JDK
  20. php 生成 rtf,php 实现html转为rtf格式

热门文章

  1. 淘宝客网站如何优化:几招教你最简单的网站站内优化
  2. 如何提取pdf文件中的某一页?
  3. 判断扫码的时候是支付宝还是微信?怎么做
  4. 如何使用Python脚本来处理电子邮件?
  5. excel中数值数据但无法进行数值计算,错误#VALUE!
  6. elementary OS 常用软件安装
  7. 力推“高端产品大众化”:Redmi发布七大重磅新品
  8. 你想要的宏基因组-微生物组知识全在这(2023.7)
  9. gnome远程桌面 kali_基于KaliLinux的GNOME美化
  10. [网络推广]直通车学习