经典技术指标公式源码教学第2节指标之王MACD

在经典技术指标公式源码教学系列文章的第1节,我们详细分析了投资交易市场中使用最广泛也是最基础最重要的一个指标即移动平均线MA(Moving Average)的通达信主图指标源代码,本节课程我们将分析另外一个使用最广泛最重要的副图技术指标MACD,该指标也被称为“指标之王”。

(一)MACD指标及意义

MACD(Moving Average Convergence and Divergence)是Geral Appel 于1979年提出的,利用收盘价CLOSE的短期(常用为12日)指数移动平均线与长期(常用为26日)指数移动平均线之间的聚合与离散状况,对买进、卖出时机作出研判的技术指标。

MACD的意义和双移动平均线基本相同,即由快、慢均线的离散、聚合表征当前的多空状态和股价可能的发展变化趋势,但该指标阅读起来更方便。

(二)MACD指标的组成

MACD由一根快线(DIF,通常为白线)、一根慢线(DEA,通常为黄线)、一根0轴线以及红绿柱构成。白线(快线)是短期(默认通常是12天)与长期(默认通常是26天)指数移动平均线(即EMA(12)和EMA(26))之间的差值。白线(快线)的反应较为灵敏,能够快速捕捉市场短期趋势变化;黄线(慢线)即白线(快线)在一个时间段内的平均值,默认通常为白线(快线)的9日指数移动平均线;红绿柱是白线(快线)与黄线(慢线)差值的2倍,当DIF线在DEA线之上,两者的差值为正即红柱,红柱代表多头力量,当DIF线在DEA线之下,两者的差值为负即绿柱,绿柱代表空头力量;0轴线是红柱与绿柱之间的分界线,也叫多空分界线。

经典技术指标公式源码教学第2节指标之王MACD

MACD指标的组成

(三)MACD指标的简单用法

一般来说,当白线(快线)和黄线(慢线)在0轴线上方时,通常为多头市场;而白线(快线)和黄线(慢线)在0轴线下方时,则为空头市场。当白线(快线)自下向上穿过黄线(慢线)时,会形成一个交叉点,为金叉。金叉可分为两种,一种是0轴之上的水上金叉,另一种是0轴之下的水下金叉。当金叉这一形态出现时,通常视为买入信号。而死叉则与金叉形态相反,通常视为卖出信号。当然,MACD的高阶用法是背离(缠论中称为背驰),分为顶背离和底背离。

总的来说,MACD是用于股市技术分析的一种实用性工具,同时由于MACD指标脱胎于指数移动平均线EMA,因此这一指标属于趋势线的指标,主要用于判断趋势,且也存在一定的滞后性,投资者在使用时还需结合其他技术指标,对市场走势进行综合分析,以便做出更谨慎更合理的投资决策。

由于本系列文章重点是分析经典指标的源码,并不详细各个炒股指标的详细用法和战法,所以这里只做简单的用法说明,关于各个炒股指标的更详细用法,以后有机会我们会再出系列文章进行介绍。搞懂了各个经典指标的源码之后,我们就能清楚地知道每一个指标的分类和本质,以便于我们对遇到的指标进行分析和取舍,避免过度使用同类指标或者使用欺骗性的指标。

二、副图技术指标MACD的源代码分析

我们从通达信行情交易软件中调出副图技术指标MACD,然后查看其源码如下图:

经典技术指标公式源码教学第2节指标之王MACD

副图技术指标MACD源码

MACD源码主体代码复制如下:

DIF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);
DEA:EMA(DIF,MID);
MACD:(DIF-DEA)*2,COLORSTICK;

我们可以看到,指标之王MACD的代码还是比较简单的,下面我们逐行给大家做分析。

第1行代码,定义并输出显示了一个变量DIF,它表示EMA(CLOSE,SHORT)与EMA(CLOSE,LONG)的差值。这里用到了一个系统内置函数EMA(X,N),这个函数的用法和上一节我们讲到的MA(X,N)是一样的,只不过其算法和意义有所不同。MA(X,N)表示的是X的N日简单移动平均值(算术平均值),MA的计算方法为:MA = (X1 + X2 + … + Xn) / N,其中X1到Xn为这段时间内的价格数据,n为数据个数。而EMA(Exponential Moving Average,‌指数移动平均线)‌是一种加权平均线,它给予近期数据更高的权重,使用指数平滑技术计算移动平均值,E‌MA(X,N)的计算公式为EMA(X,N)=(2*X+(N-1)*昨天的EMA)/(N+1)。

可见,MA采用等权重平均法,即所有时间段内的价格数据在计算中权重相同,因此MA更多地反映了价格在一个较长时间段内的平均水平。而EMA采用指数平滑法,给予近期价格更高的权重,使得EMA线对价格的短期变动更为敏感,能够更快地反映出市场的最新趋势。

EMA(CLOSE,SHORT)代表收盘价CLOSE的SHORT日指数移动平均值,其中SHORT是参数列表中设置的一个可调参数,最小值2,最大值200,默认值12;EMA(CLOSE,LONG)代表收盘价CLOSE的LONG日指数移动平均值,其中的LONG也是参数列表中设置的一个可调参数,最小值2,最大值200,默认值26;不过说真心话,从代码评价的角度来讲,这段代码写的并不好,因为它没有考虑到使用者将SHORT的数值调整到比LONG还要大的情况,不过我们使用的时候还是自己注意点儿,通常也是可以避免的。

在通达信的副图指标中,第一个输出显示的数值和线型通常是默认为白色的,所以虽然该行代码没有设定DIF曲线的颜色,但是在副图上面它仍然显示了白色曲线。

第2行代码,定义并输出显示了一个变量DEA,它被赋值EMA(DIF,MID),表示DIF数值的MID日指数移动平均值,其中MID也是参数列表中设置的一个可调参数,最小值2,最大值200,默认值9,表示DEA默认被赋值为DIF的9日指数移动平均线。

在通达信的副图指标中,第二个输出显示的数值和线型通常是默认为黄色的,所以虽然该行代码没有设定DEA曲线的颜色,但是在副图上面它仍然显示了黄色曲线。

第三行代码,定义并输出显示了一个变量MACD,它被赋值为(DIF-DEA)*2,即DIF与DEA差值的2倍,至于这里为什么是2倍,应该是因为DIF与DEA的差值有时候很小,当这个数值与DIF和DEA同时显示在一个副图坐标系中的时候,不容易观察其数值的变化,所以将其放大了2倍,当然,如果我们修改成3倍或者4倍也是可以的,不过放大太大的倍数,与DIF和DEA的数值对比起来也会显得稍显违和。

同时,我们看到该行代码中有一个系统内置的函数COLORSTICK,该函数无需参数,它的意思是画彩色柱状线,当数据为正数时,向上画红色柱状线,反之向下画绿线。

三、副图技术指标MACD的本质再说明

通过以上的源码分析,我们可以很清楚地看到,MACD技术指标的白线事实上就是短期EMA均线(默认为12日)和长期EMA均线(默认为26日)的差值。因此,当白线在水上(即白线数值大于0)的时候,即代表短期EMA均线(默认为12日)和长期EMA均线(默认为26日)发生金叉。所以,事实上,我们看MACD白线在水上还是水下,事实上就是看短期均线和长期均线的金叉和死叉。而黄线事实上就是白线的MID日(默认是9日)平均差值变化情况,红绿柱则代表了白线和黄线的金叉和死叉情况,白线金叉黄线是红色柱子,白线死叉黄线是绿色柱子。

经典技术指标公式源码教学第2节指标之王MACD

白线与EMA均线的关系

至此,我们已经将副图技术指标MACD的全部代码及其参数列表做了详细的分析和说明,相信大家通过以上的分析说明对MACD的意义和本质有了更深层次的了解,也进一步掌握了技术指标的编写知识。

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/281714
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 3小时前
下一篇 3小时前

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注