[파이썬] 업비트 코인 가격 데이터 받아오기

2023. 1. 6. 00:13자동매매/업비트

반응형

파이업비트를 이용해서 업비트의 코인 가격 데이터를 받아오기 위해서 프로그램 시작 부분에 아래의 코드를 작성하여 가격데이터를 받아올 수 있도록 정의를 해준다.

 

def get_ohlcv10(ticker):
    df = pyupbit.get_ohlcv(ticker, interval="day", count=10)
    return df
 
 
interval 항목은 쉽게 말해서 차트의 종류(범위, 기간 = 각 데이터의 간격)를 정하는 것으로 "day" 부분을 아래의 옵션들로 교체하면 1분봉 부터 월봉까지 다양한 차트(범위, 기간 = 각 데이터의 간격)를 선택할 수 있다.
  • day               :   일봉
  • minute1        :   1분봉
  • minute3        :   3분봉
  • minute5        :   5분봉
  • minute10      :   10분봉
  • minute15      :   15분봉
  • minute30      :   30분봉
  • minute60      :   60분봉
  • minute240    :   240분봉
  • week            :   주봉
  • month           :   월봉
 
count 항목은  봉(데이터)의 개수로, interval 항목이 day 일때는 일봉의 개수, minute30 일때는 30분봉의 개수를 의미한다.
따라서, df = pyupbit.get_ohlcv(ticker, interval="day", count=10)의 경우, 일봉 10개의 데이터를 요청하는 것이다.
 
 
 
 
 
 
 
 
 
 
데이터를 받아올 수 있도록 def문을 추가했으면, 아래와 같이 입력하면 비트코인의 가격을 받아올 수 있는 코드가 완성되고, 실행시 비트코인의 최근 10일간 종가가 출력되는 것을 확인할 수 있다.
 
 
df = get_ohlcv10('KRW-BTC')
df = df['close']
print(df)

 

'KRW-BTC' 부분은 업비트에서 거래가능한 코인의 티커를 입력하는 부분으로, 아래의 링크를 참고하면 되고,

https://skydance.tistory.com/16

 

[파이썬] 업비트 티커목록(Ticker List)

매매를 하기 위한 티커는 아래의 링크에서 확인할 수 있다. https://api.upbit.com/v1/market/all 해당 링크에 들어가면 KRW 마켓, BTC 마켓, USDT 마켓의 티커들이 뒤죽박죽 규칙 없이 섞여있어서 몹시 혼란스

skydance.tistory.com

 
 
 
그 외, close 자리에 open, high, low, close, volume, value를 넣으면 받은 데이터에서 시가, 고가, 저가, 종가, 거래량, 거래대금 등 필요한 데이터만 따로 모아서 사용할 수 있다.
 
 
 
 
 
 
 
 
 
 
파이업비트 라이브러리에서 데이터 요청의 경우, 주문은 초당 8회, 분당 200회까지 요청가능하고, 주문 외 요청은 초당 30회, 분당 900회 까지 요청 가능한데, 가격 데이터의 경우 주문 외 요청이므로 초당 30회, 분당 900회까지가능하다.
 
만약에 매 초 '30일 이동평균선' 값을 구하는 것을 시도한다면, 1분 동안 1800회 조회를 하게 되므로 요청제한 횟수인 900회를 초과하게 된다. 따라서, time.sleep 등의 명령어를 사용해서 데이터를 받아오는 간격을 적절하게 조절할 필요가 있다.
 
데이터 요청이 허용된 횟수를 초과하게되면 서버에서 거부당하고, 요청한 데이터를 받아볼 수 없게된다. 이로 인해서 프로그램에 오류가 발생하고 멈추게 된다.
 
이는 실시간으로 작동되고 매매의 자동화라는 프로그램의 목적에 치명적인 부분이므로 각종 지표들을 활용하면서 안정적으로 자동매매 프로그램을 운용하기 위해서는 효율적인 데이터 요청횟수 관리가 필요하다.
 
 
 
 

 

반응형