MICD(异同离差动力指数)
MICD 异同离差动力指数
如果股票价格能始终向上攀升则该指数就能不断向上发展;反之如果股票价格始终在向下,则该指数始终保持在 0 线的下方。
计算方法:
MI: 今收 - 昨收;
AMI:MI 的 N1 日指数移动平均;
DIF: 昨日 AMI 的 N2 日移动平均 - 昨日 AMI 的 N3 日移动平均;
MICD:DIF 的 10 日指数移动平均
指标参数:
y1 |
MI1输出列,$ 表示把字段名转化成字符串 |
y2 |
AMI输出列 |
y3 |
DIF输出列 |
y4 |
MICD1输出列 |
x |
数据列,如收盘 |
n1 |
周期 1,如 3 |
n2 |
周期 2,如 10 |
n3 |
周期 3,如 20 |
函数代码:
A |
B |
|
1 |
func MICD(A,$y1,$y2,$y3,$y4,$x,n1,n2,n3) |
=A.run(${x} - ${x} [-1]:${y1},(${y1}+(n1-1)*${y2}[-1])/n1:${y2},avg(${y2}[-n2:-1])-avg(${y2}[-n3:-1]):${y3},(${y3}+9*${y4}[-1])/10:${y4}) |
将函数保存在 indicator.splx 中。
举例:调用脚本计算浦发银行 2024 年的 MICD 指标,n1、n2、n3 分别取 3、10、20。
A |
B |
|
… |
… |
|
5 |
=call@f("indicator.splx") |
登记脚本中的函数 |
6 |
… |
计算出源数据 |
7 |
=A6.derive(:MI1,:AMI,:DIF,:MICD1) |
增加要返回的指标字段 |
8 |
=MICD(A7,MI1,AMI,DIF,MICD1, 收盘,3,10,20) |
调用函数计算指标 |
运行效果: