MACD 的数学解释
MACD 的数学解释
MACD 的一般定义
DIF &= EMA(P, w_{fast}) - EMA(P,w_{slow}) \\
DEM &= EMA(DIF, w_{signal}) \\
BAR &= 2 \times (DIF - DEM)
\end{align*}
\]
引入延迟算子
将 \(w\) 定义为 \(EMA\) 的衰减系数,即
\]
将 \(L\) 定义为“延迟算子”,公式重写成:
\]
进而推导出:
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)\),即
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 展开,得到多项式级数的表达形式。将上述参数代入到公式中:
\]
在网站 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 展开的解析形式:
\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}\) 的权重是:
\]
权重分析
画出前 50 个历史数据的权重

整体来看,权重的分布为三段:
- 近期的数据赋予正的权重,但迅速衰减
- 中期的数据赋予负的权重,绝对值先增后减
- 远期的数据权重几乎为 0
\(MACD\) 中的 \(BAR\) 基本上可以看作是近期数据与中期数据的差。
共振?
如图,采用最通常的参数配置 \(MACD(12,26,9)\),最大权重出现在 \(n=0\) 时,最小权重出现在 \(n=8\) 时。如果价格序列体现出“波浪”的形态,一个波谷到邻近波峰之间索引的差值等于 \(8-0\),按照上述权重的分布,基本上可以断定这时的 \(BAR\) 同时达到了最大值,因为我们为波分和波谷分别赋予了最大和最小的权重。也就是说,价格序列波浪的长度大致等于最大最小权重对应索引的差时,价格序列和 \(BAR\) 将出现“共振”。
MACD 的数学解释的更多相关文章
- FFT&NTT数学解释
FFT和NTT真是噩梦呢 既然被FFT和NTT坑够了,坑一下其他的人也未尝不可呢 前置知识 多项式基础知识 矩阵基础知识(之后会一直用矩阵表达) FFT:复数基础知识 NTT:模运算基础知识 单位根介 ...
- github 专案介绍 – Python 范例:透过互动式的 Jupyter 和数学解释流行的机器学习演算法
对于机器学习有兴趣,不少人应该会先从 Andrew Ng ( 吴恩达 ) 的机器学习课程开始,但是吴恩达的课程是使用 octave 这个工具当作练习.这个 github 项目包含使用 Python 实 ...
- SVD分解技术数学解释
SVD分解 SVD分解是LSA的数学基础,本文是我的LSA学习笔记的一部分,之所以单独拿出来,是因为SVD可以说是LSA的基础,要理解LSA必须了解SVD,因此将LSA笔记的SVD一节单独作为一篇文章 ...
- [吴恩达机器学习笔记]12支持向量机3SVM大间距分类的数学解释
12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.3 大间距分类背后的数学原理- Mathematic ...
- 奇异值分解 SVD 的数学解释
奇异值分解(Singular Value Decomposition,SVD)是一种矩阵分解(Matrix Decomposition)的方法.除此之外,矩阵分解还有很多方法,例如特征分解(Eigen ...
- lasso数学解释
lasso:是L1正则化(绝对值) 注:坐标下降法即前向逐步线性回归 lasso算法:常用于特征选择 最小角算法,由于时间有限没有去好好研究(其实是有点复杂,尴尬)
- OpenGL坐标变换及其数学原理,两种摄像机交互模型(附源程序)
实验平台:win7,VS2010 先上结果截图(文章最后下载程序,解压后直接运行BIN文件夹下的EXE程序): a.鼠标拖拽旋转物体,类似于OGRE中的“OgreBites::CameraStyle: ...
- Chrome V8引擎系列随笔 (1):Math.Random()函数概览
先让大家来看一幅图,这幅图是V8引擎4.7版本和4.9版本Math.Random()函数的值的分布图,我可以这么理解 .从下图中,也许你会认为这是个二维码?其实这幅图告诉我们一个道理,第二张图的点的分 ...
- TF-IDF提取行业关键词
1. TF-IDF简介 TF-IDF(Term Frequency/Inverse Document Frequency)是信息检索领域非常重要的搜索词重要性度量:用以衡量一个关键词\(w\)对于查询 ...
随机推荐
- spring4-5-事务管理
1.简单介绍 事务管理是企业级应用程序开发中必不可少的技术, 用来确保数据的完整性和一致性. 事务就是一系列的动作, 它们被当做一个单独的工作单元. 这些动作要么全部完成, 要么全部不起作用 事务的 ...
- 15-Call to your teacher(有向图的连通判断)
链接:https://www.nowcoder.net/acm/contest/76/F来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K ...
- TortoiseSVN教程
TortoiseSVN使用教程 TortoiseSVN是一个SVN的客户端 1.Checkout Repository 首先要Checkout服务器端的Repository,所谓的Checkout就是 ...
- [C++] Sign and magnitude,Ones' complement and Two's complement
Sign and magnitude,Ones' complement and Two's complement
- [Email] 收发邮件的协议 : IMAP and SMTP , POP3 and SMTP
支持 IMAP 和 SMTP 的应用 与仅同步收件箱的 POP 不同,IMAP 同步所有电子邮件文件夹. 在电子邮件应用中使用以下设置. 接收 (IMAP) 服务器 服务器地址:imap-mail.o ...
- Excel 常用快捷键
Excel 常用快捷键 1. 移动整列 使用Shift快捷键可以快速移动整列:选中该列,当鼠标变成十字箭头时,按住Shift键,然后将该列移动到想要的位置. 2 绝对引用 使用F4快捷键可以快速设置绝 ...
- 开发工具Visual Studio使用相关知识和经验的碎片化记录
开发工具Visual Studio使用相关知识和经验的碎片化记录 1.Visual Studio提示"无法启动IIS Express Web服务器"的解决方法 有时,在使用Visu ...
- python 中面向对象编程简单总结2
1.python中继承的特点: (1)总是从一个类继承,默认为object类 (2)不要忘记调用super.__init__方法来初始化父类的方法 def __init__(self,args): s ...
- Firefox 43无法安装xpi的问题
Firefox 43无法安装xpi的问题 说明:Firefox 42将默认禁止安装未签名扩展 强制禁用这个首选项(高级用户): 你可以在 Firefox 配置编辑页面 (about:config ...
- 删除emacs临时文件
emacs编辑文件后产生的带小尾巴(~)的文件,你有没有强迫症,要删之而后快rm -rf *~ 你有没有不小心敲成了rm -rf ~,然后爽快的按下了回车,然后欲哭无泪,哈哈- 其实,可以设置在ema ...