Python으로 레이트 오브 체인지(ROC) 구현하기

레이트 오브 체인지(Rate Of Change, 이하 ROC)는 모멘텀 오실레이터입니다. 기간 간 가격 변동률을 계산합니다. ROC는 현재 가격을 “n” 기간(사용자 정의) 전 가격과 비교합니다. 그런 다음 계산된 값을 그래프로 표시하고 제로선 위아래로 변동합니다. 기술 분석가는 추세 식별, 과매수 및 과매도 상태 식별 등의 용도로 변동률(ROC)을 사용할 수 있습니다.

출처: 트레이딩뷰

pip install pandas ccxt pinetopy

import pandas as pd
import ccxt
import pinetopy as pp

# 예시) 바이낸스 선물 BTCUSDT, 1시간 봉 
bnb = ccxt.binance({'options': { 'defaultType': 'future' }}) 
ohlcv = bnb.fetch_ohlcv(symbol="BTC/USDT", timeframe="1h", limit=500)
df = pd.DataFrame(ohlcv, columns=['time', 'open', 'high', 'low', 'close', 'volume'])
df['time'] = pp.kst(df['time'])

def main(df, len=9):

    close = df['close']
    roc = (close - close.shift(len)) / close.shift(len)
    df['ROC'] = (roc * 100).round(2)

    return df

print(main(df, len=9)) # 트레이딩뷰 디폴트 값

트레이딩뷰 차트와 비교