Python Bitfinex 시세 정보 가져오기

in #python6 years ago

안녕하세요?

이번글에서는 파이썬을 이용해서 Bitfinex 시세 정보를 가져오는 방법에 대해서 작성해 보고자 합니다.

Bitfinex는 업비트와 달리 공개 API를 제공하고 있습니다.

https://docs.bitfinex.com/docs

이 사이트에 접속하시면 지원하는 모든 API를 확인 하실수 있을 것입니다.

현재는 v2가 Beta 버전으로 표기되어 있는데, 저는 v2를 사용해서 시세 정보를 가져와 보겠습니다.

기본적으로 필요한 모듈은 requests 와 json 모듈입니다.

import requests
import json

다음으로 현재 시세 정보를 가져오기 위한 url은

https://api.bitfinex.com/v2/ticker/{coin}

여기서 {coin}은 가져오고자 하는 코인 이름으로 BTC의 경우 tBTCUSD 로 교체하면
시세 정보를 가져올 수 있습니다.
(https://api.bitfinex.com/v2/ticker/tBTCUSD)

그러면 파이썬을 이용해 시세 정보를 얻어 오는 함수를 작성해 보겠습니다.

def bitfinex_get_ticker(coin_name):
    url = "https://api.bitfinex.com/v2/ticker/{coin}".format(coin=coin_name)
    info = requests.get(url, headers=headers).json()

info의 정보를 출력해 보면 리스트에 아래와 같이 시세 정보만 숫자로 쭈욱 담겨 있습니다.
[10673, 64.89718331, 10674, 64.54394382, 1309.8, 0.1399, 10674, 49212.19490463, 10749, 9359.9]

각 값의 의미는 순서데로
[BID ,BID_SIZE, ASK, ASK_SIZE, DAILY_CHANGE, DAILY_CHANGE_PERC, LAST_PRICE, VOLUME, HIGH, LOW]
이런 의미 입니다.

BID와 ASK 라는 용어를 사용하는데, BID는 매수 하려는 가격이고 ASK는 매도 하려는 가격 인듯합니다.
Bitfinex 의 API 문서를 참조해서 해석해 보면

BID : 실수(float) 형태의 마지막 입찰가격
BID_SIZE : 실수(float) 형태의 마지막 최고 높은 입찰 가격의 크기(Volume을 의미하는듯)
ASK : 실수(float) 형태의 마지막 최저 매도가격
ASK_SIZE : 실수(float) 형태의 마지막 최저 매도가의 크기
DAILY_CHANGE : 실수(float) 형태의 어제 종가대비 현재 마지막 가격의 변화량(+ or - 를 포함)
DAILY_CHANGE_PERC : 실수(float) 형태의 어제 종가대비 현재 마지막 가격의 변한 퍼센트(%)
LAST_PRICE : 실수(float) 형태의 마지막 거래 가격
VOLUME : 오늘 거래량
HIGH : 오늘 최고가
LOW : 오늘 최저가

입니다. 혹시 잘못된 정보가 있으면 알려주세요.

이렇게 리스트 형태로 가격 정보가 있으면 나중에 사용하기가 불편해서 딕셔너리(dict) 형태로 저장하고
리턴해주는 기능을 추가해 보았습니다.

def bitfinex_get_ticker(coin_name):
    url = "https://api.bitfinex.com/v2/ticker/{coin}".format(coin=coin_name)
    info = requests.get(url, headers=headers).json()
    dict_info = {}
    keys = [ 'BID', 'BID_SIZE', 'ASK', 'ASK_SIZE', 'DAILY_CHANGE', 'DAILY_CHANGE_PERC', 'LAST_PRICE', 'VOLUME', 'HIGH', 'LOW']
    idx = 0
    for key in keys:
        dict_info[key] = info[idx]
        idx = idx + 1
    return dict_info

다음 글에서는 지금까지 만들어둔 함수들을 이용해서 1분마다 값을 가져와 한국 프리미엄을 출력해주고
시세 정보를 출력해주는 프로그램을 만들어 보려고 합니다.

읽어 주셔서 감사합니다.

p.s : 보팅과 댓글은 다음글을 작성할 수 있는 힘이됩니다.^^

Coin Marketplace

STEEM 0.17
TRX 0.13
JST 0.027
BTC 59500.17
ETH 2654.95
USDT 1.00
SBD 2.41