在股票技术分析的浩瀚工具箱中,各种指标层出不穷,旨在帮助投资者更好地理解市场趋势、把握买卖时机,DPO(Detrended Price Oscillator),即“去趋势价格振荡器”,是一个相对独特但颇具价值的指标,它不同于许多趋势跟踪指标,DPO的核心在于剔除价格的趋势性成分,从而更清晰地识别价格的中期周期性波动和超买超卖状态,本文将重点介绍股票DPO指标的计算方法,并探讨其实战意义。
什么是DPO指标?
DPO,中文译为“去趋势价格振荡器”,是由彼得·海德曼(Peter Hadid)在20世纪80年代提出的一种摆动类指标,其主要目的是通过从价格中剔除“移动平均”这一趋势性因素,让投资者能够专注于价格的周期性运动,避免在趋势市场中被误导。
DPO试图显示价格相对于其“近期平均水平”的偏离程度,这种偏离往往预示着价格可能面临回调或反弹的机会。
DPO指标的计算方法
DPO的计算并非直接比较价格与简单移动平均线,而是通过一个巧妙的“移位”操作来实现,以下是计算DPO的具体步骤:
核心公式:
DPO = Close - SMA(N / 2 + 1)
详细步骤:
-
确定计算周期(N): 你需要确定一个计算周期N,这个N通常用于计算移动平均线,常见的周期包括20日、30日、40日等,投资者可以根据自身的交易风格和观察的时间跨度进行调整,我们选择一个常用的20日作为计算周期N。
-
计算N日简单移动平均线(SMA(N)): 计算过去N个交易日的收盘价的算术平均值,20日SMA就是过去20个交易日收盘价的总和除以20。
-
确定移位周期(Offset): 这是DPO计算的关键一步,移位周期 = N / 2 + 1,对于N=20的情况,移位周期 = 20 / 2 + 1 = 11,这意味着,我们计算DPO时,使用的SMA(N)不是当日的,而是向前移动了11个交易日的。
-
计算DPO值: 用当日的收盘价减去(N/2 + 1)个交易日之前的N日简单移动平均线。 公式展开:
DPO(当日) = 当日收盘价 - SMA(N) [N/2 + 1个交易日之前]
举例说明(以N=20为例):
假设今天是第21个交易日,我们要计算第21个交易日的DPO值:
-
计算第21个交易日收盘价。
-
找到从第(21 - 11) = 第10个交易日开始的往前推20个交易日的收盘价(即第10天到第1天的收盘价,注意这里日期是倒序的,实际计算是取第1天到第20天的收盘价计算SMA,但这个SMA值对应的是第10天的位置,因为20/2+1=11,21-11=10)。
-
更正说明:SMA(N)的计算是基于过去N个交易日,而DPO中使用的SMA(N)是“N/2 + 1”个交易日之前的那个SMA(N)值。
-
要计算第21天的20日DPO:
- 第21天的收盘价 = Close(21)
- 计算20日SMA:需要第1天到第20天的收盘价,得到SMA(20) [这个SMA(20)对应的是第20天的结束值]。
- 但根据DPO公式,我们需要的是“20/2 + 1” = 11个交易日之前的SMA(20),也就是说,我们需要的是第(20 - 11 + 1) = 第10天的SMA(20)?这里容易混淆,更准确的表述是:
- DPO(第t日) = Close(第t日) - SMA(N) [第(t - (N/2 + 1) + 1)日 到 第(t - (N/2 + 1) + N)日 的收盘价计算的平均值]
- 简化:SMA(N)在DPO中使用的位置是“t - (N/2 + 1)”日结束的那个SMA(N)。
- 第21天的20日DPO = Close(21) - SMA(20) [从第(21 - 11 - 1 + 1)=第10天到第(21 - 11)=第10天+19天=第29天?不对,显然这里日期计算有误,]
- 重新梳理DPO计算逻辑(更易懂版):
- 为了计算第t日的DPO(N):
- 计算第t日收盘价:Close(t)
- 计算一个“滞后”的N日SMA:这个SMA是基于从第[t - (N/2 + 1) + 1]日到第[t - (N/2 + 1) + N]日的收盘价,也就是说,这个SMA的结束点是第[t - (N/2 + 1)]日。
- DPO(t) = Close(t) - 这个“滞后”的N日SMA。
- 为了计算第t日的DPO(N):
-
更简单的理解(避免日期纠缠): DPO的核心是“用今天的价,减去N天前那个位置的N日均价”,这个“N天前”的位置是“N/2 + 1”天前。 例如N=20,那么就是用今天的收盘价,减去“11天前”的那个20日均价(那个20日均价是基于11天前的往前推20天的数据算出来的)。
-
举例(N=20,计算第21天DPO):
- 第21天收盘价:假设为10.50元。
- “11天前”指的是第(21 - 11) = 第10天。
- 计算“第10天”的20日SMA:需要第(10 - 20 + 1)=第-9天?这显然不合理,看来直接用日期减法容易出错。
-
正确的DPO计算步骤(以第t日,周期N):
- 计算第t日的收盘价:Close(t)。
- 计算一个“中心化”的移动平均:这个移动平均是基于从第[t - N/2]日到第[t + N/2]日的收盘价(当N为偶数时,可能需要调整,通常取整数部分),但DPO的原始方法是移位。
- 原始公式DPO = Close - SMA(N/2 + 1):这里的SMA(N/2 + 1)指的是,在计算SMA(N)时,其结束点不是t日,而是[t - (N/2 + 1) + 1]日?不,更准确的是,SMA(N)的值对应的是N个交易日的平均值,而我们在DPO中使用的这个SMA(N)值,是“滞后”了(N/2 + 1)个交易日的。
-
为了避免混淆,我们用一个具体的数字序列来计算(N=10): 交易日:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 收盘价:100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114
计算第11天的10日DPO:
- N=10, N/2 + 1 = 6
- 第11天收盘价 = 110
- 需要计算“6天前”的10日SMA。“6天前”指的是第(11 - 6) = 第5天。
- 计算“第5天”的10日SMA:需要从第(5 - 10 + 1)=第-4天到第5天?这显然不对,因为第5天没有足够的前10天数据。
-
看来“N/2 + 1”个交易日之前的SMA(N)”的理解有误,查阅权威资料: DPO的计算公式为:DPO = Close - (SMA(N) shifted back by N/2 + 1 days) 意思是,先计算N日SMA,然后将这个SMA曲线向右(过去方向)移动(N/2 + 1)个交易日,然后用当天的收盘价减去这个移动后的SMA值。
-
重新举例(N=10,计算第11天DPO):
-
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权,未经许可,不得转载。
