CCXT 모듈 바이낸스 OHLCV PANDAS DATAFRAME 엑셀 저장하기
import ccxt
import pandas as pd
import datetime
import time
import pprint
# 1. timestamp로 변환
def to_mstimestamp(str):
str = datetime.datetime.strptime(str, "%Y-%m-%d %H:%M:%S")
str = datetime.datetime.timestamp(str)
str = int(str) * 1000
return str
# 2. 바이낸스 선물(future) 객체 생성
binance_usdm = ccxt.binanceusdm({
'apiKey' : 'APIKEY',
'secret' : 'SECRET'
})
# 3. OHLCV 가져오기 (
start_date = to_mstimestamp('2021-01-01 00:00:00')
end_date = to_mstimestamp('2021-12-31 23:59:59')
ohlcv = binance_usdm.fetch_ohlcv('BTC/USDT', timeframe='1d', since=start_date, limit=1000, parmas={'endTime':end_date})
# 4. DataFrame 생성
trading_df = pd.DataFrame(ohlcv, columns=['datetime', 'open', 'high', 'low', 'close', 'volume'])
# 5. 'datetime'컬럼 변환
trading_df['datetime'] = pd.to_datetime(trading_df['datetime'], unit='ms') + datetime.timedelta(hours=9)
# 6. 'datetime' 인덱스 설정
trading_df.set_index('datetime', inplace=True)
# 7. 엑셀저장
trading_df.to_excel('trading_df.xlsx')
1. 시간을 Timestamp로 변환하는 함수
① 대분의 가상화폐 거래소는 마이크로초단위를 사용한다. 10자리 Timestamp에 3자리가 추가된다. 그래서 Timestmap에 "X 1000"을 해야 한다.
2. 바이낸스 선물 객체 생성
① 현물일 경우 아래 사용
binance = ccxt.binance({'apiKey' : 'APIKEY', 'secret' : 'SECRET'})
3. OHLCV 가져오기
① 함수 : fetch_ohlcv(symbol, timeframe='1m', since=undefined, limit=undefined, params={endTime})
② 인수 :
ⓐ symbol(필수) : 가져올 종목 ex)BTC/USDT, ADA/USDT
ⓑ timeframe(필수) : (interval) 기간 ex)1m, 3m, 5m, 10m, 30m, 1h, 4h, 1d, 1w, 1m
ⓒ since : (startTime) 시작시간. timestamp로 전달한다.
ⓓ limit : 가져올 기간. 바이낸스(default 500, max 1000)
ⓔ params :
endTime : 종료시간. 바이낸스의 경우 limit 최대값 1000기간 내에서만 설정가능
5. 'datetime' 컬럼 변환
① 마이크로초(ms)로 저장된 'datetime'을 변환한다.
② 저장된 datetime은 UTC를 사용함으로 한국시간으로 변환환다 (UTC + 9시간)
ccxt 바이낸스 모듈에서 OHLCV를 저장할 때 주의할 사항
바이낸스(대부분의 거래소)는 ms timestamp와 UTC타임을 사용한다
'암호화폐 > 암포화폐자동매매' 카테고리의 다른 글
CCXT 라이브러리로 바이낸스에서 OHCLV 데이터 엑셀 저장하기 (1) | 2022.01.02 |
---|---|
암호화폐 해외거래소 자동거래 라이브러리 CCTX - 바이낸스,업비트,빗썸 지원 (0) | 2021.12.25 |
비밀댓글입니다