(python) 업비트에서 일정 간격으로 분봉 가져오기

2019-09-02

업비트에서 일정 간격으로 분봉을 가져오는 방법을 알아보겠습니다.

언어는 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에서 확인하실 수 있습니다.