-
코인 데이터 ccxt보다 더 많이 크롤링하기기타/가상화폐 2021. 12. 21. 22:30반응형
ccxt를 이용하거나 거래소 api를 이용하면 가격 데이터를 쉽게 불러올 수 있다.
그런데 거래소에 따라서, 시간축에 따라서 불러올 수 있는 최대 데이터 양이 정해져있다.
바이낸스의 경우 일봉, 4시간봉, 1시간봉 모두 최근 500개밖에 불러올 수 없고,
FTX의 경우 그나마 일봉 886개, 4시간봉 1501개, 1시간봉 1501개를 불러올 수 있다.
일봉으로 백테스팅을 한다면 부족함이 없지만, 4시간 단위의 전략부터는 분석이 힘들어진다.
그보다 훨씬 많은 데이터를 제공해주는 사이트가 있어서 공유해본다.
여러 거래소에 대한 데이터를 제공하고 있고, 데이터 길이는 아마 해당 사이트에서 수집한 이후부터 제공되는 것 같다.
바이낸스
FTX
파이썬 전처리
csv파일로 다운받아서 파이썬으로 열어보면 데이터가 더럽게 들어가있어서 보기만 해도 짜증이 난다.
이 글을 보는 사람은 스트레스 받지 말라고 전처리하는 코드도 같이 올린다.
참고로 맥의 경우 파일을 클릭한 뒤 커맨드 + 옵션 + c를 누르면 경로를 복사할 수 있다.
import pandas as pd df = pd.read_csv('파일경로/파일명.csv') df = df.reset_index() df.columns = df.iloc[0] df = df.iloc[1:] df = df.set_index('date') df.index = pd.to_datetime(df.index) df = df[['open','high','low','close','Volume USDT']] df.columns = ['Open','High','Low','Close','Volume'] df = df[::-1] df = df.astype('float')
시가, 고가, 저가, 종가, 거래량 순으로 컬럼으로 집어넣고 시간순으로 정렬한 형태다.
함수화
조금 더 우아한 방법이다. 종목명만 입력하면 알아서 1시간봉 데이터를 받아와서 전처리를 한 뒤 데이터프레임을 반환해준다.
종목명은 'BTC-PERP'와 같은 형태로 입력하면 된다.
FTX의 데이터를 가져오는 코드인데, 링크나 종목명 등만 수정해주면 바이낸스에서도 쓸 수 있을 것이다.
def cryptodatadownload_data(ticker): ''' cryptodatadownload.com의 시간봉 데이터를 가져옴 제공 데이터 -> 비트/이더/리플/링크/라이트/에이다/이오스/빗캐/유니/스시/폴카닷/븐브/테조스/트론 columns = ['Open','High','Low','Close','Volume'] ''' import pandas as pd import ssl ssl._create_default_https_context = ssl._create_unverified_context url = 'https://www.cryptodatadownload.com/cdd/FTX_Futures_' + ticker.split('-')[0] + 'PERP_1h.csv' df = pd.read_csv(url) df = df.reset_index() df.columns = df.iloc[0] df = df.iloc[1:] df = df.set_index('date') df.index = pd.to_datetime(df.index) df = df[['open','high','low','close','Volume USDT']] df.columns = ['Open','High','Low','Close','Volume'] df = df[::-1] df = df.astype('float') return df
반응형'기타 > 가상화폐' 카테고리의 다른 글
가상화폐 시장의 시간효과, 요일효과 : 9시 경주마, 버거타임, 주말노잼은 진짜일까 (0) 2021.12.28 [파이썬] 주식, 코인 데이터 리샘플링 : 시간봉으로 2시간, 6시간, 12시간봉 만들기 (0) 2021.12.25 [파이썬] 비트코인 탐욕 공포 지수 크롤링하기 (0) 2021.12.12 가상화폐 포트폴리오의 헤지 아이디어 (1) 2021.11.28 [파이썬] 가상화폐 포트폴리오 만들기 (0) 2021.11.28