Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Code Habit

[python] ccxt 사용하여 binance 비트코인 rsi 구하기 본문

카테고리 없음

[python] ccxt 사용하여 binance 비트코인 rsi 구하기

코드베어 2021. 8. 9. 00:11

앞의 포스팅에서 upbit, bybit에서 제공하는 api를 이용해 비트코인 rsi를 구했었는데, 이번에는 ccxt라는 모듈을 활용해 binance 기준 비트코인 rsi를 구해보겠다.

 

ccxt 모듈은 여러거래소의 api를 지원하는데 이를 활용하면 여러 거래소의 api를 따로 공부할 필요없이 ccxt에서 제공해주는 통일된 인터페이스를 통해 여러 거래소의 api를 보다 편하게 이용할 수 있다.

 

ccxt를 사용하여 binance 비트코인 rsi를 구하는 예제다.

import ccxt
import pandas as pd
import time
    
def rsi_calc(ohlc: pd.DataFrame, period: int = 14):
    ohlc = ohlc[4].astype(float)
    delta = ohlc.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")

def rsi_binance(itv='1h', simbol='BTC/USDT'):
    binance = ccxt.binance()
    ohlcv = binance.fetch_ohlcv(symbol="BTC/USDT", timeframe=itv, limit=200)
    df = pd.DataFrame(ohlcv)
    rsi = rsi_calc(df,14).iloc[-1]
    return rsi
    
# test
while True:
    print(rsi_binance(itv='15m'))
    print(rsi_binance(itv='1h'))
    print(rsi_binance(itv='4h'))
    time.sleep(1)

ccxt.binanc()를 통해 binance객체를 binance에서 제공하는 api들을 편하게 사용할 수 있다.