MI(动量指标)
动力指数表示的是股票价格的涨跌速度,如果股票价格能始终不渝地上升则动力指数继续向上发展,就说明股票几个上升的速度在加快。反之,如果股票价格始终在下降, 则动力指数始终保持在 0 线的下方。如果动力指数继续向下发展,就说明股票价格下降的速度在加快。
由动力指数的构造特点所决定,它们总能超前于股价的变动而变动,当一个即定的趋势尚在持续时,它已经变得平缓了。而当现行趋势有所缓和时,它已经开始下降了。若趋势了结开始盘整行情时,它便开始在 0 线附近徘徊了。
计算方法:
1. A= 收盘价 -N 日前的收盘价
2. MI=A 的 N 日指数移动平均,权重系数为 1
以代码 600000 的股票数据为例,计算其 2024 年的动量指标,N 取 12。
代码示例:
A |
|
1 |
600000 |
2 |
2024-01-01 |
3 |
2024-12-31 |
4 |
=call("adjustprice.splx", "", call("loadkday.splx", A1, A2,A3) ) |
5 |
12 |
6 |
=A4.new(code,tdate, close- close[-A5]:A, (A+(A5-1)*MI[-1])/A5:MI) |
A1-A4 读取股票数据
A5 输入时间周期
A6 计算 A 和 A 的指数移动平均 MI
为了使用方便,可以封装成通用函数供调用。
函数代码:
A |
B |
|
1 |
func mi(data,n) |
=data.new(code,tdate, close- close[-n]:A, (A+(n-1)*MI[-1])/n:MI) |
此代码比较短,和前面章节的 MA 一样,可以用 func 的形式保存在 index.splx 中。
参数:
data |
序表,某支股票的日线数据 |
n |
数字,时间周期 |
返回数据集结构:
code |
股票代码 |
tdate |
日期 |
A |
收盘价和 N 日前的收盘价之差 |
MI |
A 的 n 日指数移动平均 |
例如,调用脚本计算浦发银行 2024 年的动量指标,n 取 11。
A |
B |
|
… |
… |
|
6 |
=call@f("index.splx") |
登记脚本中的函数 |
7 |
… |
计算出源数据 |
8 |
=mi(A4,12) |
调用函数 |
运行效果: