VMA(变异平均线)
变异平均线(VMA)与移动平均线的计算方法是一样的,区别在于移动平均线是以每日收盘价计算的,而变异平均线则是用每日的开盘价、收盘价、最高价和最低价相加后除以 4 得出的数据计算平均线。
计算方法:
VV=(开盘价 + 收盘价 + 最高价 + 最低价)/4
VMA=VV 的移动平均
VMA 通常有 4 条线,分别取 VV 的 Nx 日移动平均
指标参数:
y1 |
VMA1输出列。 |
y2 |
VMA2输出列 |
y3 |
VMA3输出列 |
y4 |
VMA4输出列 |
n1 |
周期 1,如 6 |
n2 |
周期 2,如 12 |
n3 |
周期 3,如 30 |
n4 |
周期 4,如 72 |
函数代码:
A |
B |
|
1 |
func VMA(A,$y1,$y2,$y3,$y4,n1,n2,n3,n4) |
=A.derive@o(:vma_vv) |
2 |
=A.run((开盘 + 收盘 + 最高 + 最低)/4:vma_vv) |
|
3 |
=A.run(avg(vma_vv[1-n1:0]):${y1},avg(vma_vv[1-n2:0]):${y2},avg(vma_vv[1-n3:0]):${y3},avg(vma_vv[1-n4:0]):${y4}) |
|
4 |
=A.alter(;vma_vv) |
将函数保存在 indicator.splx 中。
举例:例如,调用脚本计算浦发银行 2024 年的 VMA 指标,n 取6,12,30,72。
A |
B |
|
… |
… |
|
5 |
=call@f("indicator.splx") |
登记脚本中的函数 |
6 |
… |
计算出源数据 |
7 |
=A6.derive(:VMA1,:VMA2,:VMA3,:VMA4) |
增加要返回的指标字段 |
8 |
=VMA(A7,VMA1,VMA2,VMA3,VMA4,6,12,30,72) |
调用函数计算指标 |
运行效果: