def WWS(df, n, price='Close'):
    """
    Welles Wilder Summation
    Returns: list of floats = jhta.WWS(df, n, price='Close')
    Source: https://www.fmlabs.com/reference/default.htm?url=WellesSum.htm
    """
    wws_list = []
    for i in range(len(df[price])):
        if i + 1 < n:
            wws = float('NaN')
            wws_list.append(wws)
            wws = df[price][i]
        else:
            start = i + 1 - n
            end = i + 1
            wws = wws - sum(df[price][start:end]) / n + df[price][i]
            wws_list.append(wws)
    return wws_list
