"""EDIT POINT: every chart/model indicator is registered here."""
import pandas as pd


def sma(series: pd.Series, window: int = 20) -> pd.Series:
    return series.rolling(window).mean()


def rsi(series: pd.Series, window: int = 14) -> pd.Series:
    delta = series.diff()
    gains = delta.clip(lower=0).rolling(window).mean()
    losses = -delta.clip(upper=0).rolling(window).mean()
    return 100 - (100 / (1 + gains / losses.replace(0, float("nan"))))


INDICATORS = {"SMA 20": lambda s: sma(s, 20), "SMA 50": lambda s: sma(s, 50), "RSI 14": lambda s: rsi(s, 14)}
