分享

Excel 用收盘价计算MACD数据并进行相应的逻辑判断

 mastereye 2018-03-24
一、MACD详细的计算过程
第一步:设参数:α为平滑指数,N为变更,可通过窗口进行参数修改,分别为X和Y,默认为选取12和26天,则α默认为2/13和2/27。
第二步:EMA的算法:若Y=EMA(X,N),则Y=[2*X+(N-1)*Y’]/(N+1),其中Y’表示上一周期的Y值。
X是变量,天天的X值都不同,从远到近地标记,它们分别记为X1,X2,X3,….,Xn
假如N=1,则EMA(X,1)=[2*X1+(1-1)*Y’]/(1+1)=X1
假如N=2,则EMA(X,2)=[2*X2+(2-1)*Y’]/(2+1)=(2/3)*X2+(1/3)X1
假如N=3,则EMA(X,3)=[2*X3+(3-1)*Y’]/(3+1)=[2*X3+2*((2/3)*X2+(1/3)*X1)]/4=(1/2)*X3+(1/3)*X2+(1/6)*X1=3/6*X3+2/6*X2+1/6*X1
假如N=4,则EMA(X,4)=[2*X4+(4-1)*Y’]/(4+1)=2/5*X4+3/5*((1/2)*X3+(1/3)*X2+(1/6)*X1)=4/10*X4+3/10*X3+2/10*X2+1/10*X1
=2/5*X4+3/10*X3+3/15*X2+3/30*X1
假如N=5,则EMA(X,5)=2/(5+1)*X5+(5-1)/(5+1)(2/5*X4+3/10*X3+3/15*X2+3/30*X1)
=(1/3)*X5+(4/15)*X4+(3/15)*X3+(2/15)*X2+(1/15)*X1=5/15*X5+4/15*X4+3/15*X3+2/15*X2+1/15*X1
…………循环下往吧:)第三步:通过以上算法算出EMAX和EMAY,要求默认为12,26,但其参数可以自行调节。
第四步:计算 MACD.DIF=EMAX-EMAY 。
第五步:计算 MACD.DEA=EMA(MACD.DIF,Z),Z值默认为9,但实际可以自行调节。
第六步:计算MACD.MACD=(MACD.DIF-MACD.DEA)*2
相关参数资料
1、http:///how-to-calculate-ema-in-excel/中的
Set EMAChart = ActiveSheet.ChartObjects.Add(Left:=Range("a12").Left, Width:=500, Top:=Range("a12").Top, Height:=300)With EMAChart.Chart     .Parent.Name = "EMA Chart"     With .SeriesCollection.NewSeries        .ChartType = xlLine        .Values = Sheets("data").Range("e2:e" & numRows)        .XValues = Sheets("data").Range("a2:a" & numRows)        .Format.Line.Weight = 1        .Name = "Price"    End With     With .SeriesCollection.NewSeries        .ChartType = xlLine        .AxisGroup = xlPrimary        .Values = Sheets("data").Range("h2:h" & numRows)        .Name = "EMA"        .Border.ColorIndex = 1        .Format.Line.Weight = 1    End With     .Axes(xlValue, xlPrimary).HasTitle = True    .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Price"    .Axes(xlValue, xlPrimary).MaximumScale = WorksheetFunction.Max(Sheets("Data").Range("e2:e" & numRows))    .Axes(xlValue, xlPrimary).MinimumScale = Int(WorksheetFunction.Min(Sheets("Data").Range("e2:e" & numRows)))    .Legend.Position = xlLegendPositionRight    .SetElement (msoElementChartTitleAboveChart)    .ChartTitle.Text = "Close Price & " & EMAWindow & "-Day EMA" End With
谢谢。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多