달나라 노트

Python Upbit : get_ohlcv (코인 가격 history 조회하기, 과거 코인 가격 내역 조회) 본문

Python/Python ETC

Python Upbit : get_ohlcv (코인 가격 history 조회하기, 과거 코인 가격 내역 조회)

CosmosProject 2022. 2. 24. 01:01
728x90
반응형

 

 

 

pyupbit에서 어떤 코인의 과거 가격 내역을 조회하려면 get_ohlcv method를 사용합니다.

 

 

Syntax

pyupbit.get_ohlcv(ticker='KRW-BTC',
                  interval='day',
                  count=10,
                  to='YYYYMMDD HH:MM:SS'
                  period=0.1)

ticker = 가격 내역을 조회할 코인의 ticker

 

interval = 가격 조회 간격을 의미합니다. interval에 지정 가능한 값은 다음과 같습니다.

day = 일봉

minute1 = 1분봉

minute3 = 3분봉

minute5 = 5분봉

minute10 = 10분봉

minute15 = 15분봉

minute30 = 30분봉

minute60 = 60분봉

minute240 = 240분봉

week = 주봉

month = 월봉

 

count = 최근 몇일지의 데이터를 조회할지를 의미합니다. (default값은 200입니다.)

 

to = 출력할 max date time을 지정합니다.

 

period = 데이터 요청 주기 (초) (default 값은 0.1 입니다.)

 

 

 

 

 

 


 

 

 

 

 

import pyupbit as ub

price_history = ub.get_ohlcv(ticker='KRW-BTC')
print(type(price_history))
print(price_history.columns)
print(price_history)


-- Result
<class 'pandas.core.frame.DataFrame'>

Index(['open', 'high', 'low', 'close', 'volume', 'value'], dtype='object')

                           open        high  ...        volume         value
2021-08-08 09:00:00  50956000.0  51731000.0  ...   8950.681433  4.562136e+11
2021-08-09 09:00:00  50790000.0  53077000.0  ...  10539.781659  5.454869e+11
2021-08-10 09:00:00  52862000.0  53491000.0  ...   9910.238110  5.208785e+11
2021-08-11 09:00:00  52335000.0  53500000.0  ...  10943.968458  5.792028e+11
2021-08-12 09:00:00  52585000.0  53395000.0  ...  13202.592674  6.915387e+11

get_ohlcv method로 KRT-BTC(원화마켓 비트코인 시세)를 조회해봤습니다.

 

그 결과를 좀 보기좋게 표시하자면 위와 같습니다. (결과가 너무 많아서 일부만 나타내었습니다.)

 

가격 history는 DataFrame 형식으로 return됩니다.

 

또한 DataFrame의 컬럼은 다음 5개가 있습니다.

- DataFrame index = 기준 날짜/시간

- open = 기준 시간과 시가(시작 가격)

- high = 고가

- low = 저가

- close = 종가

- volume = 거래량 (거래된 코인의 개수)

- value = 거래 금액 (거래된 코인의 개수에 대한 가격)

 

DataFrame의 index를 보면 시간이 오전 9시로 고정되어있습니다.

따라서 매일 오전 9시 기준 데이터가 쌓이는 것을 볼 수 있습니다.

 

2022-02-23 09:00:00이라면 2022-02-22 09:00:00 ~ 2022-02-23 09:00:00 기간에 대한 비트코인 가격 정보를 나타내는 것 같습니다.

 

 

 

 

 


 

 

 

 

import pyupbit as ub

price_history = ub.get_ohlcv(ticker='KRW-BTC',
                             interval='minute1')

interval을 minute1으로 설정했을 경우 1분봉을 조회해줍니다.

 

 

import pyupbit as ub

price_history = ub.get_ohlcv(ticker='KRW-BTC',
                             interval='month')

interval = month로 설정할 경우 월봉을 나타내줍니다.

 

 

 

 

 

 


 

 

 

 

 

import pyupbit as ub

price_history = ub.get_ohlcv(ticker='KRW-BTC',
                             interval='day',
                             count=3)

count 옵션은 가장 최근 몇개의 데이터를 return할지에 대한 옵션입니다.

count=3으로 설정했기 때문에 3개의 행만 return됩니다.

 

 

 

 

import pyupbit as ub

price_history = ub.get_ohlcv(ticker='KRW-BTC',
                             interval='month',
                             count=3)

월봉도 마찬가지입니다.

 

 

 

 

 


 

 

 

 

import pyupbit as ub

price_history = ub.get_ohlcv(ticker='KRW-BTC',
                             interval='minute1',
                             count=10,
                             to='20220221 15:00:00')

to='20220221 15:00:00으로 설정했습니다.

이 말은 2022-02-21 15:00:00의 1분 전 즉, 2022-02-21 14:59:00 까지의 데이터를 조회합니다.

결국 2022-02-21 15:00:00 보다 이전의 시간 데이터를 조회한다는 의미입니다.

 

여기서 interval='minute1'이므로 1분봉을 나타내며

count=10이기 때문에 2022-02-21 15:00:00 이전 데이터 10개를 가져온다는 의미입니다.

 

 

 

 

 

import pyupbit as ub

price_history = ub.get_ohlcv(ticker='KRW-BTC',
                             interval='minute1',
                             count=10,
                             to='20220221')

to='20220221'처럼 시간을 생략하여 입력하면 시간이 24시로 기본지정됩니다.

2022-02-21 24:00:00 (결국 2022-02-22 00:00:00과 같음.)의 1분 전인 2022-02-21 23:59:00 이전 데이터를 조회해줍니다.

 

 

 

 

 

import pyupbit as ub

price_history = ub.get_ohlcv(ticker='KRW-BTC',
                             interval='day',
                             count=10,
                             to='20220221 23:00:00')

to='20220221 15:00:00' 로 설정하고 interval='day'로 설정할 경우엔 위와 같은 결과가 나옵니다.

 

일봉은 9시 기준으로 나타나지며 2022-02-21 15:00:00 이전 9시 데이터는 가장 최신 데이터가 2022-02-21 09:00:00 입니다.

따라서 가장 아래쪽에 2022-02-21 09:00:00 데이터가 나옵니다.

 

위 내용을 이해하면 아래 예시처럼 to='20220221 23:00:00' 로 설정해도 결국 2022-02-21 09:00:00 데이터가 가장 최신 데이터로 추출되는 것이 이해될겁니다.

import pyupbit as ub

price_history = ub.get_ohlcv(ticker='KRW-BTC',
                             interval='day',
                             count=10,
                             to='20220221 23:00:00')

 

 

 

import pyupbit as ub

price_history = ub.get_ohlcv(ticker='KRW-BTC',
                             interval='minute1',
                             count=10,
                             to='20220225')

to를 2022-02-25로 지정했습니다. (count는 10으로 지정)

그러면 2022-02-25 23:59:00 이전 시간대의 데이터 중 가장 최신의 데이터를 추출합니다.

근데 현재 시간은 2022-02-24 02:20:00입니다.

따라서 2022-02-25 23:59:00까지의 데이터가 존재하지 않으므로, 존재하는 데이터 중 가장 최신의 데이터부터 10개를 가져오게 됩니다.

 

 

 

참고자료

https://github.com/sharebook-kr/pyupbit

분봉 = https://docs.upbit.com/reference/%EB%B6%84minute-%EC%BA%94%EB%93%A4-1

일봉 = https://docs.upbit.com/reference/%EC%9D%BCday-%EC%BA%94%EB%93%A4-1

주봉 = https://docs.upbit.com/reference/%EC%A3%BCweek-%EC%BA%94%EB%93%A4-1

월봉 = https://docs.upbit.com/reference/%EC%9B%94month-%EC%BA%94%EB%93%A4-1

 

 

 

 

 

 

728x90
반응형
Comments