DMA(平均差分析指标)
DMA 指标是平均线差指标的简称,它是一种趋势分析指标,由两条曲线组成,其中波动较快的曲线是 DDD 线,波动较慢的是 AMA 线。通过对这两条移动平均线的差值情况来分析股价的趋势,比较两条线的差值可以判断出某只股票的买入和卖出量的大小,并且可以预测未来的趋势变化。DMA 指标是 MACD 指标的近亲,是 MACD 的净化简易版本。
计算方法:
DDD= 股价短期移动平均值 - 股价长期移动平均值
AMA=DDD 短期移动平均值
以浦发银行为例,计算其 2024 年的收盘价 DMA,移动平均周期分别取 10,50,10
代码示例:
A | |
1 | 600000 |
2 | 2024-01-01 |
3 | 2024-12-31 |
4 | =call("adjustprice.splx", "", call("loadkday.splx", A1, A2,A3) ) |
5 | =[10,50,10] |
6 | =A4.new(code,tdate,avg(close[1-A5(1):0])-avg(close[1-A5(2):0]):DDD,avg(DDD[1-A5(3):0]):AMA) |
A1-A4 读取股票数据
A5 设置移动平均周期
A6 带入公式计算 DDD 和 AMA
也可以封装成函数,使用起来更方便。
函数代码:
A | B | |
1 | func dma(data,field,N) | =data.new(tdate,avg(${field}[1-N(1):0])-avg(${field}[1-N(2):0]):DDD, avg(DDD[1-N(3):0]):AMA) |
此代码比较短,和前面章节的 MA 一样,可以用 func 的形式保存在 index.splx 中。
参数:
data | 序表,某支股票的日线数据 |
field | 字符串,字段名如 "close" |
N | 序列,移动平均周期如 [10,50,10] |
返回数据集结构:
code | 股票代码 |
tdate | 日期 |
DDD | 快线 |
AMA | 慢线 |
例如,调用脚本计算浦发银行 2024 年收盘价的 5 日 SMA
A | B | |
… | … | |
6 | =call@f("index.splx") | 登记脚本中的函数 |
7 | … | 计算出源数据 |
8 | =dma(A7,"close",[10,50,10]) | 调用函数计算 dma |
运行效果: