麦吉尼动态指标的计算方法
直接答案:麦吉尼动态的更新规则
麦吉尼动态(McGinley Dynamic)通过在每个新的时间步长中,使用前一个麦吉尼值和当前价格来更新移动平均值进行计算。在其常见形式中,更新公式可表示为:
McGinley(i) = McGinley(i−1) + (P(i) − McGinley(i−1)) / [N · (P(i)/McGinley(i−1))^4]
其中:
- i 是当前时间索引(例如,下一个K线/柱)。
- P(i) 是时间 i 的选定输入价格(通常为收盘价,但也可以是其他一致的价格字段)。
- McGinley(i−1) 是先前计算出的麦吉尼动态值。
- N(常称为“周期”或“长度”)控制响应速度。
- ( )^4 表示四次方。
此定义是一种机制(确定性数学更新),而非对交易结果的保证。
机制或定义:公式的作用
标准移动平均(如简单移动平均)以固定平滑因子进行更新。而麦吉尼动态则使用一种根据价格与前一个平均值距离而自适应调整的平滑步长。
在上述更新规则中:
- 项 (P(i) − McGinley(i−1)) 表示当前价格与前一个麦吉尼值之间的距离。
- 分母 N · (P(i)/McGinley(i−1))^4 对该距离调整进行缩放。
因此,当 P(i) 相对于 McGinley(i−1) 较近时,比率 P(i)/McGinley(i−1) 接近1,自适应效应较小。当 P(i) 更远时,比率偏离1,四次方会放大该效应。这使得更新行为类似于一种平均值,其“速度”会根据当前价格相对于当前平均值的偏离程度而变化。
您必须选择的参数和输入
要自行计算,您需要定义以下四项:
- 时间序列和时间步长:您是在1分钟K线、1小时K线、日K线等上计算?序列必须一致。
- 输入价格序列 P(i):选择一个价格字段(例如,收盘价对收盘价)。您的选择必须在所有 i 上保持一致。
- N(长度/周期):选择一个数值。不同的 N 值会改变响应速度。
- 初始值 McGinley(0):公式使用前一个麦吉尼值,因此您需要一个起点。许多实现将第一个麦吉尼值设为第一个可用价格或初始移动平均估计值;您必须复制您试图模仿的方法。
证据或示例:带明确假设的逐步计算
由于麦吉尼动态在给定输入下是确定性的,您可以通过手动进行一次或多次更新来验证您的理解。
假设以下条件(这些仅为演示用例,非市场声明):
- 您在离散时间序列 i = 1, 2, 3, … 上计算。
- 您使用 P(i) 作为选定价格(例如,“收盘价”),每步以相同单位测量。
- 选择 N = 10。
- 设置初始值 McGinley(0) = P(0)。
现在计算下一步 i = 1:
- 读取 P(1)。
- 从起始规则获取 McGinley(0)。
- 计算比率 R = P(1) / McGinley(0)。
- 计算分母 D = N · R^4。
- 计算更新:
- McGinley(1) = McGinley(0) + (P(1) − McGinley(0)) / D。
对 i = 2 使用新计算出的 McGinley(1) 重复上述步骤。
对独立验证重要的注意事项
- 单位必须一致:由于您将 P(i) 除以 McGinley(i−1),两者必须代表相同类型的价格测量。
- 避免零值:如果 McGinley(i−1) 为零,则比率和四次方将无定义。实际实现依赖于通常保持非零的价格数据,但您仍应注意此数学失效模式。
- 实现差异存在:两个平台可能都显示“McGinley Dynamic”,但使用不同约定(例如,如何初始化第一个值,或是否完全按上述公式应用)。您的独立检查应确认初始化和 N 的处理方式。
局限性和风险:计算可能误导或表现异常的情况
麦吉尼动态的计算并非质量保证。尽管更新规则是精确的,但其使用可能受建模假设的限制。
1) 对选择(输入和初始化)的敏感性
由于公式同时使用 P(i) 和 McGinley(i−1),如果以下情况,指标路径可能改变:
- 选择不同的输入价格(收盘价 vs. 典型价格),
- 选择不同的 N,或
- 从不同的 McGinley(0) 开始。
这并非错误,而是自适应公式的后果。
2) 在突变中的行为
自适应因子取决于 (P(i)/McGinley(i−1))^4。在 P(i) 相对于 McGinley(i−1) 急剧变动的突然状态变化中,四次方可能导致分母快速变化,产生以下更新:
- 滞后于新水平(仍在“追赶”),或
- 与固定平滑平均相比,反应方式感觉非线性。
为验证,您可通过在大幅跳空附近重新计算序列并观察分母变化程度来测试。
3) 数学边界情况
潜在失效模式包括:
- 如果 McGinley(i−1) 为零,则比率无定义。
- 如果实现使用低精度或值变得极大/极小,则可能出现数值不稳定。
即使您在典型数据中从未遇到这些情况,理解它们有助于您忠实地评估实现。
4) 解读风险
一个指标值(或其斜率)并非市场行为的完整解释。麦吉尼动态是将您选择的价格序列转换为平滑自适应线的变换;它本身并不识别因果关系、未来价格方向或最佳操作。
验证和下一个问题:如何检查您是否正确计算
要验证您自己的计算,请使用简单的可重现工作流程:
- 写下您的确切公式,并确认其与您使用的定义一致(特别是分母和指数)。
- 记录您选择的 N、选定的 P(i) 以及 McGinley(0) 的初始化规则。
- 手动(或在电子表格中)计算前几步 i = 1, 2, 3,并检查是否与您要复制的实现一致。
- 如果结果不同,首先比较实现细节:初始化、索引,以及公式是否使用相同价格字段应用。