이번 포스팅에선 비트파이넥스 API를 활용하여 비트코인 가격데이터를 요청해보겠다.

좀 더 자세한 설명은 코인베이스 API 사용 포스팅에 나와있으니 참고해도 좋다.


우선 비트파이넥스 API관련 링크에 접속한다

https://bitfinex.readme.io/v2/reference#rest-public-stats


왼쪽 candle을 눌러주면 아래와 같은 화면이 보인다.



우선 URL 방식중 GET과 POST방식에 대해서 간단히 설명하겠다.


GET(파란원)은 따로 암호화를 하지 않은 URL방식으로 URL을 보면 직관적으로 그 내용을 알 수 있다. 예시에 나와있는 링크를 봐도 어느정도 직관적으로 이해가 가능하다.


POST는 암호화를 거친 URL로 이상한 특수문자 알파벳 조합으로 이루어지기 떄문에 직관적으로 알 수 없다. 

우리는 GET방식의 URL을 통해 데이터를 요청해 보겠다.


친절하게 파라미터에 대한 예시까지 들어주었으므로, 바로 URL에 적용시켜 보겠다.

예시 URL(GET방식)은 아래와 같다.


https://api.bitfinex.com/v2/candles/trade:6h:tBTCUSD/hist?limit=100&start=&end=&sort=1


라인별로 간단하게 보면 6시간봉으로 이루어진 BTCUSD마켓 데이터를 hist 방식으로(사진 빨간원 참조) 정렬된 상태로 100개 요청하는 것이다.


이제 코드패드로 이동해 보겠다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import requests
from datetime import datetime
import time
 
def unixtime(t): #우리가 쓰는 시간을 유닉스타임으로 바꿈 
    temp = t.split('-')
    return int(time.mktime(datetime(int(temp[0]), int(temp[1]), int(temp[2])).timetuple()))
'''
def unixtime_to_datetime(arr, interval, symbol): #우리가 쓰는 시간을 유닉스타임으로 바꿈 
    temp = t.split('-')
    return int(time.mktime(datetime(int(temp[0]), int(temp[1]), int(temp[2])).timetuple()))    
'''
timeframe = '6h'
symbol = 'tBTCUSD'
section = 'hist'
limit = 100
end = "2018-03-01"
start = "2018-02-25"
sort = 1 
 
= (requests.get("https://api.bitfinex.com/v2/candles/trade:%s:%s/%s?limit=%d&start=%d&end=%d&sort=%d" %(timeframe, symbol, section, limit, unixtime(start)*1000, unixtime(end)*1000, sort)))
 
data = r.json()
print(data)
    
cs


해당 코드를 실행하면 아래와 같다.



이런식으로 데이터를 받아올 수 있다.

이후 csv저장 등 필요한 작업을 진행하면 된다.

+ Recent posts