바이낸스 비트코인 변동성 돌파전략 백 테스팅 결과

바이낸스 비트코인 변동성 돌파전략 백 테스팅 결과

파이썬 바이낸스 API로 가져온 비트코인 가격이라는 실감나는 데이터로 파이썬을 익히는 중입니다. 바이낸스 비트코인 자동매매를 한다고 가정했을 때, 비교적 코딩하기 쉬운 변동성 돌파전략 수익률은 어느 정도일지를 백 테스팅으로 알아보겠습니다.


글의 순서

변동성 돌파 전략이란
변동성 돌파 전략 백 테스팅 고정값 (상수)
변동성 돌파 전략 백 테스팅 변수
파이썬 코드 : 변동성 돌파 전략 백 테스팅
변동성 돌파 전략 백 테스팅 결과


변동성 돌파 전략이란

원리가 간단하고, 코드로 구현하기 쉬워서 많은 분들이 변동성 돌파 전략을 자동 매매 알고리즘으로 고려하고 있습니다. 다시 변동성 돌파 전략을 간단하게 정리해보겠습니다. 변동성 돌파 전략을 개발한 래리 윌리암스는 1일 단위의 시간 간격을 사용합니다.

전날의 캔들에서 최고가(high)와 최저가(low)의 차이인 Range를 가져온 후, 오늘 시가에 Range의 K배가 되었을 때 매수하는 기법입니다. 매도 시점은 다음 날이며, 매도 가격은 시작가입니다. K배라고 말씀드렸는데요. 윌리암스는 0.5를 추천합니다.



변동성 돌파 전략 백 테스팅 고정값 (상수)

변동성 돌파 전략 백 테스팅을 위해 3가지를 고려하였습니다. 어떤 기간의 데이터를 사용할 것인지, 어떤 시간 간격을 사용할 것인지, K 값은 어떻게 설정할 것인지가 그 3가지인데요. 이 포스팅에서는 기간을 최근의 4주로 고정하였고, 매 구간에서 1 BTC 만 투자한다고 가졍하였습니다. 또한 매매 수수료도 없다고 가정하였습니다. 시간 간격이 좁아질수록 더 빈번하게 매매하므로 만약 수수료까지 고려해야한다면, 수익률이 더 떨어집니다.

(1) 시계열 데이터 수집 구간 고정

수집시작 : 2023-01-01 00:00:00
수집 끝 : 2023-01-28 23:59:59

(2) 매번 1 BTC 투자 : 복리 효과 고려하지 않음

(3) 수수료가 없다고 가정 : 시간 간격이 좁을수록 증가하는 수수료 고려하지 않음


변동성 돌파 전략 백 테스팅 변수

(1) 시간 간격

래리 윌리암스는 1일 단위의 시간 간격을 사용했습니다만, 하루가 아니라 1분, 15분, 1시간, 1주 등 다양하게 적용할 수 있습니다. 백 테스팅에서는 1분, 15분, 1시간을 적용하였습니다.

(2) 백 테스팅 변수 K 값에 따른 수익률

이전 구간에서 가격 변화의 최대폭을 Range라고 하고, 구매시점을 이번 구간의 시가보다 Range×K 보다 커졌을 때로 잡았습니다. 이전 구간의 Range가 100원 이었고, K를 0.5로 설정했으며, 이번 구간의 시작가가 200원 이라고 가정해보겠습니다. 이럴 경우 매수 목표가격은

매수 목표가
= 이번 구간 시작가 + Range × K
= 200 + 100 × 0.5
= 250

이번 구간에서 매수 목표가는 250원이 됩니다. 만약 종료가가 300원이 되었다면 50원 이익을 본 것이 됩니다. 당연하지만 종료가가 200원이 되었다면 50원 손해입니다.

매수 가격은 K 값에 따라 바뀌므로, K 값의 변화에 따라 수익률이 달라지게 됩니다. 이번 변동성 돌파 전략 백 테스팅에서 사용할 K 값은 0.1~0.9의 범위에서 0.1씩 변화시키겠습니다.


파이썬 코드 : 변동성 돌파 전략 백 테스팅

지난 포스팅 바이낸스 비트코인 투자 백 테스팅. 파이썬 코인 투자 연습에서 사용했던 코드를 기반으로 변수만 바꿔서 사용합니다.

