随机策略的计算方法

逐步了解随机振荡器风格的数值是如何计算和验证的。

随机策略的计算方法

直接答案

随机策略(通常被称为“随机振荡器”方法)通过将最新价格定位在近期价格的滚动范围内来计算。常见的输出是一个通常以百分比表示的数值:%K 衡量当前价格在回溯周期内最低低点与最高高点之间的相对位置,而 %D 通常是通过对 %K 应用移动平均进行平滑处理后得到的值。

由于不同平台在平滑处理和价格选择上采用不同的具体约定,因此最可靠的验证方法是将公式与指标设置进行比对:包括回溯周期长度以及 %K 和 %D 的平滑方式。

机制与定义

1) 选择输入价格

大多数随机风格的公式需要选择一个用于“置于区间内”的价格。常见选择包括:

  • 收盘价(最常见)
  • 高/低组合(在简化描述中较少见)

为了使你的计算可复现,必须明确说明所使用的具体输入(例如:“我在分子中使用收盘价”)。

2) 定义滚动范围(回溯窗口)

选择一个回溯周期长度,通常称为 %K 长度或周期。在每个时间步(K线)上计算:

  • 最低低点(LowestLow)= 最近 N 根K线中的最低低点
  • 最高高点(HighestHigh)= 最近 N 根K线中的最高高点

如果 HighestHigh 等于 LowestLow,则该范围宽度为零。在这种情况下,纯公式无法定义振荡器值。实际实现通常会通过输出默认值(例如 0 或“不可用”)或跳过直到范围非零来处理此情况。

3) 计算 %K(区间内的位置)

标准随机风格的 %K 公式为:

%K = 100 × (Price − LowestLow) / (HighestHigh − LowestLow)

其中:

  • Price 是当前K线的选定输入价格
  • LowestLow 和 HighestHigh 来自滚动的 N 根K线窗口

当价格保持在滚动极值之间时,该公式通常产生一个介于 0 到 100 之间的数值。

4) 计算 %D(平滑后的 %K)

许多“随机策略”描述中包含第二条线 %D,它是通过对 %K 进行平滑处理得到的。典型形式为:

%D = %K 在 M 个周期上的移动平均

移动平均可以是简单移动平均(SMA)或其他平滑方法,具体取决于平台。为了复现相同的 %D,必须匹配平滑类型和平滑周期 M。

5) 可选的“减速”参数(实现细节)

某些版本在计算 %D 之前会对 %K 进行额外的平滑处理,通常称为“减速”或对原始 %K 的额外平均。这会改变响应速度,因此即使回溯周期 N 保持不变,曲线也会发生变化。

可复现的示例或证据

以下是一个使用标准结构的数值示例。假设你拥有每日 OHLC 数据,并定义:

  • 回溯周期 N = 5 根K线
  • 价格 = 收盘价
  • 为简化起见,仅计算 %K(暂不考虑 %D)

在当前日,假设最近 5 天的数据为:

  • 最低低点(LowestLow)= 1.1000
  • 最高高点(HighestHigh)= 1.1200
  • 当前收盘价(Price)= 1.1100

则:

  • HighestHigh − LowestLow = 1.1200 − 1.1000 = 0.0200
  • Price − LowestLow = 1.1100 − 1.1000 = 0.0100

%K = 100 × (0.0100 / 0.0200) = 50

在实践中验证:

  1. 使用你平台的确切 N 设置。
  2. 对同一时间K线,使用其对“高”和“低”的定义,从相同的 N 根K线窗口中计算 HighestHigh 和 LowestLow。
  3. 使用平台选定的价格输入应用 %K 公式。
  4. 如果平台显示 %D,则重复相同的平滑规则(SMA 或其他方法,以及 M 长度)。

如果你无法匹配该数值,几乎总是因为以下选择之一:价格输入、窗口长度、平滑类型,或平台如何处理零范围的边界情况。

局限性与风险(可能出现的问题)

  1. 对窗口长度的敏感性
    较小的回溯周期 N 对新高和新低反应更快,而较大的 N 会使范围行为更平滑。即使基础价格相同,改变 N 也会改变 %K。

  2. 对噪声和微观结构的敏感性
    由于该方法依赖于滚动最大值和最小值,它可能对短期价格波动做出剧烈反应。两个具有不同噪声特征的市场(或两组数据)可能产生非常不同的振荡器路径。

  3. 数据质量和定义不匹配
    复现结果依赖于一致的 OHLC 定义和K线构建。例如,使用不同的时间戳、缺失K线,或调整后与未调整数据,都可能改变高点、低点,从而改变滚动范围。

  4. 零范围边界情况(除零错误)
    如果在回溯窗口内 HighestHigh 等于 LowestLow,则公式的分母为零。不同实现方式在输出值或是否留空直到范围非零方面存在差异。

  5. 无预测意义的保证
    即使计算正确,生成的振荡器数值本身并不能保证未来结果。历史关系不能确立未来表现,且绩效取决于许多外部因素,如执行、成本和具体的数据采样。

验证与后续问题

要独立验证你的“随机策略”计算:

  • 记录平台的参数:%K 的回溯周期长度、%D 的平滑周期长度(及平滑类型),以及选定的价格输入。
  • 使用滚动的 HighestHigh/LowestLow 和公式 %K = 100 × (Price − LowestLow) / (HighestHigh − LowestLow) 重新计算 %K。
  • 如果显示 %D,则使用平台的平滑方法和周期重新计算。

如果你愿意,可以分享你在平台上看到的确切参数名称(例如 %K 和 %D 的周期长度,以及平滑方式是 SMA、EMA 还是其他方法)。然后可以将计算步骤精确对齐到这些设置。

外汇和差价合约交易具有重大风险。FoxiForex的信息仅用于教育,不构成个人财务建议。赞助内容会被清楚标注。