Python으로 TradingView RSI 구현하기

RSI (Relative Strength Index)는 특정 자산의 가격 움직임을 분석하여 과매수(Overbought) 또는 과매도(Oversold) 상태를 판단하기 위한 모멘텀 지표입니다. 이는 자산의 상승 속도와 하락 속도를 비교하여, 가격 추세의 강도와 잠재적 반전 가능성을 측정합니다.

pip install ta pandas ccxt

import ta
import pandas as pd
import ccxt

# 예시) 바이낸스 선물 BTCUSDT, 1시간 봉 
bnb = ccxt.binance({'options': { 'defaultType': 'future' }}) 

def RSI(length=14):
    ohlcv = bnb.fetch_ohlcv(symbol="BTC/USDT", timeframe="1h", limit=500)
    df = pd.DataFrame(ohlcv, columns=['time', 'open', 'high', 'low', 'close', 'volume'])
    df['rsi'] = ta.momentum.RSIIndicator(close=df['close'], window=length).rsi().fillna(0)
    df['rsi'] = df['rsi'].round(2) # 소수점 2자리 까지
    return df

print(RSI()) # 기본 14, length 수정 가능