¿Cómo se usa el indicador DPO?
En primer lugar, hay que conocer la fórmula para calcular el índice DPO:
1 , MA = promedio móvil simple de N días;
2 DPO = el promedio móvil simple de la fecha de cierre-MA (N/2+1);
- MADPO = promedio móvil simple de M días de DPO;
De ellos, N=21, M=6 ◦
El uso del índice DPO:
-
Sobre el eje 0, se establece una línea de sobreventa, lo que significa que el precio de la acción está en el punto más alto a corto plazo una vez que el DPO se mueve hacia la línea de sobreventa.
-
En el eje 0 debajo, se establece una línea de venta por encima de la línea de venta por encima de la línea de venta por encima de la línea de venta por encima de la línea de venta por encima de la línea de venta por encima de la línea.
-
Si el indicador de DPO está por encima del eje 0, el indicador está en el mercado de divisas. Si el indicador de DPO cruza el eje 0 desde un valor negativo hacia arriba, es una señal de compra.
-
Si el indicador DPO se encuentra debajo del eje 0, el representante está en el mercado de la cabeza vacía. Si el indicador DPO cruza el eje 0 desde el valor positivo hacia abajo, esta es una señal de venta.
/*
计算方法:
1、MA的N日收盘价加总/N
2、DPO = 收盘价 - ((n / 2) + 1)日的MA
3、MADPO = DPO M日的移动平均
N = 21, M = 6
*/
// 指标算法
function DPO(r, n) {
var arrDpo = []
for (var i = 0 ; i < r.length ; i++) {
var currRecords = []
for (var j = 0 ; j < i ; j++) {
currRecords.push(r[j])
}
var ma = TA.MA(currRecords, (_N(n / 2, 0) + 1))
var dpo = NaN
if (currRecords.length == 0 || !ma || ma.length == 0 || !ma[ma.length - 1]) {
dpo = NaN
} else {
var close = r[i].Close
dpo = close - ma[ma.length - 1]
}
arrDpo.push(dpo)
}
return arrDpo
}
function MADPO(dpo, m) {
return TA.MA(dpo, m)
}
// 使用指标例子
function main() {
var r = exchange.GetRecords()
var dpo = DPO(r, 21)
Log(_D(r[r.length - 1].Time), "dpo on last bar:", dpo[dpo.length - 1])
Log(_D(r[r.length - 2].Time), "dpo on pre bar:", dpo[dpo.length - 2])
var madpo = MADPO(dpo, 6)
Log(_D(r[r.length - 1].Time), "madpo on last bar:", madpo[madpo.length - 1])
Log(_D(r[r.length - 2].Time), "madpo on pre bar:", madpo[madpo.length - 2])
}
给你个思路,不保证对,没验证过。
- 1
