随机振荡器是如何计算的?

了解随机振荡器的计算公式、参数和输入。

随机振荡器是如何计算的?

直接答案

随机振荡器通过滚动窗口的价格极值进行计算。首先,你计算 %K,即最新收盘价在近期高低范围内的相对位置。然后,你计算 %D,即对 %K 进行移动平均平滑处理(通常使用较短或不同的平均设置)。该计算仅需历史价格数据(通常是最高价、最低价和收盘价)以及选定的回溯窗口和平滑周期参数。

机制与定义

其核心思想很简单:将当前收盘价在近期价格范围内的位置转换为一个有界的数值。

1) 选择输入价格序列

标准实现需要每个时间点至少包含以下数据:

  • 最高价(High):该周期内的最高交易价格。
  • 最低价(Low):该周期内的最低交易价格。
  • 收盘价(Close):该周期的收盘价格。

为验证起见,应准确记录你的数据源提供的字段(例如,“收盘价”是否表示周期结束时的价格,以及高低值是否为该K线周期内的真实极值)。

2) 选择范围的回溯窗口

n 为回溯长度(通常称为 %K 周期)。在最近的 n 个周期内,计算:

  • 最高高点(HHn) = 窗口内最高价的最大值。
  • 最低低点(LLn) = 窗口内最低价的最小值。

3) 计算 %K(原始随机值)

C 为当前时间点的最新收盘价。原始随机值 %K 的计算公式为:

%K = 100 × (C − LLn) / (HHn − LLn)

解释:

  • 如果 C 等于 LLn,则 %K = 0。
  • 如果 C 等于 HHn,则 %K = 100。
  • 如果 C 处于两者之间,则 %K 介于 0 和 100 之间(在典型数据条件下)。

4) 计算 %D(平滑后的随机值)

m 为 %D 的平滑周期(通常称为 %D 周期)。一种常见方法是对最近的 %K 值取移动平均:

%D = 移动平均(%K, m)

移动平均的类型很重要:

  • 一些实现使用简单移动平均(SMA)
  • 其他实现使用指数移动平均(EMA) 或其他平均方式。

若要获得可独立验证的结果,必须同时匹配周期长度 m 和具体的移动平均方法。

5) 处理边界情况

在正确计算时,有两个实际的边界情况值得注意:

  • 初始K线:在前 n−1 个周期中,可能没有足够的历史数据来计算 HHn 和 LLn。
  • 零范围:如果 HHn − LLn = 0(例如,窗口内高低值完全相同),则分式无定义。不同实现对此处理方式不同(例如,输出缺失值或强制设定一个值)。验证时,需检查你的方法如何处理这种情况。

证据或示例(含明确假设)

以下是一个小规模的数值示例,展示公式的运作方式。假设条件如下:

  • 回溯窗口 n = 5 个周期。
  • 我们正在计算当前时间点的值。
  • 计算出的 LLnHHn 基于最近 5 个周期。
  • 为简化,我们先仅计算原始 %K。

假设最近 5 个周期的数据为:

  • LLn = 1.1000(窗口内最低的低价)
  • HHn = 1.1200(窗口内最高的高价)
  • 当前 收盘价 C = 1.1150

则:

  • HHn − LLn = 1.1200 − 1.1000 = 0.0200
  • C − LLn = 1.1150 − 1.1000 = 0.0150

因此:

  • %K = 100 × 0.0150 / 0.0200 = 75

要计算 %D,接下来需构建最近 m 个周期的 %K 值,并应用选定的移动平均。为验证起见,应记录所选的 m 值,以及实现中使用的是 SMA、EMA 还是其他平均方式。否则,即使原始 %K 计算一致,%D 仍可能不同。

局限性与风险(侧重计算)

1) 对参数和数据频率的敏感性

回溯长度 n 和平滑设置 m 直接影响指标的响应速度。较短的窗口会使 %K 对近期价格变动反应更快,而较长的窗口通常会使范围背景更平滑。

此外,使用不同时间框架(例如 5 分钟K线与日线K线)会改变“最高价”、“最低价”和“收盘价”的含义,从而改变 HHn、LLn,进而影响 %K。

2) 对高低范围行为的依赖

随机振荡器并非直接衡量趋势,而是衡量收盘价在近期价格范围内的相对位置。如果市场在狭窄或震荡区间内运行,高低范围可能较小,导致 %K 在相邻K线之间显得波动剧烈。

3) 在恒定范围条件下的未定义或误导性数值

如果 HHn − LLn = 0,则 %K 在数学上无定义。即使某些实现以某种方式填充数值,结果也可能不具实际意义。

4) 平滑选择影响可比性

由于 %D 依赖于移动平均的类型和周期长度,两个平台即使在原始 %K 一致的情况下,也可能显示不同的 %D 曲线。为独立验证,应比较完整的设置,而不仅仅是指标名称。

验证与后续问题

要独立验证你自己的随机振荡器计算,请执行以下步骤:

  1. 固定参数 n(回溯周期)和 m(平滑周期)。
  2. 对每个时间点,准确计算 LLnHHn(即 n 个周期内最低价的滚动最小值和最高价的滚动最大值)。
  3. 应用公式 %K = 100 × (C − LLn) / (HHn − LLn)
  4. 使用你的工具所采用的精确移动平均方法和周期长度计算 %D

若想进一步探索,一个有用的下一步是:

  • 比较不同设置如何改变 %K 和 %D 的行为,或
  • 检查不同移动平均定义如何影响平滑后的曲线:
  • /forex-indicators/momentum-indicators/stochastic-oscillator/how-do-settings-change-stochastic-oscillator/
  • /forex-indicators/momentum-indicators/stochastic-oscillator/what-can-signals-from-stochastic-oscillator-mean/
外汇和差价合约交易具有重大风险。FoxiForex的信息仅用于教育,不构成个人财务建议。赞助内容会被清楚标注。