데이터를 가져오는 기간을 입력할 수 있도록 되어있으며, 시간 간격과 K값도 입력으로 처리할 수 있습니다. 따라서 시간간격과 K값의 변화에 따라 전체 이익이 어떻게 변하는 지 확인할 수 있습니다.


변동성 돌파 전략 백 테스팅 결과

먼저 변동성 돌파 전략을 사용하지 않고 평범하게 샀다가 팔았을 경우 수익률부터 살펴보겠습니다. 바이낸스 코인 거래소에서 2023년1월1일 매수했을 경우 1 BTC 가격은 16616.75달러입니다. 28일에는 23022.6달러였으니 6405.85달러 수익입니다. 1월 4주 동안의 상승장에서는 무려 38.6%의 수익률을 올리고 있습니다.

아래 표는 변동성 돌파 전략 백 테스팅 변수에 따른 수익을 보여주고 있습니다. 1분, 15분, 30분, 1시간, 4시간, 1일, 그리고 1주일이라는 7개 조건에서 K값을 0.1부터 0.9까지 0.1씩 변화시켜가며 백 테스팅을 수행하였습니다. 2023년 1월, 4주 동안 변동성 돌파 전략으로 사고, 팔고를 반복했을 때 가장 수익률이 좋았던 조건은 시간 간격 1주, K값은 0.1이었습니다. 안타깝게도 변동성 돌파 전략을 적용해서 열심히 사고, 판다 하더라도, 1월1일 매수, 4주후 매도라는 단 1회의 매매보다 수익률이 적었습니다. 시장 상황에 따라 이 결과는 달라질 것으로 예상되는데, 다른 포스팅에서 또 살펴보겠습니다.

API 키 받기 4단계


마치며 …

파이썬 바이낸스 API로 가져온 비트코인 가격이라는 실감나는 데이터로 파이썬을 익히는 중입니다. 이번 포스팅은 비트코인 매매에 변동성 돌파 전략을 적용한 결과에 대해 정리하였습니다. 2023년1월1일 매수, 4주후 매도라는 단 한번의 매매로 6405.85달러 수익을 얻을 수 있습니다만, 시간간격과 K 값을 변수로 하여 변동성 돌파전략을 적용한 결과는 이보다 수익이 적었습니다. 시간간격을 1분, 15분으로 짧게 했을 경우는 K 값이 커짐에 따라 손실을 보는 결과도 발생했습니다.

바이낸스 비트코인 자동매매를 한다고 가정했을 때, 비교적 코딩하기 쉬운 방법이 변동성 돌파전략입니다. 바꿔 말하면 비트코인 자동매매를 구현하긴 쉽습니다. 그런데 이 포스팅에서 보셨다시피 수익을 올리기는 쉽지 않습니다.

비트코인 자동 매매를 변동성 돌파 전략으로 구현하고자 하시는 분들이 많으실 텐데요. 당연한 얘기이지만 수익률에 영향을 주는 변수들을 더 많이 찾아낸 후 각 변수들을 정교하게 조합하는 최적 설계가 필요하다는 것을 알 수 있습니다.

 

 

함께 참고하면 더 좋은 글 :
1. 바이낸스 코인거래소 API Key로 계좌에 접속하는 파이썬 프로그래밍
2. 파이썬 바이낸스 API로 시계열 데이터를 가져오는 파이썬 프로그래밍
3. 바이낸스 API 보안을 위한 환경 변수 설정 : 윈도우 10
4. 바이낸스 API 보안을 위한 리눅스 환경 변수 설정
5. 파이썬 바이낸스 API 시계열 데이터분석. 판다스 시간 처리
6. 바이낸스 비트코인 투자 백 테스팅. 파이썬 코인 투자 연습
7. 파이썬 프로그래밍 time 이해 : timestamp, UTC, KST
8. 파이썬 바이낸스 API로 차트 분석 : 판다스 이동평균선
9. 파이썬 바이낸스 API로 차트 분석. 판다스 스토캐스틱
10. 파이썬 바이낸스 API로 차트 분석. 판다스 RSI (상대강도지수)
11. 파이썬 데이터 분석 : 판다스 데이터프레임 통계량, 그래프
12. 파이썬 프로그래밍 시작


참고자료

python-binance Docs >> get_historical_klines

Leave a Comment