DPO 的一个实际示例是什么?
DPO 的定义
DPO 是 Detrended Price Oscillator(去趋势价格振荡器)的缩写。其核心思想是移除(或“去趋势”)价格中的部分长期走势,以便更专注于短期价格波动。
DPO 的一种常见定义方式如下:
- 计算价格在长度为 N 的窗口内的 移动平均线。
- 选择一个 偏移量 为 (N/2 + 1) 个周期。
- 绘制当前价格与向后偏移该数量的移动平均线之间的差值。
由于不同资料来源可能使用略有不同的偏移规则,因此一个“实际示例”应始终明确说明所使用的具体公式。
机制:实际计算的构建方式
假设价格是一个按整数索引的时间序列。我们采用以下稳定且明确的定义:
- 价格序列(收盘价): P[t]
- 窗口长度: N = 5(周期)
- 移动平均类型: 简单移动平均(SMA)
- 偏移量: s = floor(N/2) + 1 = floor(2.5) + 1 = 3
- t 时刻的 DPO: DPO[t] = P[t] − SMA[t − s]
- SMA[x]: 以时间 x 结束的 5 个收盘价的平均值:SMA[x] = (P[x] + P[x−1] + P[x−2] + P[x−3] + P[x−4]) / 5
此处的稳定机制是算术和索引规则。任何关于市场行为、数据来源或解释的内容均不包含在数学计算中。
实际数值示例(附明确假设)
假设以下 10 个连续的收盘价(非实时数据):
- P[1]=100, P[2]=102, P[3]=101, P[4]=103, P[5]=104,
- P[6]=105, P[7]=103, P[8]=102, P[9]=104, P[10]=106
使用上述机制(N=5, s=3)。
计算 DPO[8]
- 我们需要 SMA[8−3] = SMA[5]。
- 计算 SMA[5],使用 P[5] 到 P[1]:
- SMA[5] = (P[5]+P[4]+P[3]+P[2]+P[1]) / 5
- SMA[5] = (104 + 103 + 101 + 102 + 100) / 5
- SMA[5] = 510 / 5 = 102.0
- 现在计算 DPO[8]:
- DPO[8] = P[8] − SMA[5]
- DPO[8] = 102 − 102.0 = 0.0
计算 DPO[9] 以展示时间的影响
- 需要 SMA[9−3] = SMA[6]。
- SMA[6] 使用 P[6] 到 P[2]:
- SMA[6] = (105 + 104 + 103 + 101 + 102) / 5 = 515 / 5 = 103.0
- DPO[9] = P[9] − SMA[6] = 104 − 103.0 = +1.0
这些数字的含义(中性陈述): DPO[8]=0 表示在 t=8 时刻的当前价格在该定义下等于偏移后的移动平均线。DPO[9]=+1 表示在 t=9 时刻的当前价格比该偏移参考值高出 1 个单位。
局限性与风险(可能出现的问题)
- 索引与规则风险: 如果某个平台使用不同的偏移量、窗口定义或移动平均类型,你的 DPO 数值将不同。换句话说,若不完全匹配公式,数值结果不具备普适性。
- 数据与预处理风险: 缺失的K线、不同的交易时段定义、公司行为,或使用收盘价以外的其他价格,都可能改变 P[t],从而影响 DPO。
- 非平稳现实: 即使 DPO “看起来” 像是移动平均线的偏离,历史模式也不能保证未来行为。市场状态可能发生变化。
- 量纲与单位: DPO 的单位与价格相同(未自动标准化)。在相同公式下,高价品种的 DPO 绝对值可能高于低价品种。
如何验证以及下一步应问什么问题
要独立验证 DPO 的计算,请重新计算相同时间索引的步骤:
- 确认 N 和移动平均类型。
- 确认你的公式或平台所使用的偏移量 s。
- 重新计算偏移后的 SMA 并从当前价格中减去。
一个有用的后续研究问题是:你的图表来源所使用的 DPO 具体定义(偏移量和 SMA 规则)是否与你能在纸上复现的公式一致?