SPL做量化---MTM(动量指数)
动量指数 (MTM),又称动态指数,是专门研究股价波动的中短期技术分析工具。在证券市场上有一种类似物理学中恒速原理的现象。如果股价的涨 (跌) 趋势持续,股价的涨 (跌) 速度将大致一致。动量指数 (MTM) 是从股票恒速原理出发,考察股票价格涨跌速度,通过股票价格涨跌速度的变化来分析股票价格走势的指数。
为了分析股价波动的速度,动量指数研究各种加速、减速、惯性以及股价从静态到动态或从动态到静态变化的现象。动量指数的理论基础是价格与供求关系。随着时间的推移,股价的涨幅必须逐渐降低,变化的速度和力度减缓,市场才能逆转。相反,下降也是事实。这样,通过计算股价波动的速度,动量指数可以得到股价进入强峰、转弱谷等不同的信号,成为投资者喜爱的市场衡量工具。
计算方法:
MTM:当日收盘价与 N1 日前的收盘价的差
MTMMA 线: 对 MTM 求 N2 日移动平均
例如计算浦发银行 2024 年的收盘价 MTM,N1、N2 分别取 12 和 6。
A | |
1 | 600000 |
2 | 2024-01-01 |
3 | 2024-12-31 |
4 | =call("adjustprice.splx", "", call("loadkday.splx", A1, A2,A3) ) |
5 | 12 |
6 | 6 |
7 | =A4.new(code,tdate, close-close[-A5]:MTM, avg(MTM[1-A6:0]):MAMTM) |
A1-A4 读取股票数据
A5-A6 输入 N1,N2
A7 计算 MTM,MAMTM
为了使用方便,可以用宏封装成通用函数供调用。
函数代码:
A | B | |
1 | func mtm(data,field,N) | =data.new(code,tdate,${field}-${field}[-N(1)]:MTM, avg(MTM[1-N(2):0]):MAMTM) |
此代码比较短,和前面章节的 MA 一样,可以用 func 的形式保存在 index.splx 中。
参数:
data | 序表,某支股票的日线数据 |
field | 字符串,字段名 |
N | Nx 日序列,如[12,6] |
返回数据集结构:
code | 股票代码 |
tdate | 日期 |
MTM | 动量指数 |
MAMTM | 动类指数 MA |
例如,调用脚本计算浦发银行 2024 年收盘价的 MTM,N1、N2 分别取 12 和 6。
A | B | |
… | … | |
6 | =call@f("index.splx") | 登记脚本中的函数 |
7 | … | 计算出源数据 |
8 | =mtm(A7,"close",[12,6]) | 调用函数 |
运行效果:
SPL 可以在这里下载:免费下载。使用免费的桌面版就可以了,直接安装即可使用。专业程序员也可以使用这里的开源版,但需要自行配置部署。
SPL 配有系统的教程,这里有面向新手的课程(含视频):SPL程序设计语言 · 乾学院VIP课程 ,乾学院 也有更多学习资料。