抛物线SAR的计算方法:公式、参数和输入
直接答案
抛物线SAR(通常称为“抛物线止损与反转”)通过迭代更新一个称为 SAR 的类似止损水平来计算。在每一根新的价格K线上,SAR由 前一个SAR、前一个极值点(EP) 和 加速度因子(AF) 计算得出。当趋势朝指标有利方向发展时,AF会逐步增加,直到达到最大值为止。当价格穿过SAR水平时,指标通常会 反转方向,并以新的EP和AF重新开始计算过程。
你可以将抛物线SAR视为一种基于规则的机械序列:选择起始值(方向、初始EP、初始AF、最大AF、AF步长),然后逐根K线应用相同的更新公式。
机制与定义
变量含义
抛物线SAR使用四个影响指标路径的输入:
- 方向(趋势状态):通常为“上升趋势”或“下降趋势”,取决于价格是高于还是低于前一个SAR。
- SAR(抛物线止损值):每根K线计算出的水平值。
- 极值点(EP):当前趋势方向中迄今达到的最极端价格(上升趋势中的最高高点;下降趋势中的最低低点)。
- 加速度因子(AF):控制SAR向价格靠近速度的乘数。AF从初始值开始,并随着EP创出新高而增加。
常见设置包括:
- AF起始值(初始AF)
- AF步长(发现新EP时AF的增量)
- AF最大值(AF的上限)
不同的图表系统可能对输入的标签略有不同,但核心思想相同:AF决定了指标的响应速度。
核心更新逻辑
从高层次来看,SAR的更新包含两个部分:
- 以AF为权重,将SAR拉向当前EP。
- 使用前一个SAR值以及(实际中)当前方向,确保SAR位于价格的正确一侧。
一个常见的数学表达式为:
- 设:
- SAR_(t-1) = 前一个SAR
- EP_(t-1) = 前一个EP
- AF_(t-1) = 前一个加速度因子
则基础更新可表示为:
- SAR_baseline(t) = SAR_(t-1) + AF_(t-1) · (EP_(t-1) − SAR_(t-1))
在计算出基础值后,实际实现中会施加一个 依赖于方向的约束,以防止SAR不现实地跳跃到近期价格之外。
更新AF和EP
一旦确定了方向:
- 如果新K线在当前方向上创出 新的EP:
- AF增加 AF步长,但不超过AF最大值。
- EP更新 为该新极值。
- 如果新K线 未 创出新的EP:
- AF保持不变。
- EP保持不变。
这正是抛物线SAR在趋势加速时变得更敏感的主要原因。
方向反转(如何检测反转)
在计算下一根K线的SAR后,指标会检查价格是否穿过SAR:
- 在 上升趋势 中,如果市场价格(通常为最低价或收盘价,取决于具体实现)低于SAR,则认为方向反转。
- 在 下降趋势 中,如果市场价格高于SAR,则方向转为上升趋势。
当发生反转时,通常的做法是:
- 将AF重置为其起始值。
- 将EP设为新方向对应的第一个极值(反转后的第一个极值)。
- 从新状态继续迭代。
由于不同图表平台在使用的“穿越”价格和SAR边界规则上略有差异,最可靠的独立验证方法是将你的计算公式和约束条件与特定实现所采用的定义进行匹配。
可验证的证据或示例
以下是一个完全可验证的示例,使用明确的假设。数值细节仅为说明用途;如果你使用自己选择的设置执行相同步骤,应能复现相同序列。
本示例的假设
- 我们每根K线跟踪两个变量:最高价 和 最低价。
- 假设第1根K线处于 上升趋势。
- 初始值:
- SAR_(0) = 95
- EP_(0) = 105(迄今最高高点)
- AF_(0) = 0.02
- AF步长 = 0.02
- AF最大值 = 0.20
- 对于每根新K线t,计算 SAR_baseline(t) = SAR_(t-1) + AF_(t-1) · (EP_(t-1) − SAR_(t-1))。
- 然后应用边界规则,确保SAR位于价格的正确一侧。由于不同平台对边界的实现略有不同,在验证时必须选择一个一致的规则。
步骤1:计算第1根K线的SAR
假设第1根K线有:
- 最高价 = 107
- 最低价 = 102
计算基础SAR:
- SAR_baseline(1) = 95 + 0.02 · (105 − 95)
- = 95 + 0.02 · 10
- = 95.20
更新EP和AF:
- 由于第1根K线最高价107大于EP_(0)=105,设EP_(1) = 107。
- AF_(1) = min(AF_(0)+AF步长, AF最大值) = min(0.02+0.02, 0.20) = 0.04。
检查反转条件:
- 在上升趋势中,若价格低于SAR则方向反转。最低价102仍高于95.20,因此本K线保持上升趋势。
步骤2:计算第2根K线的SAR
假设第2根K线有:
- 最高价 = 106
- 最低价 = 99
使用前一个SAR、EP和AF计算基础SAR:
- SAR_baseline(2) = SAR(1) + AF(1) · (EP(1) − SAR(1))
- ≈ 95.20 + 0.04 · (107 − 95.20)
- = 95.20 + 0.04 · 11.80
- = 95.20 + 0.472
- = 95.672
更新EP和AF:
- 第2根K线最高价106未超过EP(1)=107,因此EP保持107。
- AF保持0.04。
检查反转:
- 若反转条件使用“最低价 < SAR”,则第2根K线最低价99仍高于95.672,因此无反转。在其他实现中,比较可能使用不同的价格字段;这正是实现匹配至关重要的原因。
如何独立验证
- 记录平台所选设置:AF起始值、AF步长、AF最大值。
- 取一小段历史数据。
- 确定起始K线时指标的当前状态(上升/下降趋势)。
- 使用更新公式及平台的边界/反转规则,逐根K线重新计算SAR。
如果你重新计算的序列存在差异,通常是由以下实现特定因素之一导致:
- “极值点”使用的价格(最高价/最低价定义)
- “穿越”反转使用的具体价格
- 限制SAR相对于近期价格的边界规则