Hy-yh

RSI 실제값으로 쓰이는 최근 가중치 계산 본문

Coding/Python

RSI 실제값으로 쓰이는 최근 가중치 계산

YOY^0^ 2023. 8. 6. 03:04

실제 공식

첫 번째 AU/AD 계산
- AU : 지난 14일 동안의 상승분의 합 / 14
- AD : 지난 14일 동안의 하락분의 합 / 14

이후의 AU/AD 계산 
- AU : [13 * 이전 AU + 현재 상승분] / 14
- AD : [13 * 이전 AD + 현재 하락분] / 14

 

number 1

def RSI(data, period=14, column='close'):
    delta = data[column].diff(1)
    delta = delta.dropna()

    up = delta.copy()
    down = delta.copy()
    up[up < 0] = 0
    down[down > 0] = 0
    data['up'] = up
    data['down'] = down

    AVG_Gain = data['up'].rolling(window=period).mean()
    AVG_Loss = abs(data['down'].rolling(window=period).mean())
    RS = AVG_Gain / AVG_Loss

    RSI = 100.0 - (100.0 / (1.0 + RS))
    data['RSI'] = RSI

출처: https://dev-guardy.tistory.com/89

 

number2

def rsi(ohlc: pd.DataFrame, period: int = 14):
    ohlc["close"] = ohlc["close"].astype(float)
    delta = ohlc["close"].diff()
    gains, declines = delta.copy(), delta.copy()
    gains[gains < 0] = 0
    declines[declines > 0] = 0

    _gain = gains.ewm(com=(period - 1), min_periods=period).mean()
    _loss = declines.abs().ewm(com=(period - 1), min_periods=period).mean()

    RS = _gain / _loss
    return pd.Series(100 - (100 / (1 + RS)), name="RSI")

출처 까먹음

 

쓰니까 트뷰랑 같게 나온다

'Coding > Python' 카테고리의 다른 글

'module' object is not callable 파이썬  (0) 2020.12.14
파이참 단축키  (0) 2020.12.14
파이썬 가상환경 만들기  (0) 2020.12.14