DPO(区间震荡线)
DPO 即区间震荡线。移动平均线的形状,很像一条波浪状扭曲的绳子,股价在这条绳子的周围,上下来回穿梭。DOP>0 ,表示目前处于多头市场;DOP<0 ,表示目前处于空头市场。
计算方法:
1、MA=N1 日收盘价的移动平均值;
2、DPO= 收盘价 -MA(N2+1) 日的移动平均值;
3、MADPO=DPO 的 N3 日移动平均值。
其中 N 的取值通常为 N1=20 ,N2=10, N3=6。
指标参数:
y1 |
DPO输出列 |
y2 |
MADPO输出列 |
x |
数据列,如收盘 |
n1 |
周期 1,如 20 |
n2 |
周期 2,如 10 |
n3 |
周期 3,如 6 |
函数代码:
A |
B |
|
1 |
func DPO(A,$y1,$y2,$x,n1,n2,n3) |
=A.derive@o(:dpo_ma) |
2 |
=A.run(avg(${x} [1-n1:0]):dpo_ma) |
|
3 |
=A.run(${x} -dpo_ma[-n2]:${y1}, avg(${y1}[1-n3:0]):${y2}) |
|
4 |
=A.alter(;dpo_ma) |
将函数保存在 indicator.splx 中。
举例:调用脚本计算浦发银行 2024 年的 DPO 指标,n1、n2、n3 分别取 20,10,6。
A |
B |
|
… |
… |
|
5 |
=call@f("indicator.splx") |
登记脚本中的函数 |
6 |
… |
计算出源数据 |
7 |
=A6.derive(:DPO,:MADPO) |
增加要返回的指标字段 |
8 |
=DPO(A7,DPO,MADPO, 收盘,20,10,6) |
调用函数计算指标 |
运行效果: