python upbit 종가 정보 가져오기

in #kr7 years ago (edited)

안녕하세요?

비트코인을 접하게 되면서 차트 분석도 공부하게 되었고, python 도 공부하는 중입니다.
python을 이용하면 업비트(upbit)에서 시세 정보를 받아 볼 수 있습니다.

이번 글에서는 python을 이용해서 마지막 tick 거래 정보와 전일 종가 정보를 가져오는 코드를 공유해
볼까 합니다.

기본적으로 필요한 모듈은 requests 와 json 두가지 입니다.
아래와 같이 두가지 모듈을 import 해 줍니다.

import requests
import json

다음으로 필요한 것은 정보를 요청할 url 형식 입니다.

비트코인 전일 종가 정보는
https://crix-api-endpoint.upbit.com/v1/crix/trades/days?code=CRIX.UPBIT.KRW-BTC&count=1
이런 url을 이용하면 됩니다.
그냥 브라우져 창에 위 주소를 입력해도 값을 받아 올수 있습니다.

위 url에서 trades, days, code=, count= 이 변수들을 바꾸면 다른 값들을 얻어 올수 있습니다.

예를 들면, 마지막 거래된 시세 정보를 받아 오고 싶으면 days 를 ticks 로 변경하면 됩니다.
그리고 count 값을 변경하면 여러개의 시세 정보를 받아 올 수 있습니다.

그럼, python 코드를 이용해 전일 종가를 얻어 오는 코드를 작성해 보겠습니다.

headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}

def upbit_get_last_trades(name):
    url = "https://crix-api-endpoint.upbit.com/v1/crix/trades/days?code=CRIX.UPBIT.KRW-{CoinName}&count=1".format(CoinName=name)
    trades = requests.get(url, headers=headers).json()
    return trades[0]

tradeInfo  = upbit_get_last_trades('BTC')

여기서 중요한 것은 requests.get() 함수의 인자로 위 headers 정보를 넣어주지 않으면
계속적으로 request를 할 수 없습니다.
저도 처음에 어떤때는 값을 가져오고 어떤때는 에러가 발생하고 해서 한 참 고생했습니다.

위와 같이 upbit_get_last_trades() 함수를 호출해주면, 전일 종가에 대한 정보가 딕셔너리(dict)
형태로 리턴됩니다.

{'code': 'CRIX.UPBIT.KRW-BTC', 'tradeDate': '2018-02-23', 'tradeDateKst': None, 'candleDateTime': '2018-02-23T00:00:00+00:00', 'candleDateTimeKst': '2018-02-23T09:00:00+09:00', 'tradePrice': 11950000.0, 'prevClosingPrice': 11763000.0, 'change': 'RISE', 'changePrice': 187000.0, 'accTradeVolume': 15053.93713593, 'accTradePrice': 173969692432.15826, 'timestamp': 1519377298173}

각 key에 대한 설명 아래와 같습니다.

tradeDate : 거래일자 (UTC 기준)
tradeDateKst : 거래일자 (한국시간 기준)
candleDateTime : 캔들 시간(UTC 기준)
candleDateTimeKst : 캔들 시간(한국시간 기준)
tradePrice : 거래 가격
prevClosingPrice : 이전 종가
change : 이전 종가 대비 RISE 인지, FALL 인지
changePrice : 이전 종가 대비 변한 가격
accTradeVolume : 거래량
accTradePrice : 거래된 총 가격
timestamp : 1970-01-01 00:00:00 이후로 흐른 초

p.s : 보팅이나 댓글은 다음글을 쓸수 있는 원동력이 됩니다.^^

Coin Marketplace

STEEM 0.26
TRX 0.20
JST 0.038
BTC 97904.67
ETH 3602.66
USDT 1.00
SBD 3.90