본문 바로가기

Project/crypto trading bot

[crypto trading bot] 암호 화폐 현재 가격과 날짜별 데이터 가져오기

728x90

암호 화폐 거래 봇을 만들기 위해 날짜별 데이터를 가져오는 방법에 대해서 알아보겠습니다.

 

import ccxt
import pandas as pd

binance = ccxt.binance()

 

우선 binance API를 효율적으로 사용할 수 있게 해주는 ccxt 패키지와 가져온 데이터를 데이터 프레임 형태로 저장할 수 있도록 pandas 패키지를 가져와줍니다. 

 

def load_trading_data(symbol):
    btc_ohlcv = binance.fetch_ohlcv(symbol, "1d")
    trading_df = pd.DataFrame(
        btc_ohlcv, columns=['datetime', 'open', 'high', 'low', 'close', 'volume'])
    trading_df['datetime'] = pd.to_datetime(
        trading_df['datetime'], unit='ms')
    trading_df.set_index('datetime', inplace=True)
    return trading_df

 

symbol은 가져오고 싶은 암호 화폐의 이름으로 비트코인은 'BTC/USDT' 스텔라 루멘은 'XLM/USDT' 등으로 표현할 수 있습니다. fetch_ohlcv 함수를 사용하여 정보를 가져올 수 있고, 데이터 프레임으로 변환시키면서 행의 이름도 지정해줍니다. 이때 datetime을 알기 편하게 변환시켜주어야 하기 때문에 to_datetime 함수를 사용하였습니다.

 

def get_current_price(symbol, trading_df):
    current_price = trading_df['close'][-1]
    return current_price

 

거래 데이터를 가져올 때 마지막 열은 현재 시간의 데이터가 들어오게 됩니다. 그리고 각각의 datetime은 00시를 기준으로 하지만 미국 시간을 기준으로 하므로 약간의 차이가 발생할 수 있습니다. 앞서 말했듯이 마지막열은 현재 시간의 데이터를 가져오므로 이것을 이용하여 가져온 데이터의 마지막 행의 close 가격을 가져오게 되면 현재 가격을 가져올 수 있게 되는 것입니다.

728x90