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)

调用函数计算指标

运行效果:

..