[zz]MACD指标1

MACD称为指数 平滑异同移动平均线(Moving Average Convergence and Divergence)。是从双移动平均线发展而来的,由快的移动平均线减去慢的移动平均线, MACD的意义和双移动平均线基本相同, 但阅读起来更方便。
  当MACD从负数转向正数,是买的信号。当MACD从正数转向负数,是卖的信号。当MACD以大角度变化,表示快的移动平均线和慢的移动平均线的差距非常迅速的拉开,代表了一个市场大趋势的转变。MACD是Geral Appel 于1979年提出的,它是一项利用短期(常用为12日)移动平均线与长期(常用为26日)移动平均线之间的聚合与分离状况,对买进、卖出时机作出研判的技术指标。

[编辑本段]公式算法

  DIFF线 (Difference)收盘价短期、长期指数平滑移动平均线间的差,也就是(12个交易日的指数平滑移动平均线)减去(26个交易日的指数平滑移动平均线),例如从2009年1月5日--2009年1月20日(扣除4个周末,共计12个交易日),用这12个交易日的收盘价算出一个滑动平均值,就是12个交易日的指数平滑移动平均线。(算法在下边,至于计算公式产生的原因就不要研究了,总之专家)
  DEA线 (Difference Exponential Average)DIFF线的M日指数平滑移动平均线 ,DIFF本身就是12日平均减去26日平均所得的“值差”,而DEA则是这个连续9日的这个“差值”的平均数(就是简单的算数平均数),
  MACD线 DIFF线与DEA线的差,彩色柱状线。
  参数:SHORT(短期)、LONG(长期)、M 天数,一般为12、26、9
  公式如下所示:
  加权平均指数(DI)=(当日最高指数+当日收盘指数+2倍的当日最低指数)
  十二日平滑系数(L12)=2/(12+1)=0.1538
  二十六日平滑系数(L26)=2/(26+1)=0.0741
  十二日指数平均值(12日EMA)=L12×当日收盘指数+11/(12+1)×昨日的12日EMA
  二十六日指数平均值(26日EMA)=L26×当日收盘指数+25/(26+1)×昨日的26日EMA
  差离率(DIF)=12日EMA-26日EMA
  九日DIF平均值(DEA) =最近9日的DIF之和/9
  柱状值(BAR)=DIF-DEA (或者叫MACD)
  MACD=当日的DIF*2/(9+1)+前天的MACD*(9-1)/(9+1)

[编辑本段]应用原则

  1.当DIF由下向上突破DEA,形成黄金交叉,既白色的DIF上穿黄色的DEA形成的交叉。或者BAR(绿柱线)缩短,为买入信号。
  2.当DIF由上向下突破DEA,形成死亡交叉,既白色的DIF下穿黄色的DEA形成的交叉。或者BAR(红柱线)缩短,为卖出信号。
  3.顶背离:当股价指数逐波升高,而DIF及DEA不是同步上升,而是逐波下降,与股价走势形成顶背离。预示股价即将下跌。如果此时出现DIF两次由上向下穿过DEA,形成两次死亡交叉,则股价将大幅下跌。
  4.底背离:当股价指数逐波下行,而DIF及DEA不是同步下降,而是逐波上升,与股价走势形成底背离,预示着股价即将上涨。如果此时出现DIF两次由下向上穿过DEA,形成两次黄金交叉,则股价即将大幅度上涨。
  MACD指标主要用于对大势中长期的上涨或下跌趋势进行判断,当股价处于盘局或指数波动不明显时,MACD买卖信号较不明显。当股价在短时间内上下波动较大时,因MACD的移动相当缓慢,所以不会立即对股价的变动产生买卖信号。
  MACD主要是利用长短期的二条平滑平均线,计算两者之间的差离值,作为研判行情买卖之依据。MACD指标是基于均线的构造原理,对价格收盘价进行平滑处理(求出算术平均值)后的一种趋向类指标。它主要由两部分组成,即正负差(DIF)、异同平均数(DEA),其中,正负差是核心,DEA是辅助。DIF是快速平滑移动平均线(EMA1)和慢速平滑移动平均线(EMA2)的差。
  在现有的技术分析软件中,MACD常用参数是快速平滑移动平均线为12,慢速平滑移动平均线参数为26。此外,MACD还有一个辅助指标——柱状线(BAR)。在大多数技术分析软件中,柱状线是有颜色的,在低于0轴以下是绿色,高于0轴以上是红色,前者代表趋势较弱,后者代表趋势较强。
  下面我们来说一下使用MACD指标所应当遵循的基本原则:
  1.当DIF和DEA处于0轴以上时,属于多头市场,DIF线自下而上穿越DEA线时是买入信号。DIF线自上而下穿越DEA线时,如果两线值还处于0轴以上运行,仅仅只能视为一次短暂的回落,而不能确定趋势转折,此时是否卖出还需要借助其他指标来综合判断。
  2.当DIF和DEA处于0轴以下时,属于空头市场。DIF线自上而下穿越DEA线时是卖出信号,DIF线自下而上穿越DEA线时,如果两线值还处于0轴以下运行,仅仅只能视为一次短暂的反弹,而不能确定趋势转折,此时是否买入还需要借助其他指标来综合判断。
  3.柱状线收缩和放大。一般来说,柱状线的持续收缩表明趋势运行的强度正在逐渐减弱,当柱状线颜色发生改变时,趋势确定转折。但在一些时间周期不长的MACD指标使用过程中,这一观点并不能完全成立。
  4.形态和背离情况。MACD指标也强调形态和背离现象。当形态上MACD指标的DIF线与MACD线形成高位看跌形态,如头肩顶、双头等,应当保持警惕;而当形态上MACD指标DIF线与MACD线形成低位看涨形态时,应考虑进行买入。在判断形态时以DIF线为主,MACD线为辅。当价格持续升高,而MACD指标走出一波比一波低的走势时,意味着顶背离出现,预示着价格将可能在不久之后出现转头下行,当价格持续降低,而MACD指标却走出一波高于一波的走势时,意味着底背离现象的出现,预示着价格将很快结束下跌,转头上涨。
  5.牛皮市道中指标将失真。当价格并不是自上而下或者自下而上运行,而是保持水平方向的移动时,我们称之为牛皮市道,此时虚假信号将在MACD指标中产生,指标DIF线与MACD线的交叉将会十分频繁,同时柱状线的收放也将频频出现,颜色也会常常由绿转红或者由红转绿,此时MACD指标处于失真状态,使用价值相应降低。
  用DIF的曲线形状进行分析,主要是利用指标相背离的原则。具体为:如果DIF的走向与股价走向相背离,则是采取具体行动的时间。但是,根据以上原则来指导实际操作,准确性并不能令人满意。经过实践、摸索和总结,综合运用5日、10日均价线,5日、10日均量线和MACD,其准确性大为提高。

[编辑本段]其它预测原则

  当 MACD 与 Trigger 线均为正值,即在 0 轴以上时,表示大势仍处多头市场,趋势线是向上的。而这时柱状垂直线图(Oscillators) 是由 0 轴往上升延,可以大胆买进。
  当 MACD 与 Trigger 线均为负值,即在 0 轴以下时,表示大势仍处空头市场,趋势线是向下的。而这时柱状垂直线图 (Oscillators) 是由 0 轴上往下跌破中心 0 轴,而且是在 0 轴下展延,这时应该立即卖出。
  当 MACD 与 K 线图的走势出现背离时,应该视为股价即将反转的信号,必须注意盘中走势。
  就其优点而言,MACD 可自动定义出目前股价趋势之偏多或偏空,避免逆向操作的危险。而在趋势确定之后,则可确立进出策略,避免无谓之进出次数,或者发生进出时机不当之后果。MACD 虽然适于研判中期走势,但不适于短线操作。再者,MACD 可以用来研判中期上涨或下跌行情的开始与结束,但对箱形的大幅振荡走势或胶著不动的盘面并无价值。同理,MACD用于分析各股的走势时,较适用于狂跌的投机股,对于价格甚少变动的所谓牛皮股则不适用。总而言之,MACD 的作用是找出市场的超买超卖点,从市场的转势点。
  短线投资者的买卖策略
  1.在移动平均汇聚背驰指针(MACD)图表中, 如MACD1由上向下转势,又或者MACD2由上向下转,则表示价位可能下跌,可考虑出货。
  2. 反之,如 MACD1由下向上转势,又或者MACD2由下向上转势,则表示价位可能上升,可考虑入货。
  3. 这种买卖讯号的出现会较频密,投资者的买卖次数亦会相应增加。当大升市时,价位会有所调整,投资者未能获取较可观的回报。相对而言,获取较少的利润,同样,亏蚀的风险亦较低。

[编辑本段]中短线投资者的买卖策略

  1.在移动平均汇聚背驰指针(MACD)图表中的一支支垂直线称为移动平均汇聚背驰指针(MACD),而绿色横线是柱状垂直线的分水岭,柱状垂直线出现在此分水岭之下,称为「负」,而出现在分水岭之上,则称为「正」。
  2. 对中短线投资者而言,当移动平均汇聚背驰指针(MACD)柱状垂直线由负变正时,亦即垂直线由分水岭之下转为之上时,是入货讯号。如利用移动平均汇聚背驰指针(MACD)来分析,则MACD1将会由下向上穿越MACD2。
  3. 反之,当柱状垂直线由正变负时,亦即垂直线由分水岭之上转为之下时,是沽货讯号。同样地,MACD1将会由上向下穿越MACD2。

[编辑本段]中线投资者的买卖策略

  1. 在移动平均汇聚背驰指针(MACD)图表中之灰黑色横虚线为零线,如MACD1和MACD2都处于零线之上,显示市况上升趋势未完。故此MACD1和MACD2在零线之上向下转势,或者MACD1跌破MACD2,亦只能当作好仓的平仓讯号。但如果MACD1是在零线之下,而跌破MACD2时,才能构成较为可靠的沽货讯号。
  2.反之,如果MACD1和MACD2都在零线之下,显示跌势未完。故此,MACD1和MACD2都在零线之下而向上转势时,或者MACD1升破MACD2,亦只能当作淡仓的平仓讯号。但如果MACD1是在零线之上,而升破MACD2,才能视作较为可靠的入货讯号。

[编辑本段]实战经验

  (1)股价在经过漫长的下跌后,开始筑底,随后股价开始缓慢回升,5日、10日均价线,5日、10日均量线和MACD都出现黄金交叉点,简称三金叉,这时是股价见底的信号,而交叉的次数越多,且见底部不断提高,则准确性越高,该股即将走出一波上升行情。如:0933神火股份,在2000年1月5日,该股5日、10日均价线,5日、10日均量线和MACD同时在底部金叉,即三金叉出现,此时即为介入的最佳时机,随后该股出现了一波强劲的上攻行情,在3个月时间内,股价由10.69元上升到17.50元,升幅达70%。
  (2)当股价经过一轮大涨,受到众多中小投资者的追捧,主力开始派发,这时出现5日、10日均价线,5日、10日均量线和MACD同时死叉,则是卖出的最佳时机,这时若稍有迟疑,股价便会一泻千里。如0722金果实业,因2000年3月9日三死叉出现,是强烈的卖出信号,随后股价展开一轮暴跌,在短短2个月内,由27.17元跌至13.46元,跌幅惊人。主力出逃后,随之而后的是连续阴跌。
  (3)参数设置快速EMA12, 慢速EMA26
  使用方法 : 随股价上升MACD翻红,即白线上穿黄线(先别买),其后随股价回落,DIF(白线)向MACD(黄线)靠拢,当白线与黄线粘合时(要翻绿未翻绿),此时只需配合日K线即可,当此时K线有止跌信号,如:收阳,十字星等.(注意,在即将白黄粘合时就要开始盯盘囗,观察卖方力量),若此时能止跌称其为”底背驰”. 底背驰是买入的最佳时机!!! 可随意取例,无数个股底部均有此现象.例600720祁连山 99年5月19日 0768西飞国际99年5月18日和6月4日 0542TCL通讯2000年1日18日等等,举不胜举.
  反之,当股价高位回落,MACD翻绿,再度反弹,此时当DIF(白线)与MACD(黄线)粘合时[要变红未变红]若有受阻,如收阴,十字星等,就有可能”顶背驰”是最后的卖出良机!!!此时许多人以为重拾升势,在别人最佳卖点买入往往被套其中.例子也随意举几个.0796宝商 2000年8月17日. 600720祁连山98年11月24日 600823万象集团98年10日29日,11月9日,12月3日.
  操作注意:
  A.背驰时不理是否击穿或突破前期高(低)位
  B.高位时只要有顶背驰可能一般都卖,不搏能重翻红,除非大阳或涨停.
  C.其为寻找短期买卖点的奇佳手段,短期幅度15%以上,但中线走势要结合长期形态及其他.
  (4)在许多使用者看来,把均线系统的参数(天数)设为5天、10天、20天或30天是常用的设置方法,但个人认为现阶段中国股市中,55天、120天、250天均线天数才是最理想的设置,不妨说:短期天数的均线系统只能为使用者带来一些微薄的利润,但长期均线系统却能为我们找到大黑马,产生丰厚的盈利,而当价格出现下降时,这三条均线又往往为我们提供了逢低买入或者逢高卖出的时机。
  从一些股价出现翻番的大牛股的走势不难看出,突破上档长期均线即55天、120天和250天均线是形成大牛市行情的必要条件,尽管股价在这些长期均线之上的个股不一定会出现大幅上涨,但出现过大幅上涨的个股股价大幅扬升都是出现在突破长期均线之后。一旦长期均线呈多头排列,并开始发散,此时股价将走出连续的震荡上升行情。
  我们以上海梅林(600073)为例来分析:该股股价自1999年10月中旬下跌至250天均线后受该均线支撑而企稳,随后走出筑底行情,12月初突破上档半年均线的压力,预示着一波升势正在酝酿,12月30日股价在回跌至120天均线处企稳,并再次出现上行,开始进入大幅扬升阶段;其后股价在2月17日形成冲高回落,至下档55天均线处未能企稳,下跌到120天均线企稳,其后展开反弹,但明显受阻于上档55天均线,反弹结束。今年6月15日股价跌破120天均线,其后该均线对股价走势形成明显压力,6月29日两条均线发出死叉,预示着后期股价将有可能向250天均线处靠拢。
  在三条均线中,55天均线一般是短、中期多空强弱分界线。一般而言,在上升过程中有效跌破55天均线预示着一轮中期调整的到来,120天均线是中、长期多空强弱分界线,一般而言,股价当下跌至120天均线或上升至120天均线后往往出现转头(阶段性高点与低点形成),250天均线是原始趋势线,只有当250天均线作出向上或向下的比较明显的变化时,才代表趋势已完全转弱或转强。
   平滑异同移动平均线
   英文:Moving Average Convergence and Divergence
  平滑异同移动平均线,简称MACD,是近来美国所创的技术分析工具。MACD吸收了移动平均线的优点。运用移动平均线判断买卖时机,在趋势明显时收效很大,但如果碰上牛皮盘整的行情,所发出的信号频繁而不准确。
  根据移动平均线原理所发展出来的MACD,一来克服了移动平均线假信号频繁的缺陷,二来能确保移动平均线最大的战果。
  计算方法:
  MACD是计算两条不同速度(长期与中期)的指数平滑移动平均线(EMA)的差离状况来作为研判行情的基础。
  1、首先分别计算出收市价SHORT日指数平滑移动平均线与LONG日指数平滑移动平均线,分别记为EMA(SHORT)与EMA(LONG)。
  2、求这两条指数平滑移动平均线的差,即:
  DIFF=EMA(SHORT)-EMA(LONG)
  3、再计算DIFF的MID日指数平滑移动平均,记为DEA。
  4、最后用DIFF减DEA,得MACD。MACD通常绘制成围绕零轴线波动的柱形图。
  在绘制的图形上,DIFF与DEA形成了两条快慢移动平均线,买进卖出信号也就决定于这两条线的交叉点。很明显,MACD是一个中长期趋势的投资技术工具。缺省时,系统在
  副图上绘制SHORT=12,LONG=26,MID=9时的DIFF线、DEA线、MACD线(柱状线)。
  应用法则:
  1、DIFF与DEA均为正值,即都在零轴线以上时,大势属多头市场,DIFF向上突破DEA,可作买。
  2、DIFF与DEA均为负值,即都在零轴线以下时,大势属空头市场,DIFF向下跌破DEA可作卖。
  3、当DEA线与K线趋势发生背离时为反转信号。
  4、DEA在盘局时,失误率较高,但如果配合RSI及KD,可以适当弥补缺憾。
  5、分析MACD柱形图,由正变负时往往指示该卖,反之往往为买入信号。
  MACD实战战法
  一、“MACD低位两次金叉”
  技术形态中至少有四类可以预测暴涨的形态。那么,技术指标中有没有预测暴涨的指标?答案是有的。首先是“MACD低位两次金叉”出暴利机会。MACD指标的要素主要有红色柱、绿色柱、DIF指标、DEA指标。其中,当DIF、DEA指标处于O轴以下的时候,如果短期内(8或13个交易日内)连续发生两次金叉,则发生第二次金叉的时候,可能发生暴涨。
  使用“MACD低位二次金叉”寻找短线暴涨股,需注意下列事项:(一)MACD低位一次金叉的,未必不能出暴涨股,但“MACD低位二次金叉”出暴涨股的概率和把握更高一些。(二)“MACD低位二次金叉”出暴涨股的概率和把握所以更高一些,是因为经过“第一次金叉”之后,空头虽然再度小幅进攻、造成又一次死叉,但是,空头的进攻在多方的“二次金叉”面前,遭遇溃败。从而造成多头力量的喷发。(三)“MACD低位二次金叉”,如果结合K线形态上的攻击形态研判,则可信度将提高,操盘手盘中将更容易下决心介入。形成了“两阳吃一阴”,当天并且温和放量,综合研判的可信度明显增加。也即:“MACD低位二次金叉”和K线形态、量价关系可以综合起来考虑,以增加确信度。

  四、运用这一指标特别强调背离关系。当价格持续上涨,创出新高时MACD指标未能创出前一阶段高点,意味着价格随时有回落的可能;向上运行的力量不强。同理也可总结出在价格持续下跌时的情况。
  五、该指标死亡先于价格下跌发出,黄金交叉一般滞后于价格上涨发出。
  六、对部分超跌强势股的判断应当借助于均线系统(55天、120天、250天)综合判断。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于上证50指数和中证1000指数,我们可以使用tushare获取它们的历史数据: ```python import tushare as ts # 获取上证50指数历史数据 sz50_data = ts.get_k_data('sh000016', start='2010-01-01') # 获取中证1000指数历史数据 zz1000_data = ts.get_k_data('sz399978', start='2010-01-01') ``` 接下来,我们可以分别计算它们的RSI指标、KDJ指标macd指标和最大回撤指标: ```python import numpy as np import pandas as pd import talib # 计算RSI指标 def calc_rsi(data, n=14): close = data['close'] rsi = talib.RSI(close, timeperiod=n) return rsi # 计算KDJ指标 def calc_kdj(data, n=9, m1=3, m2=3): high = data['high'] low = data['low'] close = data['close'] kdj = talib.STOCH(high, low, close, fastk_period=n, slowk_matype=m1, slowd_period=m2, slowd_matype=m2) return kdj # 计算macd指标 def calc_macd(data, n1=12, n2=26, n3=9): close = data['close'] macd, signal, hist = talib.MACD(close, fastperiod=n1, slowperiod=n2, signalperiod=n3) return macd, signal, hist # 计算最大回撤指标 def calc_max_drawdown(data): close = data['close'] cummax = np.maximum.accumulate(close) drawdown = (close - cummax) / cummax max_drawdown = np.min(drawdown) return max_drawdown ``` 接下来,我们可以把上述指标计算出来,并将它们合并到一个DataFrame中: ```python # 计算上证50指数的各项指标 sz50_data['rsi'] = calc_rsi(sz50_data) sz50_data['kdj_k'], sz50_data['kdj_d'], sz50_data['kdj_j'] = calc_kdj(sz50_data) sz50_data['macd'], sz50_data['macd_signal'], sz50_data['macd_hist'] = calc_macd(sz50_data) sz50_data['max_drawdown'] = calc_max_drawdown(sz50_data) # 计算中证1000指数的各项指标 zz1000_data['rsi'] = calc_rsi(zz1000_data) zz1000_data['kdj_k'], zz1000_data['kdj_d'], zz1000_data['kdj_j'] = calc_kdj(zz1000_data) zz1000_data['macd'], zz1000_data['macd_signal'], zz1000_data['macd_hist'] = calc_macd(zz1000_data) zz1000_data['max_drawdown'] = calc_max_drawdown(zz1000_data) # 合并两个DataFrame data = pd.merge(sz50_data[['date', 'close', 'rsi', 'kdj_k', 'kdj_d', 'kdj_j', 'macd', 'macd_signal', 'macd_hist', 'max_drawdown']], zz1000_data[['date', 'close', 'rsi', 'kdj_k', 'kdj_d', 'kdj_j', 'macd', 'macd_signal', 'macd_hist', 'max_drawdown']], on='date', suffixes=('_sz50', '_zz1000')) ``` 接下来,我们可以使用机器学习的方法构建一个高胜率的交易策略。具体来说,我们可以将上证50指数与中证1000指数的比值作为因变量,将各项指标作为自变量,然后使用逻辑回归算法进行分类。 ```python from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split # 构建特征矩阵和标签 X = data[['rsi_sz50', 'kdj_k_sz50', 'kdj_d_sz50', 'kdj_j_sz50', 'macd_sz50', 'macd_signal_sz50', 'macd_hist_sz50', 'max_drawdown_sz50', 'rsi_zz1000', 'kdj_k_zz1000', 'kdj_d_zz1000', 'kdj_j_zz1000', 'macd_zz1000', 'macd_signal_zz1000', 'macd_hist_zz1000', 'max_drawdown_zz1000']] y = (data['close_sz50'] / data['close_zz1000']).shift(-1) > 1 # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # 使用逻辑回归算法进行分类 clf = LogisticRegression(random_state=42).fit(X_train, y_train) y_pred = clf.predict(X_test) ``` 最后,我们可以画出各项指标的变化趋势图: ```python import matplotlib.pyplot as plt # 画出各项指标的变化趋势图 fig, axs = plt.subplots(4, 2, figsize=(15, 15)) axs[0, 0].plot(data['date'], data['close_sz50'], label='sz50') axs[0, 0].plot(data['date'], data['close_zz1000'], label='zz1000') axs[0, 0].legend() axs[0, 1].plot(data['date'], data['rsi_sz50'], label='sz50') axs[0, 1].plot(data['date'], data['rsi_zz1000'], label='zz1000') axs[0, 1].legend() axs[1, 0].plot(data['date'], data['kdj_k_sz50'], label='sz50') axs[1, 0].plot(data['date'], data['kdj_k_zz1000'], label='zz1000') axs[1, 0].legend() axs[1, 1].plot(data['date'], data['kdj_d_sz50'], label='sz50') axs[1, 1].plot(data['date'], data['kdj_d_zz1000'], label='zz1000') axs[1, 1].legend() axs[2, 0].plot(data['date'], data['kdj_j_sz50'], label='sz50') axs[2, 0].plot(data['date'], data['kdj_j_zz1000'], label='zz1000') axs[2, 0].legend() axs[2, 1].plot(data['date'], data['macd_sz50'], label='sz50') axs[2, 1].plot(data['date'], data['macd_zz1000'], label='zz1000') axs[2, 1].legend() axs[3, 0].plot(data['date'], data['macd_signal_sz50'], label='sz50') axs[3, 0].plot(data['date'], data['macd_signal_zz1000'], label='zz1000') axs[3, 0].legend() axs[3, 1].plot(data['date'], data['max_drawdown_sz50'], label='sz50') axs[3, 1].plot(data['date'], data['max_drawdown_zz1000'], label='zz1000') axs[3, 1].legend() plt.show() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值