auto-sync: 2026-04-17 20:24:28

This commit is contained in:
cfdaily
2026-04-17 20:24:28 +08:00
parent 2db9434b2c
commit 9ec297401a
@@ -214,6 +214,10 @@ class ATRIndicator:
Returns:
新的ATR值
"""
if self.method == 'sma':
# SMA不适合增量更新,这里简化处理,用户应该重新计算完整序列
raise ValueError("SMA方法不支持增量更新,请重新计算完整序列")
# 计算当前TR
tr1 = abs(high - low)
tr2 = abs(high - prev_close)
@@ -221,13 +225,10 @@ class ATRIndicator:
tr = max(tr1, tr2, tr3)
if self._last_atr is None:
# 还没有足够数据,直接返回TR
# 还没有足够数据,初始化ATR为TR
self._last_atr = tr
return tr
if self.method == 'sma':
# SMA不适合增量更新,这里简化处理,用户应该重新计算完整序列
raise ValueError("SMA方法不支持增量更新,请重新计算完整序列")
else:
# EMA支持增量更新
alpha = 1.0 / self.period
new_atr = self._last_atr * (1 - alpha) + tr * alpha