(python) 업비트에서 일정 간격으로 분봉 가져오기
업비트에서 일정 간격으로 분봉을 가져오는 방법을 알아보겠습니다.
언어는 python을 이용할 것이고, upbitpy를 이용할 것입니다.
1. upbitpy 설치
먼저 upbitpy 를 설치합니다. (PC에 python이 설치되어있지 않다면 python 먼저 설치)
pip3 install upbitpy
2. Timer function
일정 간격으로 분봉을 가져오기 위해 System time기준으로 sleep하는 timer function을 만듭니다.
def wait(min):
now = datetime.datetime.now()
remain_second = 60 - now.second
remain_second += 60 * (min - (now.minute % min + 1))
time.sleep(remain_second)
3. 분봉 가져와 출력하기
INTERVAL_MIN = 1 # 간격 (1,3,5,10,15,30,60,240)
upbit = Upbitpy()
keys = ['opening_price', 'trade_price', 'high_price', 'low_price', 'timestamp']
while True:
coin = 'KRW-BTC'
candle = upbit.get_minutes_candles(INTERVAL_MIN, 'KRW-BTC')[0]
logging.info('[{}] {}'.format(datetime.datetime.now().strftime('%Y%m%d %H:%M:%S'), coin))
for key in keys:
logging.info('\t{}: {}'.format(key, candle[key]))
wait(INTERVAL_MIN)
4. 결과
매 분마다 비트코인 분봉을 가져와 출력합니다. (시스템 시간 기준)
간격은 INTERVAL_MIN값을 통해 조정할 수 있습니다.
$ python samples/get_min_candle.py
INFO:root:[20190902 05:48:24] KRW-BTC
INFO:root: opening_price: 11636000.0
INFO:root: trade_price: 11636000.0
INFO:root: high_price: 11636000.0
INFO:root: low_price: 11636000.0
INFO:root: timestamp: 1567370931373
INFO:root:[20190902 05:49:00] KRW-BTC
INFO:root: opening_price: 11636000.0
INFO:root: trade_price: 11636000.0
INFO:root: high_price: 11637000.0
INFO:root: low_price: 11636000.0
INFO:root: timestamp: 1567370967198
Code
전체 코드는 Upbitpy - sample에서 확인하실 수 있습니다.