이전 분봉 가져오기 글에서 설명한 코드를 정리해서 github에 올립니다.

github.com/multizone-quant/System_trading_ex/blob/main/get_upbit_candles.py

 

multizone-quant/System_trading_ex

Contribute to multizone-quant/System_trading_ex development by creating an account on GitHub.

github.com

 

과거 데이터 중 tick과 candle 데이터는 형태가 틀립니다. 따라서 이 데이터를 가져오는 방식도 조금 차이가 있는데요. 기존에는 한 프로그램으로 tick과 candle을 모두 처리하다보니 조금 복잡한 것 같아서 우선 candle만 가져오는 프로그램으로 분리를 했습니다. 

 

동작방식은 아래와 같습니다.

 

우선 분/일봉 데이터를 최대한 가져옵니다. 여기에 from 보다 과거 candle이 있으면 지운 후 파일에 저장합니다. 그 반대로 아직 받아야할 candle이 더 있으면 to 값을 변경하여 다시 받는 것을 반복합니다.

 

이렇게 만들어진 파일을 한 파일로 합칩니다.

프로그램 동작시킬 때 필요한 변수 값들입니다.

CANDLE_TYPE     = 'min' # 'min' or 'day'
CANDLE_INTERVAL = 1     # 1, 3,5,10,30,60

COIN            = 'KRW-HUNT'              # 원하는 코인 정보
FROM            = '2021-01-11 20:00:00'   # 특정 일자부터 받고 싶을 때 : '2021-01-12 10:00:00' (KST임)
TO              = None                    # None:최근시간부터, 특정시간 : '2021-01-12 10:00:00' (KST임)

 

아직 TO 값을 변경하면서 test하지 않았기 때문에 최근 candle 부터 FROM까지 분/일봉 데이터를 받을 수 있습니다.

 

TO 값을 입력하여도 정상동작하도록 수정하였습니다. 기존에는 타임존까지 표시하게 하였으나, 그냥 타임존은 생략하도록 (KST기준임) 수정하였습니다. 직관적으로 TO 값을 입력할 수 있도록 TO 값도 KST 기준으로 입력하도록 수정하였습니다. 이때 TO보다 작은 값까지 저장합니다.

 

만약 하루치를 원하는 경우에는 아래와 같이 입력하시면 됩니다.

 

 

 

 

----------

 

버그 수정

 

2021/1/12 오후 3시 이후로 to 값을 변경하면서 과거 데이터를 모두 가져오는 기능이 동작하지 않습니다. 참고하세요.

 

연속가져오기에 들어가는 to 시간값은 utc 시간입니다. 따라서 next_to 부분에 들어가는 시간값을 utc 값으로 수정하니 잘 동작합니다.

 

그리고 일부 데이터가 빠져있는 문제는 아래와 같이 timestamp 값이 None인 구간이 있어서 발생한 문제입니다. 따라서 sort 할때 key값으로 KST 값을 이용하여 문제를 해결하였습니다. 

 

 

 

결론적으로 이제 잘 동작합니다.

반응형

설정

트랙백

댓글