量化交易策略:ATR与ADTM指标的多因子策略

哈喽,大家好,我是木头左!

今天,将深入探讨两个重要的技术指标:ATR和ADTM。这两个指标在多因子策略中发挥着关键作用,可以帮助更好地理解市场动态,优化投资组合。

ATR指标:真实波动幅度均值

ATR(Average True Range)是一种非常实用的技术分析工具,用于衡量市场波动性。它可以帮助投资者判断市场的波动程度,从而制定相应的交易策略。

ATR的计算方法

ATR的计算分为以下几个步骤:

  1. 计算每日的真实波动幅度(TR):当日最高价减去当日最低价,然后除以前一日收盘价与当日最高价和最低价中的较低值。

  2. 计算一定周期内的平均真实波动幅度:将每日的真实波动幅度相加,然后除以周期内的天数。

  3. 计算ATR值:对平均真实波动幅度进行N日指数移动平均(EMA)。
    导入一些必要的库:

import pandas as pd
import numpy as np
import talib

可以使用talib.ATR()函数来计算ATR指标:

data = pd.read_csv('your_data.csv')  # 请替换为你的数据文件路径
atr = talib.ATR(data['high'], data['low'], data['close'], timeperiod=14)  # 设置时间周期为14天
data['atr'] = atr
ATR指标的应用

ATR指标在多因子策略中的应用主要体现在以下几个方面:

  1. 风险管理:通过观察ATR值,投资者可以判断市场的波动程度,从而调整仓位和止损点,降低风险。

  2. 交易信号:当ATR值上升时,表示市场波动加剧,可能预示着趋势的改变;当ATR值下降时,表示市场波动减弱,可能预示着趋势的延续。

  3. 价格目标:结合其他技术指标,如均线、布林带等,投资者可以预测未来价格的目标位置。

ADTM指标:动量偏离度均值

ADTM(Average Directional Moving Average Momentum)是一种动量指标,用于衡量市场的动量偏离程度。它可以帮助判断市场的走势是否过于强势或弱势,从而制定相应的交易策略。

ADTM的计算方法

ADTM的计算分为以下几个步骤:

  1. 计算每日的方向性移动平均(DMA):当日收盘价减去前一日DMA值。

  2. 计算一定周期内的平均方向性移动平均:将每日的方向性移动平均相加,然后除以周期内的天数。

  3. 计算ADTM值:对平均方向性移动平均进行N日指数移动平均(EMA)。

可以使用talib.ADTM()函数来计算ADTM指标:

data = pd.read_csv('your_data.csv')  # 请替换为你的数据文件路径
adtm = talib.ADTM(data['high'], data['low'], data['close'])  # 默认时间周期为14天
data['adtm'] = adtm
ADTM指标的应用

ADTM指标在多因子策略中的应用主要体现在以下几个方面:

  1. 趋势判断:当ADTM值上升时,表示市场趋势较强;当ADTM值下降时,表示市场趋势较弱。

  2. 交易信号:当ADTM值上升时,表示买入信号;当ADTM值下降时,表示卖出信号。

  3. 价格回调:结合其他技术指标,如均线、布林带等,投资者可以预测未来价格的回调位置。

ATR与ADTM指标的多因子策略

在多因子策略中,ATR和ADTM指标可以相互配合,帮助投资者更好地把握市场动态。以下是一个基于ATR和ADTM指标的多因子策略实例:

  1. 选择股票池:根据市值、行业、基本面等因素,筛选出一定数量的股票作为备选股票池。

  2. 计算因子评分:为每支股票分配不同的因子权重,计算每支股票的因子评分。因子评分可以根据历史数据进行回测,也可以根据分析师的研究结果进行设定。

  3. 排序并选取前10名股票:根据因子评分对备选股票池进行排序,选取排名前10的股票作为买入候选。

  4. 分配资金:将当前可用资金按照10%的比例分配给每支买入候选股票。如果某个股票的权重过高或过低,可以适当调整。

  5. 买入并持有:在选定的交易日内,按照上述策略进行买入操作。买入后,持有股票至少20个交易日。如果在持有期间,ATR值上升或ADTM值下降,可以考虑适当减仓或止损。

  6. 调仓:在每20个交易日结束后,重新计算因子评分,按照上述策略进行调仓操作。如果在调仓过程中,发现某些股票的因子评分明显下降,可以考虑将其剔除出股票池。

  7. 重复执行:在每次调仓后,继续执行上述策略,直到达到投资目标或触发止损条件。

