[学习分享]指数移动平均

指数移动平均

指数移动平均(Exponential Moving Average,EMA)是一种加权移动平均,根据数据点的新旧程度分配不同的权重和重要性,即其权重随着时间的推移而指数递减。

定义

假设我们有 t t t 个数据: [ X 1 , X 2 , . . . , X t ] [X_1, X_2, ..., X_t] [X1,X2,...,Xt]

普通的平均数:
X ˉ = 1 n ∑ i = 1 t X i \bar{X}=\frac{1}{n}\sum_{i=1}^{t}{X_i} Xˉ=n1i=1tXi

指数移动平均数的计算公式如下:
E M A n ( t ) = E M A n ( t − 1 ) ∗ ( 1 − α ) + X t ∗ α EMA_n(t) = EMA_n(t-1) * (1 - α) + X_t * α EMAn(t)=EMAn(t1)(1α)+Xtα
其中:

  • E M A n ( t ) EMA_n(t) EMAn(t) 表示第 t t t 个数据点的 n n n 日指数移动平均值
  • E M A n ( t − 1 ) EMA_n(t-1) EMAn(t1) 表示第 t − 1 t-1 t1 个数据点的 n n n 日指数移动平均值
  • X t X_t Xt 表示第 t t t 个数据点的值
  • α α α 表示指数平滑因子,取值范围为 0 到 1,通常取值为 0.1 到 0.3

证明

根据定义,我们可以得到以下等式:
E M A n ( t ) = E M A n ( t − 1 ) ∗ ( 1 − α ) + X t ∗ α EMA_n(t) = EMA_n(t-1) * (1 - α) + X_t * α EMAn(t)=EMAn(t1)(1α)+Xtα

E M A n ( t − 1 ) EMA_n(t-1) EMAn(t1) 用上述等式代替,得到:
E M A n ( t ) = ( E M A n ( t − 2 ) ∗ ( 1 − α ) 2 + X t − 1 ∗ ( 1 − α ) ) ∗ ( 1 − α ) + X t ∗ α EMA_n(t) = (EMA_n(t-2) * (1 - α)^2 + X_{t-1} * (1 - α)) * (1 - α) + X_t * α EMAn(t)=(EMAn(t2)(1α)2+Xt1(1α))(1α)+Xtα

重复上述操作,可以得到:
E M A n ( t ) = ( X 0 ∗ α n + X 1 ∗ α n − 1 + . . . + X t − 1 ∗ α + X t ) / ( α n + α n − 1 + . . . + α + 1 ) EMA_n(t) = (X_0 * α^n + X_1 * α^{n-1} + ... + X_{t-1} * α + X_t) / (α^n + α^{n-1} + ... + α + 1) EMAn(t)=(X0αn+X1αn1+...+Xt1α+Xt)/(αn+αn1+...+α+1)

α α α 等于 1 减去 β β β 代入,得到:
E M A n ( t ) = ( X 0 ∗ β n + X 1 ∗ β n − 1 + . . . + X t − 1 ∗ β + X t ) / ( β n + β n − 1 + . . . + β + 1 ) EMA_n(t) = (X_0 * β^n + X_1 * β^{n-1} + ... + X_{t-1} * β + X_t) / (β^n + β^{n-1} + ... + β + 1) EMAn(t)=(X0βn+X1βn1+...+Xt1β+Xt)/(βn+βn1+...+β+1)

因此,指数移动平均线可以表示为:
E M A n ( t ) = ∑ i = 0 t − 1 X i β t − i − 1 ∑ i = 0 n − 1 β i EMA_n(t) = \frac{\sum_{i=0}^{t-1} X_i \beta^{t-i-1}}{\sum_{i=0}^{n-1} \beta^{i}} EMAn(t)=i=0n1βii=0t1Xiβti1
其中:

  • β β β 表示指数平滑因子,取值范围为 0 到 1,通常取值为 0.1 到 0.3

特点

指数移动平均线具有以下特点:

  • 越近期的数据加权影响力越重,但较旧的数据也给予一定的加权值。
  • 指数移动平均线的计算公式是一个递归公式,因此可以很容易地计算出任意长度的指数移动平均线。
  • 指数移动平均线可以用于识别趋势、判断支撑和阻力水平、以及预测未来价格走势。

应用

指数移动平均线在技术分析中有着广泛的应用。它可以用于识别趋势、判断支撑和阻力水平、以及预测未来价格走势。

  • 趋势识别

指数移动平均线可以用于识别趋势。如果短期指数移动平均线穿越长期指数移动平均线,则表明趋势发生了变化。

  • 支撑和阻力水平

指数移动平均线可以用于识别支撑和阻力水平。如果价格在指数移动平均线附近波动,则表明该水平可能成为支撑或阻力水平。

  • 预测未来价格走势

指数移动平均线可以用于预测未来价格走势。如果短期指数移动平均线向上突破长期指数移动平均线,则表明价格可能继续上涨。反之,如果短期指数移动平均线向下突破长期指数移动平均线,则表明价格可能继续下跌。

注意事项

在使用指数移动平均线时,需要注意以下事项:

  • 指数移动平均线的周期长度会影响其敏感性。周期越短,指数移动平均线越敏感于短期波动;周期越长,指数移动平均线越敏感于长期趋势。
  • 指数移动平均线可以与其他技术指标

reference

@misc{BibEntry2023Nov,
title = {{xn–56j炼丹技巧xn–66j指数移动平均xn–zg7cEMAxn–0g7c的原理及PyTorch实现}},
journal = {知乎专栏},
year = {2023},
month = nov,
urldate = {2023-11-09},
language = {chinese},
note = {[Online; accessed 9. Nov. 2023]},
url = {https://zhuanlan.zhihu.com/p/68748778}
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot测试类启动web环境-下篇

一、响应状态 1.MockMvcResultMatchers 说明:模拟结果匹配。 package com.forever;import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoC…

软件测试|MySQL LIKE:深入了解模糊查询

简介 在数据库查询中,模糊查询是一种强大的技术,可以用来搜索与指定模式匹配的数据。MySQL数据库提供了一个灵活而强大的LIKE操作符,使得模糊查询变得简单和高效。本文将详细介绍MySQL中的LIKE操作符以及它的用法,并通过示例演示…

软件测试/测试开发丨接口测试Mock实战练习学习笔记

点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/27857 一、Rewrite 1.1、Rewrite 原理 1.2、Rewrite 实战 Tools → Rewrite 勾选 Enable Rewrite 点击下方 Add 按钮新建一个重写的规则 在右侧编辑重…

JVM之jinfo虚拟机配置信息工具

jinfo虚拟机配置信息工具 1、jinfo jinfo(Configuration Info for Java)的作用是实时地查看和调整虚拟机的各项参数。 使用jps -v 可以查看虚拟机启动时显示指定的参数列表,但是如果想知道未被显示指定的参数的系统默认值,除 …

blender动画制作全流程软件

blender官网下载地址 Download — blender.org blender菜单中英文对照表 blender常用快捷键: ~切换视图 z切换着色模式 shiftA新建物体 tab进入编辑模式 在编辑模式下: 1编辑点 2编辑线 3编辑面 shfit空格弹出所有快捷键 游标一般配合标注使用 常用:G移动物体…

1214. 波动数列

题目&#xff1a; 1214. 波动数列 - AcWing题库 思路&#xff1a;dp dp划分递归 转自&#xff1a; AcWing 1214. 波动数列&#xff08;有公式详细推导&#xff09; - AcWing 代码&#xff1a; #include <iostream> #include <cstring> #include <algori…

Stable Diffusion WebUI扩展sd-webui-controlnet之Canny

什么是Canny? 简单来说,Canny是计算机视觉领域的一种边缘检测算法。 关于Canny算法大家可以去看我下面这篇博客,里面详细介绍了Canny算法的原理以及代码演示。 OpenCV竟然可以这样学!成神之路终将不远(十五)_maxminval opencv-CSDN博客文章浏览阅读111次。14 图像梯度…

【Orangepi Zero2 全志H616】驱动串口实现Tik Tok—VUI(语音交互)

一、编程实现语音和开发板通信 wiringpi库源码demo.c 二、基于前面串口的代码修改实现 uartTool.huartTool.cuartTest.c 三、ADB adb控制指令 四、手机接入Linux热拔插相关 a. 把手机接入开发板 b. 安装adb工具&#xff0c;在终端输入adb安装指令&#xff1a; sudo apt-g…

freeswich学习

写在前面 因为所在部分主要负责公司客服业务&#xff0c;需要了解freeswich相关内容&#xff0c;所以这里将学习内容记录下。 1&#xff1a;安装freesswich freeswich是一个实现了软交换协议的开源软件&#xff0c;可以对对接运营上的通话线路&#xff0c;实现拨打电话。 安…

【C++】万字一文全解【继承】及其特性__[剖析底层化繁为简](20)

前言 大家好吖&#xff0c;欢迎来到 YY 滴C系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; 目录 一.继承&复用&组合的区别1&…

ClickHouse开发系列

一、 ClickHouse详解、安装教程_clickhouse源码安装 二、ClickHouse 语法详解_clickhouse讲解 三、ClickHouse SQL 操作语句详解 四、ClickHouse 高级教程—官方原版 五、ClickHouse主键索引最佳实践 六、MySQL与ClickHouse集成 七、ClickHouse 集成MongoDB、Re…

洛谷P4185 离线+并查集

好题&#xff0c;发现没有强制在线&#xff0c;可以离线操作 排序之后带集合点数的并查集就好了 #include<bits/stdc.h> using namespace std; const int N 1e510; int n,m; int p[N],sz[N];int find(int x){if(x!p[x])p[x] find(p[x]);return p[x]; } struct Node{in…

github 上传代码报错 fatal: Authentication failed for ‘xxxxxx‘

问题 今天一时兴起创建了个 github 新仓库&#xff0c;首次上传本地代码时&#xff0c;遇到了一个报错。本来以为是账号密码的问题&#xff0c;搞了好几次&#xff0c;发现都没错的情况下还是上传不上去。目测判断是认证相关问题&#xff0c;具体报错信息如下&#xff1a; rem…

【力扣:1504】统计全1子矩阵

统计全1子矩阵个数 思路1&#xff1a;首先考虑深度优先模拟&#xff0c;从【0&#xff0c;0】出发向下、右扩展&#xff0c;符合条件res&#xff0c;最后输出res&#xff0c;比较直观&#xff0c;但重复进行了大量节点遍历操作&#xff0c;时间复杂度较高&#xff0c;数据量大时…

【LeetCode】每日一题 2023_11_9 逃离火灾(bfs 练习)

文章目录 刷题前唠嗑题目&#xff1a;最长平衡子字符串题目描述代码与解题思路偷看大佬题解 结语 刷题前唠嗑 LeetCode? 启动&#xff01;&#xff01;&#xff01; 嗯&#xff1f;什么&#xff1f;今天是 hard&#xff1f;陷入沉思。。。先看看题吧 题目&#xff1a;最长平…

Go 面向对象,多态,基本数据类型

程序功能解读 第一行为可执行程序的包名&#xff0c;所有的Go源文件头部必须有一个包生命语句&#xff0c;Go通过包名来管理命名空间。 第三行import是引用外部包的说明 func关键字声明定义一个函数&#xff0c;如果是main则代表是Go程序入口函数 Go源码特征解读 源程序以.g…

基于SSM的汽车在线租赁管理系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

python编程复习系列——week1(Input Output)

Input & Output 前言0、我们的第一个Python程序一、变量和数据类型1.变量是用来存储值的保留存储位置2.变量以特定的数据类型存储值。常见数据类型&#xff1a;3.字符串添加&#xff08;连接&#xff09;4.字符串乘法&#xff08;带数字&#xff09;&#xff01;5.从用户处…

Javascript知识点详解:对象、New命令、Object对象的相关方法

目录 对象 对象是什么 构造函数 new 命令 基本用法 new 命令的原理 new.target Object.create() 创建实例对象 Object 对象的相关方法 Object.getPrototypeOf() Object.setPrototypeOf() Object.create() Object.prototype.isPrototypeOf() Object.prototype.__p…

Vue3.0 声明式导航,编程式导航,路由,路由拦截案例

项目结构 App.vue&#xff1a;根组件 <template><div><router-view></router-view><Tabbar></Tabbar></div> </template> <script setup> import Tabbar from ../src/views/Tabbar.vue; //底部选项卡 import Home from…
最新文章