Một, cách sử dụng chỉ số DPO.
Trước tiên, bạn cần biết công thức tính toán của chỉ số DPO:
1 , MA = trung bình di chuyển đơn giản trong N ngày;
2, DPO = giá đóng cửa - MA ((N/2+1) ngày trung bình di chuyển đơn giản;
3, MADPO = trung bình di chuyển đơn giản của DPO trong M ngày;
Trong đó, N = 21, M = 6 ◦
Cách sử dụng chỉ số DPO
1, trên trục 0, thiết lập một đường mua quá mức, khi DPO dao động đến đường mua quá mức, có nghĩa là giá cổ phiếu ở mức cao trong ngắn hạn.
2, đặt một đường oversold bên dưới trục 0, nghĩa là giá cổ phiếu đang ở mức thấp ngắn hạn khi DPO dao động đến đường oversold.
3, Nếu chỉ số DPO nằm trên trục 0, đại diện cho thị trường đa đầu. Nếu chỉ số DPO đi từ giá trị âm lên trên trục 0, đây là tín hiệu mua.
4, nếu chỉ số DPO nằm dưới 0 đường, đại diện cho thị trường đầu không. Nếu chỉ số DPO đi từ giá trị chính xuống đường 0 đường, đây là tín hiệu bán.
/*
计算方法:
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
