随机范围如何计算?公式、输入和限制
直接答案
随机范围的计算方法是:选取一个“当前”价格,并将其置于由最高价和最低价定义的滚动回溯窗口中。结果被缩放为一个有界值,表示当前价格相对于该历史区间的相对位置。
简单来说:它回答了这样一个问题:“在最近N根K线内,当前价格距离观测到的区间的顶部有多近,距离底部又有多远?”
机制与定义
典型的随机范围计算遵循以下结构:
- 选择一个回溯窗口长度,通常称为 N。
- 对每一根K线,计算:
- HighestHigh(N) = 最近N根K线中选定高价的最大值
- LowestLow(N) = 最近N根K线中选定低价的最小值
- 选择用作“当前”值的价格。常见选择是当前收盘价(但某些变体会使用其他价格成分)。
然后计算一个缩放后的位置:
随机范围(基本形式)
[ KR = \frac{CurrentPrice - LowestLow(N)}{HighestHigh(N) - LowestLow(N)} ]
为了以类似百分比的形式表示,一些实现会乘以100:
[ SR = 100 \times \frac{CurrentPrice - LowestLow(N)}{HighestHigh(N) - LowestLow(N)} ]
解释(不承诺信号含义):
- 如果 CurrentPrice = LowestLow(N),则 KR = 0(或 SR = 0)。
- 如果 CurrentPrice = HighestHigh(N),则 KR = 1(或 SR = 100)。
- 如果 CurrentPrice 介于两者之间,则数值位于0到1之间(或0到100之间)。
数据要求
要一致地计算上述内容,你需要:
- 一个OHLC时间序列(或至少包含高、低和选定的当前价格,如收盘价)。
- 明确的K线边界定义(例如日线K线 vs. 1小时K线),因为滚动的最高/最低值取决于数据粒度。
- 固定的回溯长度 N。
变体差异(为何两个图表可能不一致)
随机范围常与其他“随机”指标一起讨论,而不同实现方式存在差异。最常见的分歧来源包括:
- 使用哪个“当前”价格(收盘价 vs. 其他成分)。
- 如何计算最高高价和最低低价(例如,使用OHLC的高/低价,或调整后的输入)。
- 是否应用了平滑处理(某些版本在缩放前或后加入移动平均步骤)。
由于这些选择会改变计算出的数值,你应将公式视为依赖于具体实现方式。
证据或示例(含明确假设)
以下是使用无平滑的基本形式的示例,并假设:
- 使用 CurrentPrice = Close。
- 使用最近 N = 5 根K线。
- 计算:
- HighestHigh(5) 来自最近5根K线的最高价
- LowestLow(5) 来自最近5根K线的最低价
假设在最近5根K线中观察到:
- HighestHigh(5) = 1.2000
- LowestLow(5) = 1.1800
- CurrentPrice(最新收盘价)= 1.1950
步骤1:计算分母(范围宽度):
- HighestHigh(5) − LowestLow(5) = 1.2000 − 1.1800 = 0.0200
步骤2:计算分子(距底部的距离):
- CurrentPrice − LowestLow(5) = 1.1950 − 1.1800 = 0.0150
步骤3:缩放:
- KR = 0.0150 / 0.0200 = 0.75
- SR = 100 × 0.75 = 75
因此,随机范围值表明收盘价位于观测到的5根K线高低区间约75%的位置。
一个重要例外:分母为零
如果 HighestHigh(N) = LowestLow(N),分母变为零。这种情况可能发生在窗口内高低相等时(例如,在相关输入无变化或数据异常的时期)。
在这种情况下,通常的实现方式为:
- 返回默认值(通常为0或缺失),或
- 定义特殊处理逻辑。
当你验证计算时,应检查所选方法如何处理此边界情况。
局限性与风险(可能导致结果出错的因素)
-
窗口选择影响一切
回溯长度 N 控制着高低边界。较长的N使用更宽的范围,通常产生更平滑、更稳定的缩放;较短的N反应更快,但可能对短暂极端值更敏感。 -
粒度影响滚动范围
如果你从日线K线切换到小时K线,“N根K线”内的最高价和最低价所对应的时间跨度不同,因此计算出的数值不可直接比较。 -
数据质量和来源一致性
由于计算使用了高低极值,数据源或K线构建的微小差异都可能导致HighestHigh(N)和LowestLow(N)发生变化,从而影响振荡器数值。 -
变体定义可能使其看起来像另一个指标
如果一个平台应用了平滑处理或使用了不同的“当前”价格,即使回溯长度相同,你计算出的随机范围也可能不同。 -
无内置预测保证
即使数学计算正确,历史区间内的位置本身并不能保证未来结果。历史区间结构可能变化,相同的随机范围水平可能出现在截然不同的市场条件下。
验证与后续问题
要独立验证随机范围:
- 确认确切的实现定义:N、哪个价格是 CurrentPrice、数值是否缩放到0–1或0–100、是否使用平滑处理。
- 直接从你的OHLC数据中计算 HighestHigh(N) 和 LowestLow(N)。
- 逐根K线重新计算公式,并检查 HighestHigh(N) − LowestLow(N) = 0 的边界情况。
如果你想了解下一步,可询问所选设置(尤其是 N 和任何平滑处理)如何改变输出。一个常见的后续问题是:设置如何改变随机范围?