MA 多头排列指标
MA 多头排列是指短期均线在长期均线的上方的一种走势形态,股价呈上升趋势,是一种看涨信号。
如下图,圆圈中 N1 日均线、N2 日均线、N3 日均线、N4 日均线依次排列(N1<N2<N3<N4),短线在长线的上方,股票走势呈多头排列。
例如计算浦发银行 2024 年的收盘价的 MA 多头排列情况,N1、N2、N3、N4 分别取 5、20、60、120 。
代码示例:
A | |
1 | 600000 |
2 | 2024-01-01 |
3 | 2024-12-31 |
4 | =call("adjustprice.splx", "", call("loadkday.splx", A1, A2,A3) ) |
5 | [5,20,60,120] |
6 | =A4.new(code,tdate,close,avg(close[-4:0]):ma_5,avg(close[-19:0]):ma_20,avg(close[-59:0]):ma_60,avg(close[-119:0]):ma_120) |
7 | =A6.derive(if(ma_5>ma_20 && ma_20>ma_60 && ma_60>ma_120,1,0):ma_bull_arrangement_flag) |
A1-A4 读取股票数据
A5 输入 N1,N2,N3,N4
A6 计算 N 日 ma
A7 生成多头排列标志,值为 1 时呈多头走势。
为了使用方便,可以用宏封装成通用函数供调用。
函数代码:
A | B | |
1 | func ma_arrangement(data,field,N) | =data.new(code,tdate, close,${N.("avg("/field/"["/-(~-1)/":0]):ma_"/~/"").concat@c()}).derive(if(${(N.len()-1).("#"/(#+2)/">#"/(#+3)).concat(" && ")},1,0):ma_bull_arrangement_flag) |
此代码比较短,和前面章节的 MA 一样,可以用 func 的形式保存在 index.splx 中。
参数:
data | 某支股票的日线数据 |
field | 字段名 |
N | Nx 日序列,如[5,20,60,120] |
返回数据集结构:
code | 股票代码 |
tdate | 日期 |
ma_N | N 日 MA,N 值有多个 |
ma_bull_arrangement_flag | MA 多头排列标志,标志为 1 表示呈现多头走势。 |
例如,调用脚本计算浦发银行 2024 年收盘价的 MA 多头排列情况,N1、N2、N3、N4 分别取 5、20、60、120 。
A | B | |
… | … | |
6 | =call@f("index.splx") | 登记脚本中的函数 |
7 | … | 计算出源数据 |
8 | =ma_arrangement(A7,"close",[5,20,60,120]) | 调用函数 |
运行效果: