0
Follow
5
Followers
一、怎么使用DPO指标?
首先需要知道DPO指标的计算公式:
1、MA=N日的简单移动平均值;
2、DPO=收盘价-MA(N/2+1)日的简单移动平均值;
3、MADPO=DPO的M日的简单移动平均值;
其中,N=21,M=6。
二、DPO指标的使用方法:
1、在0轴上方,设置一条超买线,一旦DPO波动至超买线时,意味着股价处于短期高点。
2、在0轴下方,设置一条超卖线,一旦DPO波动至超卖线时,意味着股价处于短期低点。
3、如果DPO指标位于0轴上方,代表处于多头市场。如果DPO指标由负值向上穿越0轴时,这是买进讯号。
4、如果DPO指标位于0轴下方,代表处于空头市场。如果DPO指标由正值向下穿越0轴时,这是卖出讯号。
Related Recommendations
How to Specify Different Versions of Data for the Rented Strategy by Its Rental Code MetadataAdvanced Tutorial for FMZ Quant platform Strategy WritingElementary Tutorial for FMZ Quant platform Strategy WritingGet Started with FMZ Quant PlatformSECURITY BUGI keep getting error: Exchange_GetAccount: Invalid ContractTypeWe have an incredibly profitable market making algorithm for sideways markets on Bitmex - but need expert to help eliminate wait times during downward volatility in the marketError with deribitLimitations of the backtesting engineHow to install ta-lib on linux docker?
Comment
All comments (1)
/*
计算方法:
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])
}
给你个思路,不保证对,没验证过。
5 years ago
- 1
