MACD 的数学解释

MACD 的一般定义

\[\begin{align*}
DIF &= EMA(P, w_{fast}) - EMA(P,w_{slow}) \\
DEM &= EMA(DIF, w_{signal}) \\
BAR &= 2 \times (DIF - DEM)
\end{align*}
\]

引入延迟算子

将 \(w\) 定义为 \(EMA\) 的衰减系数,即

\[EMA_t = (1-w) \cdot P_t + w \cdot EMA_{t-1}
\]

将 \(L\) 定义为“延迟算子”,公式重写成:

\[EMA_t = \frac{1-w}{1-wL} P_t
\]

进而推导出:

\[\begin{align*}
DIF_t &= \left( \frac{1-w_{fast}}{1-w_{fast}L} - \frac{1-w_{slow}}{1-w_{slow}L} \right) P_t \\
DEM_t &= \frac{1-w_{signal}}{1-w_{signal}L} P_t \\
BAR_t &= 2\cdot DIF_t \frac{w_{signal}(1-L)}{1-w_{signal}L} \\
&= 2 \cdot \frac{w_{signal}(1-L)}{1-w_{signal}L} \cdot \frac{(w_{slow} - w_{fast})(1-L)}{(1-w_{slow}L)(1-w_{fast}L)} P_t
\end{align*}
\]

下面解析 \(BAR_t\) 的计算中,历史数据的权重。

Taylor 展开

采用最通常的参数配置 \(MACD(12,26,9)\),即

\[\begin{align*}
w_{fast} &= (12-1) / (12+1) = 11/13 \\
w_{slow} &= (26-1) / (26+1) = 25/27 \\
w_{signal} &= (9-1) / (9+1) = 8/10 = 4/5
\end{align*}
\]

要得到历史数据在公式中的权重,必须对分数形式算子做 Taylor 展开,得到多项式级数的表达形式。将上述参数代入到公式中:

\[BAR_t =2 \cdot \frac{4/5(1-L)}{1-4/5L} \cdot \frac{(25/27 - 11/13)(1-L)}{(1-25/27L)(1-11/13L)} P_t
\]

在网站 WolframAlpha 上找到 Taylor 展开,输入上述公式

taylor series 2*(4/5*(1-x))/(1-4/5*x) * ((25/27 - 11/13)*(1-x))/((1-25/27*x)*(1-11/13*x))

得到 Taylor 展开的解析形式:

\[f(L) = \sum_{n=0}^{\infty}
\frac{32\left(819(\frac{4}{5})^n - 765(\frac{11}{13})^n + 65(\frac{25}{27})^n \right)}{29835} L^n
\]

所以,历史数据 \(P_{t-n}\) 的权重是:

\[\frac{32\left(819(\frac{4}{5})^n - 765(\frac{11}{13})^n + 65(\frac{25}{27})^n \right)}{29835}
\]

权重分析

画出前 50 个历史数据的权重

整体来看,权重的分布为三段:

  1. 近期的数据赋予正的权重,但迅速衰减
  2. 中期的数据赋予负的权重,绝对值先增后减
  3. 远期的数据权重几乎为 0

\(MACD\) 中的 \(BAR\) 基本上可以看作是近期数据与中期数据的差。

共振?

如图,采用最通常的参数配置 \(MACD(12,26,9)\),最大权重出现在 \(n=0\) 时,最小权重出现在 \(n=8\) 时。如果价格序列体现出“波浪”的形态,一个波谷到邻近波峰之间索引的差值等于 \(8-0\),按照上述权重的分布,基本上可以断定这时的 \(BAR\) 同时达到了最大值,因为我们为波分和波谷分别赋予了最大和最小的权重。也就是说,价格序列波浪的长度大致等于最大最小权重对应索引的差时,价格序列和 \(BAR\) 将出现“共振”。

MACD 的数学解释的更多相关文章

  1. FFT&NTT数学解释

    FFT和NTT真是噩梦呢 既然被FFT和NTT坑够了,坑一下其他的人也未尝不可呢 前置知识 多项式基础知识 矩阵基础知识(之后会一直用矩阵表达) FFT:复数基础知识 NTT:模运算基础知识 单位根介 ...

  2. github 专案介绍 – Python 范例:透过互动式的 Jupyter 和数学解释流行的机器学习演算法

    对于机器学习有兴趣,不少人应该会先从 Andrew Ng ( 吴恩达 ) 的机器学习课程开始,但是吴恩达的课程是使用 octave 这个工具当作练习.这个 github 项目包含使用 Python 实 ...

  3. SVD分解技术数学解释

    SVD分解 SVD分解是LSA的数学基础,本文是我的LSA学习笔记的一部分,之所以单独拿出来,是因为SVD可以说是LSA的基础,要理解LSA必须了解SVD,因此将LSA笔记的SVD一节单独作为一篇文章 ...

  4. [吴恩达机器学习笔记]12支持向量机3SVM大间距分类的数学解释

    12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.3 大间距分类背后的数学原理- Mathematic ...

  5. 奇异值分解 SVD 的数学解释

    奇异值分解(Singular Value Decomposition,SVD)是一种矩阵分解(Matrix Decomposition)的方法.除此之外,矩阵分解还有很多方法,例如特征分解(Eigen ...

  6. lasso数学解释

    lasso:是L1正则化(绝对值) 注:坐标下降法即前向逐步线性回归 lasso算法:常用于特征选择 最小角算法,由于时间有限没有去好好研究(其实是有点复杂,尴尬)

  7. OpenGL坐标变换及其数学原理,两种摄像机交互模型(附源程序)

    实验平台:win7,VS2010 先上结果截图(文章最后下载程序,解压后直接运行BIN文件夹下的EXE程序): a.鼠标拖拽旋转物体,类似于OGRE中的“OgreBites::CameraStyle: ...

  8. Chrome V8引擎系列随笔 (1):Math.Random()函数概览

    先让大家来看一幅图,这幅图是V8引擎4.7版本和4.9版本Math.Random()函数的值的分布图,我可以这么理解 .从下图中,也许你会认为这是个二维码?其实这幅图告诉我们一个道理,第二张图的点的分 ...

  9. TF-IDF提取行业关键词

    1. TF-IDF简介 TF-IDF(Term Frequency/Inverse Document Frequency)是信息检索领域非常重要的搜索词重要性度量:用以衡量一个关键词\(w\)对于查询 ...

随机推荐

  1. 各种异常 及异常类和Object类 Math类

    Day05 异常 Object类 equals方法,用于比较两个对象是否相同,它其实就是使用两个对象的内存地址在比较.Object类中的equals方法内部使用的就是==比较运算符. 2. 描述人这个 ...

  2. Metadata Service 最高频的应用 - 每天5分钟玩转 OpenStack(164)

    实现 instance 定制化,cloud-init(或 cloudbase-init)只是故事的一半,metadata service 则是故事的的另一半.两者的分工是:metadata servi ...

  3. ethtool -p eth0 物理口一个灯在不停的闪烁

    摘自:https://blog.csdn.net/morigejile/article/details/78598645 你的  服务器有多个网卡并且已经配置好运行当中,你却没记得eth0.eth1. ...

  4. NAT穿透的详细讲解及分析.RP

    原创出处:https://bbs.pediy.com/thread-131961.htm 转载来源: https://blog.csdn.net/g_brightboy/article/details ...

  5. ServiceStack.Redis.RedisNativeClient的方法“get_Db”没有实现。

    项目中用到redis,用nuget导入,但是运行时遇到问题 Exception: “Com.JinYiWei.Cache.RedisHelper”的类型初始值设定项引发异常.System.TypeIn ...

  6. [GO]结构体指针类型匿名字段

    package main import "fmt" type Person struct { name string sex byte age int } type Student ...

  7. 七)oracle 2 mysql

    /* Navicat MySQL Data Transfer Source Server : localhost Source Server Version : 50527 Source Host : ...

  8. (转)UI设计实战篇——利用Bootstrap框架制作查询页面的界面

    原文地址:http://www.cnblogs.com/grenet/p/3413085.html Bootstrap框架是一个前端UI设计的框架,它提供了统一的UI界面,简化了设计界面UI的过程(缺 ...

  9. GC分析中提到的根对象是什么

    一些文章在分析GC时,不可逾越的说到要先从根对象扫描出不可达对象,然后标记那些不可达对象为垃圾.那么源头根对象是什么玩意呢? 几分钟后google到比较可信源是http://stackoverflow ...

  10. 洛谷P4149 [IOI2011]Race(点分治)

    题目描述 给一棵树,每条边有权.求一条简单路径,权值和等于 KK ,且边的数量最小. 输入输出格式 输入格式:   第一行:两个整数 n,kn,k . 第二至 nn 行:每行三个整数,表示一条无向边的 ...