-
[파이썬] 주식, 코인 데이터 리샘플링 : 시간봉으로 2시간, 6시간, 12시간봉 만들기기타/가상화폐 2021. 12. 25. 16:37반응형
백테스트나 자동매매를 하다보면 원본 데이터와는 다른 시간축으로 가공해야할 때가 있다.
예를 들어서 대부분의 코인 거래소에서는 1시간, 4시간, 1일 단위 데이터만 제공해준다.그런데 2시간이나 6시간, 12시간 단위로 하고 싶다면? 그럴 때는 시간봉 데이터를 불러와서 리샘플링을 해줘야 한다.
1시간봉 기준의 시가, 고가, 저가, 종가, 거래량 데이터가 데이터프레임df_1h에 저장되어 있다고 해 보자.
이를 2시간봉으로 바꾸려면
df_2h = df_1h.resample(‘2h’)
이렇게 입력해주면 된다.하지만 이렇게만 해서는 오브젝트를 조회할 수 없다. 메소드를 이용해서 연산을 해줘야 확인할 수 있다.
그런데 메소드를 쓸 때 가격 데이터의 특성을 생각해서 적용해줘야 한다.
2시간봉은 1시간봉 두 개로 이루어진다. 따라서,- 2시간봉의 시가 -> 처음 1시간봉의 시가 -> first메소드
- 2시간봉의 고가 -> 두 1시간봉의 고가 중 큰 값 -> max메소드
- 2시간봉의 저가 -> 두 1시간봉의 저가 중 작은 값 -> min메소드
- 2시간봉의 종가 -> 두 번째 1시간봉의 저가 -> min메소드
- 2시간봉의 거래량 -> 두 봉의 거래량의 합 -> sum메소드
와 같이 계산해줘야 한다.
이 규칙을 딕셔너리에 저장한 뒤, 리샘플 오브젝트에 apply메서드를 적용하여 연산하면 결과를 확인할 수 있다.
how = {'Open':'first','High':'max','Low':'min','Close':'last','Volume':'sum'} df_2h = df_1h.resample('2h').apply(how)
리샘플할 때 파라메터로 4h,6h,12h,1d,2d 등을 전달하는 것으로 얼마든지 원하는대로 리샘플링할 수 있다.
반응형'기타 > 가상화폐' 카테고리의 다른 글
파이썬으로 FTX 거래량 상위 종목 불러오기 (0) 2022.05.22 가상화폐 시장의 시간효과, 요일효과 : 9시 경주마, 버거타임, 주말노잼은 진짜일까 (0) 2021.12.28 코인 데이터 ccxt보다 더 많이 크롤링하기 (0) 2021.12.21 [파이썬] 비트코인 탐욕 공포 지수 크롤링하기 (0) 2021.12.12 가상화폐 포트폴리오의 헤지 아이디어 (1) 2021.11.28