KAMA 的一个实际示例是什么?
直接回答
“KAMA 的实际示例”意味着你使用 KAMA 的公式,选择特定的输入数值(价格序列、平滑参数和初始值),然后至少对一个新数据点逐步计算 KAMA。关键在于必须明确列出计算中使用的所有假设,以便他人能用相同的输入复现相同的结果。
机制或定义
考夫曼自适应移动平均线(Kaufman’s Adaptive Moving Average, KAMA)是一种旨在调整其平滑强度的移动平均线。简单来说,当价格走势更“高效”(即趋势性较强)时,它会加快反应速度;而在价格走势效率较低(即噪音较多)时,它会减缓反应速度。
描述 KAMA 的一种标准方式包括:
- 一个价格序列(例如,每个时间点的收盘价)。
- 一个回看周期长度 n(用于衡量效率的时间范围)。
- 两个端点平滑常数(通常记为 SCmax 和 SCmin),代表快速与慢速适应。
- 效率比率 ER,用于比较在回看周期内的净变动与总变动。
- 一个由 ER 推导出的平滑常数 SC,用于更新 KAMA。
一种常见的公式集如下:
- n 期的效率比率:
- 设 change = |Price[t] − Price[t−n]|
- 设 volatility = Σ_{i=0 to n−1} |Price[t−i] − Price[t−i−1]|
- ER = change / volatility(若 volatility = 0,则定义 ER = 0)
- 平滑常数:
- SC = (ER × (SCmax − SCmin) + SCmin)²
- KAMA 更新:
- KAMA[t] = KAMA[t−1] + SC × (Price[t] − KAMA[t−1])
证据或示例(带假设的实际数值计算)
实际示例目标:从一个简短的假设序列中计算 KAMA[t]。
假设条件(全部明确列出):
- 使用回看周期长度 n = 3。
- 在时间 t = 3 计算一次 KAMA 更新(即已知 Price[0] … Price[3])。
- 价格为简单示例值(非实时数据):
- Price[0] = 100
- Price[1] = 102
- Price[2] = 101
- Price[3] = 105
- 上一期 KAMA 值为:
- KAMA[2] = 101.5
- 选择适应端点(此为建模假设;不同实现可能采用不同惯例):
- SCmax = 0.4444
- SCmin = 0.0640
步骤 A:在 t = 3 时使用 n = 3 计算 ER
- change = |Price[3] − Price[0]| = |105 − 100| = 5
- volatility = |Price[1] − Price[0]| + |Price[2] − Price[1]| + |Price[3] − Price[2]| = |102 − 100| + |101 − 102| + |105 − 101| = 2 + 1 + 4 = 7
- ER = 5 / 7 ≈ 0.7142857
步骤 B:由 ER 计算 SC
- SC = (ER × (SCmax − SCmin) + SCmin)²
- SCmax − SCmin = 0.4444 − 0.0640 = 0.3804
- ER × (SCmax − SCmin) = 0.7142857 × 0.3804 ≈ 0.271714
- 括号内值 = 0.271714 + 0.0640 = 0.335714
- SC ≈ (0.335714)² ≈ 0.112712
步骤 C:更新 KAMA
- Price[3] − KAMA[2] = 105 − 101.5 = 3.5
- KAMA[3] = 101.5 + SC × 3.5
- KAMA[3] ≈ 101.5 + 0.112712 × 3.5
- KAMA[3] ≈ 101.5 + 0.394492
- KAMA[3] ≈ 101.8945
此示例中需注意:
- ER 较高,因为净变化(5)相对于总绝对变动(7)较大。
- 这使得 SC 高于 SCmin,因此 KAMA 向 Price[3] 的移动幅度大于在嘈杂/震荡行情中的移动。
局限性和风险(重大失效模式)
- 参数依赖性:数值结果取决于 n、SCmax、SCmin 和初始 KAMA 值。不同软件可能使用不同的参数约定,因此“相同设置”必须确认才能复现结果。
- 噪音和市场状态转换:当价格变得震荡时,ER 可能急剧下降,导致 KAMA 更加平滑。在高度嘈杂的序列中,自适应行为可能降低响应速度,而这可能与预期相反。
- 滞后仍然存在:即使具备自适应性,KAMA 仍基于前值更新,对新数据的反应是渐进的。在快速反转或价格跳空时,KAMA 可能落后于价格。
- 除零处理:如果总绝对变动(volatility)为零,ER 必须由具体实现定义(通常设为 0)。不同的边界情况处理方式会导致结果不同。
- 非独立预测工具:即使正确计算出的 KAMA 值,也不能保证任何特定的未来走势;历史模式不能确立未来结果。
验证或后续问题
要独立验证 KAMA 的计算,请重复使用相同的输入和步骤:
- 确认具体实现所使用的 ER、SC 和 KAMA 公式。