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
'Project > crypto trading bot' 카테고리의 다른 글
[crypto trading bot] 잔고 조회와 지정가 매수, 매도 (0) | 2021.05.17 |
---|---|
[crypto trading bot] 프로젝트 설명 (0) | 2021.05.05 |