INNER CODE UNIT · Python

calculate_atr

jptsantossilva/BEC · bec/main.py:261

def calculate_atr(df: pd.DataFrame, period: int) -> float:
    if period <= 0 or df.empty:
        return 0.0
    if not {"High", "Low", "Close"}.issubset(df.columns):
        return 0.0

    prev_close = df["Close"].shift(1)
    tr = pd.concat(
        [
            (df["High"] - df["Low"]).abs(),
            (df["High"] - prev_close).abs(),
            (df["Low"] - prev_close).abs(),
        ],
        axis=1,
    ).max(axis=1)

    atr_series = tr.rolling(period, min_periods=period).mean()
    if atr_series.empty or pd.isna(atr_series.iloc[-1]):

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…