본문 바로가기
퀀트 분석/퀀트 기초

[Python] 파이썬으로 코인 현재가 및 과거 데이터 받아오기

by 쿼카퀀트 2021. 9. 5.
728x90

안녕하세요, 오늘은 비트코인, 이더리움 등 코인의 시세 데이터를 받아오는 방법을 설명할게요!

 

오늘 받아올 데이터는 각 코인의 시가, 종가, 고가, 저가, 거래량 데이터입니다. 패키지가 너무 쉽게 잘 되어있어서 포스팅도 짧게 끝날거 같습니다.

 

1. pyupbit 패키지 연결

오늘 사용할 패키지는 pyupbit로, 따로 api key없이도 업비트에서 주식 시세를 받아올 수 있도록 만들어진 패키지입니다.

아래처럼 설치해주세요

pip install pyupbit

 

 

패키지 import는 아래 코드처럼 간단히 import하면 됩니다.

import pyupbit

 

2. 코인 종류 및 봉 길이 확인

pyupbit로는 어떤 코인의 데이터를 받아올 수 있을까요? 업비트에 상장된 코인은 전부 데이터를 받아올 수 있습니다! 상장된 코인 리스트는 아래 코드로 받아올 수 있습니다.

pyupbit.get_tickers(fiat='KRW')

받아온 코인 리스트는 아래와 같습니다. KRW-BTC라고 되어있는데, 단순히 생각하면, 이를 BTC(비트코인)의 티커라고 생각하면 됩니다. 이 KRW-BTC를 통해 현재가, 과거데이터 등을 받아올 수 있습니다. 오늘 예시에선 비트코인을 기준으로 설명을 할테니, KRW-BTC 티커를 기억해주세요!

받아올 수 있는 봉 사이즈는 어떻게될까요? 예를들어, 1분 단위의 데이터, 10분 단위의 데이터를 받아올 수 있을까요?

네 가능합니다. pyupbit에서 제공하는 봉의 종류는 다음과 같습니다.

minute1 minute3 minute5 minute10 minute15 minute30
minute60 minute240 day week month  

예시로 몇가지만 설명하면, minute1은 1분봉, minute10은 10분봉, day는 일봉, week는 주봉, month는 월봉입니다.

 

3. 코인 현재가 확인하기

그럼 이제, 먼저 코인의 현재가를 한번 출력해볼까요? 아래 코드를 입력해주세요. 앞에서 받아왔던 코인의 티커(KRW-BTC 등)를 전달해줍니다.

pyupbit.get_current_price(["KRW-BTC", "KRW-ETH"])

위처럼 여러 종목을 list로 묶어서 전달해 주면,

{'KRW-BTC': 57460000.0, 'KRW-ETH': 4468000.0}

처럼 dict 형식으로 현재가를 리턴해줍니다. 간단하죠?

(전 예시를 들려고 일부러 여러 티커를 list로 묶었지만, 원하신다면 한 개의 종목만 구할수도 있습니다)

 

4. 코인 과거 데이터 받아오기

이번엔 과거 데이터를 쭉 받아와 보겠습니다.

과거 데이터를 받아올 땐 받아오는 과거 데이터 기간은 어떻게 되는지, 봉 크기(분봉, 일봉 등)는 어떻게 할지, 봉 개수는 몇개를 받아올지 등 옵션을 추가할 수 있습니다. 

아래 코드를 입력해주세요.

ticker = 'KRW-BTC'
interval = 'minute1'
to = '2021-09-05 11:20'
count = 10
pyupbit.get_ohlcv(ticker=ticker,interval=interval,to=to,count=count)

각 파라미터를 설명하면,

ticker 받아올 코인 티커
interval 한 봉의 길이(1분봉, 일봉, 주봉 등)
to 데이터의 마지막 시점
count 몇 개 봉을 받아올지

입니다. 즉, 위 코드를 해석하자면 비트코인의 21.09.05 11시 20분 전 10개의 1분봉 데이터를 받아오겠다는 의미입니다.

 

받아온 데이터를 확인해볼까요?

11시 20분 전까지 1분 단위로 10개의 티커가 쌓였네요.

 

받아온 데이터는 시가, 고가, 저가, 종가, 거래량으로, 일반적으로 받아오는 주가와 똑같은 형식으로 받아올 수 있습니다.

딱 한가지 주가 데이터와 다른점이 있네요. value라는 컬럼이 있습니다.

주식은 거래된 주식의 숫자를 volume하나로만 주는 반면, pyupbit에선 volume에 거래된 코인의 숫자, value에 거래된 코인을 원화로 환산한 가치, 이렇게 두 개로 나눠서 줍니다.

 

이렇게 하면 코인 데이터 받아오기도 끝입니다.

 

5. 전체 코드

하나하나 복사하기 힘들까봐, 위 코드들을 하나로 모아뒀습니다(배려심... 포스팅이 너무 짧아서 쓰는거 아닙니다 진짜). 아래 코드만 돌리면, 위에서 구한 모든 데이터를 한번에 구해볼 수 있습니다.

import pyupbit

tkrs = pyupbit.get_tickers(fiat='KRW')

current_prices = pyupbit.get_current_price(["KRW-BTC", "KRW-ETH"])


ticker = 'KRW-BTC'
interval = 'minute1'
to = '2021-09-05 11:20'
count = 10
pyupbit.get_ohlcv(ticker=ticker,interval=interval,to=to,count=count)

 

그럼, 오늘 포스팅은 여기서 마치겠습니다.

제가 설명한 내용은 정말 기본적인 정도의 데이터 다운로드 방법인데요, pyupbit의 더 다양한 기능을 보고싶다면 pyupbit 깃허브에 들어가서 설명을 읽어보시면 더 좋을 것 같습니다.

 

그럼 코인도 모두 성투하세요!

 

728x90

댓글