通过以上策略,投资者可以在不同的市场环境下,实现稳定的投资收益。同时,ATR和ADTM指标的引入,也有助于提高投资组合的风险控制能力。

ATR和ADTM指标的缺点

  1. 滞后性:ATR和ADTM指标都是基于过去的价格数据计算得出的,通常是日线计算,可能具有一定的滞后性。在市场风格变化频繁时,可能无法及时反映市场的变化。

  2. 过度拟合:由于ATR和ADTM指标是基于历史数据的计算,它们可能会对过去的市场行为进行过度拟合,导致在未来的交易中失效。

  3. 参数选择:ATR和ADTM指标都涉及到一些参数的选择,例如时间周期。不同的参数选择可能会导致不同的结果,因此需要根据具体情况进行调整。

我是木头左,感谢各位童鞋的点赞、收藏,我们下期更精彩!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/856155.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序学习(七):自定义组件和通信

1、基本知识 开发中常见的组件主要分为 公共组件 和 页面组件 两种,因此注册组件的方式也分为两种: 全局注册:在 app.json 文件中配置 usingComponents 节点进行引用声明,注册后可在任意组件使用局部注册:在页面.jso…

需求虽小但是问题很多,浅谈JavaScript导出excel文件

最近我在进行一些前端小开发,遇到了一个小需求:我想要将数据导出到 Excel 文件,并希望能够封装成一个函数来实现。这个函数需要接收一个二维数组作为参数,数组的第一行是表头。在导出的过程中,要能够确保避免出现中文乱…

二叉树(数据结构篇)

数据结构之二叉树 二叉树 概念: 二叉树(binary tree)是一颗每个节点都不能多于两个子节点的树,左边的子树称为左子树,右边的子树称为右子树 性质: 二叉树实际上是图,二叉树相对于树更常用。 平衡二叉树的深度要比…

关于addEventListener的使用和注意项

一、addEventListener基本理解 addEventListener 是一个 JavaScript DOM 方法,用于向指定元素添加事件监听器。它接受三个参数: 事件类型:一个字符串,表示要监听的事件类型,如 ‘click’、‘mouseover’、‘keydown’…

JS的设计原理

JavaScript 是一种基于原型的脚本语言,主要用于网页开发。它最初由 Brendan Eich 在 1995 年设计,并迅速成为万维网的核心技术之一。JavaScript 的设计原理包括以下几个方面: 1. 易用性和灵活性 JavaScript 被设计为一种简单易用的语言&…

scikit-image安装报错

scikit-image安装报错: pip install scikit-image0.21.0 报错信息: Collecting PyWavelets>1.1.1 (from scikit-image0.21.0) Installing build dependencies … error error: subprocess-exited-with-error 解决方法: 提前安装好PyWave…

正版 navicat 下载

1. 打开浏览器访问 navicat 官网 Navicat | 下载 Navicat Premium 14 天免费 Windows、macOS 和 Linux 的试用版 windows 用户选择这三项其中一个就可以 2. 下载 点击之后等个几秒钟就会开始下载了 3. 双击打开 下载好的 .exe 程序 进入安装程序 (不影响之前已经安装过的) 可…

客户ITSS案例 — 江苏中友讯华信息科技有限公司

● 2019年12月17日至12月20日,中国电子工业标准化技术协会信息技术服务分会(以下称ITSS分会)组织召开了运行维护服务能力成熟度符合性评估专家评审会。在江苏新世纪信息科技有限公司的咨询辅导下,江苏中友讯华信息科技有限公司顺利…

猫头虎分享已解决Bug || **Mismatched Types**: `mismatched types`

🐯 猫头虎分享已解决Bug || Mismatched Types: mismatched types 🐯 关于猫头虎 大家好,我是猫头虎,别名猫头虎博主,擅长的技术领域包括云原生、前端、后端、运维和AI。我的博客主要分享技术教程、bug解决思路、开发…

Zookeeper-04

