MACD_Ex
简述
平滑移动平均_扩展,利用自有数据arrData,计算MACD值。其中,数据arrData第一列为日期date,第二列为收盘close数据。
MACD_Ex(ShortN:Integer;LongN:Integer;M:Integer;arrData:Array):Table
名称 | 类型 | 说明 |
---|
ShortN | Integer | 整数,短期平滑移动平均线 LongN:整数,长期平滑移动平均线 M:整数,计算DEA的平滑移动平均的样本长度 |
arrData | Array | 数据表类型 |
返回 | Table | 数组,包括数据date、close、DIF、DEA、MACD |
(1)根据每个close数据,计算每个时间点的短期移动平均数据和长期移动平均数据;
其中,短期移动平均数据放在字段['short']中,['short']=前一时间点的['short']*(shortN-1)/(shortN+1)+当前时间点的收盘close * 2 / (shortN+1)
长期移动平均数据放在字段['long']中,['long']= 前一时间点的['long']*(longN-1)/(longN+1)+当前时间点的收盘close * 2 / (longN+1)
(2)DIF =['short'] - ['long'];
(3)DEA =前一时间点的DEA*(M-1)/(M+1)+当前时间点的DIF*2/(m+1);
(4)MACD =2*(DIF-DEA)。
//利用数据表arrData中的数据计算MACD值。
Short:=12;
Long:=26;
M:=9;
arrData:=array(("date":inttodate(20180904),"close":12.10),
("date":inttodate(20180903),"close":12.31),
("date":inttodate(20180831),"close":12.21));
Return MACD_Ex(Short,Long,M,arrData);
//结果:
