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\)对于查询 ...
随机推荐
- EntityFramework - Code First - 数据迁移
需求 在更新模型之后同步更新数据库里的表,并不丢失原有数据 使用默认值填充新增加的字段 EntityFramework迁移命令 Enable-Migrations 启用迁移 Add-Migration ...
- 封装request.get_params批量取值
@json_request_validator(post_schema) 装饰器 from functools import wraps from schema import SchemaError ...
- HUST软件测试1506班: 第0周作业成绩
说明 本次公布的成绩包含三次作业的结果: 毕博平台课前测试题 第0周作业1:开设博客 第0周作业2:博客阅读和思考 如果同学对作业结果存在异议,可以: 在线平台的第一周在线答疑中创建话题申诉. 或直接 ...
- 不设置环境变量 直接启动tomcat
window: 设置 startup.bat set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_144set JRE_HOME=C:\Program Files ...
- 编写高质量代码改善C#程序的157个建议——建议102:区分接口和抽象类的应用场合
建议102:区分接口和抽象类的应用场合 接口和抽象类有一些显而易见的区别: 接口支持多继承,抽象类则不能. 接口可以包含方法.属性.索引器.事件的签名,但不能有实现,抽象类则可以. 接口在增加新方法后 ...
- ArcGIS API for Javascript 图层切换渐变效果实现
在一个WebGIS系统中往往要实现图形的切换,比如业务图层的切换,以及底图的切换等等,可以通过控制图层的可见性来实现.比如通过设置图层的opacity .visible来控制,前几天有网友聊天的时候提 ...
- javascript 面试题之一
function setName(obj){ obj.name="tom"; obj=new Object(); obj.name="mike"; } var ...
- gitlab发送邮件配置
在使用gitlab过程中,通常需配置邮件来实现代码管理服务器向成员(member)发送邮件.本文将实现gitlab中邮件配置 1.编辑 /etc/gitlab/gitlab.rb,修改配置邮件,这里以 ...
- WCF服务通信测试
知识需要反复咀嚼,常读常新,简单的WCF通信测试:basicHttpBinding(基本通信)\netTcpBinding(双工通信)\netMsmqBinding(消息队列),简单的测试Demo.简 ...
- xaml mvvm(1)之结构
在微软winstore.wp和silverlight中xaml是用来构建UI视图的标记语言,全名Extensible Application Markup Language.在结构上类似于html,但 ...