Zookeeper-数据同步 Zookeeper是一个分布式协调服务,它可以用来管理和同步分布式系统中的数据。当多个节点需要共享数据时,它们可以通过Zookeeper来进行数据同步。 Zookeeper使用了一种称为“Zab”的一致性协议来保证数据的一致性。当一个节点需要向其…

ECharts 雷达图案例001-自定义节点动画

ECharts 雷达图案例001-自定义节点动画 引言 在数据可视化的领域中,ECharts 提供了一种强大的工具来展示多维数据。本文将介绍如何使用 ECharts 创建一个自定义节点样式的雷达图,让数据展示更加生动和个性化。 效果预览 通过自定义节点样式&#xff…

AI早班车2024.6.19

全球AI新闻速递 1.广东 / 山东警方破获两起“AI 换脸伪造不雅照”案。 2.腾讯混元、港科大、清华推出表情包框架:Follow Your Emoji。 3.抖音联合博纳影业推出首部 AIGC 科幻短剧集《三星堆:未来启示录》。 4.亚马逊:宣布向全球创企提供 …

【Java】BigDecimal类型——BigDecimal 为什么可以保证精度不丢失

目录 简介类介绍案例分析总结BigDecimal类型的使用场景MySQL中存储BigDecimal类型数据补充:BigDecimal类型使用时的注意事项BigDecimal类型的其他使用 简介 BigDecimal是Java中的一个类,用于处理大数运算。它提供了精确的数值计算,可以处理任…

真空玻璃可见光透射比检测 玻璃制品检测 玻璃器皿检测

建筑玻璃检测 防火玻璃、钢化玻璃、夹层玻璃、均质钢化玻璃、平板玻璃、中空玻璃、真空玻璃、镀膜玻璃夹丝玻璃、光栅玻璃、压花玻璃、建筑用U形玻璃、镶嵌玻璃、玻璃幕墙等 工业玻璃检测 钢化安全玻璃、电加温玻璃、玻璃、半钢化玻璃、视镜玻璃、汽车安全玻璃、汽车后窗电热…

Walrus:去中心化存储和DA协议,可以基于Sui构建L2和大型存储

Walrus是为区块链应用和自主代理提供的创新去中心化存储网络。Walrus存储系统今天以开发者预览版的形式发布,面向Sui开发者征求反馈意见,并预计很快会向其他Web3社区广泛推广。 通过采用纠删编码创新技术,Walrus能够快速且稳健地将非结构化数…

数据库选型实践:如何避开分库分表痛点 | OceanBase用户实践

随着企业业务的不断发展,数据量往往呈现出快速的增长趋势。使用MySQL的用户面对这种增长,普遍选择采用分库分表技术作为应对方案。然而,这一方案常在后期会遇到很多痛点。 分库分表的痛点 痛点 1:难以保证数据一致性。由于分库分…

CCNA 0基础入门

OSI & TCP/IP OSI参考模型 TCP/IP协议 应用层 ------↓表示层 ------>应用层会话层 ------↑传输层 ------>传输层网络层 ------>网络互联层链路层 ------>网络接口层物理层 ------>↑ 物理层 传输的信号以及网线以及接线 主要作用是产生并检测电…

【python中的turtle库有哪些常用的方法】

turtle库是Python中一个非常流行的图形绘制库,用于绘制简单的图形和进行基础的动画编程。以下是turtle库中常用的一些方法: 画笔控制 penup(): 抬起画笔,移动时不留痕迹。pendown(): 放下画笔,移动时留下痕迹。pensize(width): …

高压电阻器支持牙科 X 射线成像的准确性

为了捕获患者牙齿和颌骨的足够图像,牙医依靠锥形束计算机断层扫描 (CBCT) 系统的先进 3D 成像。CBCT系统的输出对于准确诊断口腔健康问题和随后的治疗计划至关重要。为了确保这些图像的可靠性,CBCT系统制造商利用了Exxelia Ohmcra…

数据库 |试卷八试卷九试卷十

1.基数是指元组的个数 2.游标机制 3.触发器自动调用 4.count(*)统计所有行,不忽略空值null,但不但要全局扫描,也要对表的每个字段进行扫描; 5.eacherNO INT NOT NULL UNIQUE,为什么不能断定TeacherNO是主码&#xff…