본문 바로가기

투자

반자동 코인투자 - 가상화폐 투자 마법공식 전략 백테스트

가상화폐 투자 마법공식 투자전략(책) 중 12번째 전략을 엑셀로 백테스트하고 실전 실행해보겠다.

준비물 : 코인 데이터

코인 데이터는 달러 기준으로 coinmarketcap에서 구할 수 있고, 원화(업비트) 기준으로 파이썬 라이브러리 pyupbit를 통해 얻을 수 있다.

 

import pyupbit
import pandas as pd
import openpyxl


tickers = ['KRW-BTC', 'KRW-ETH', 'KRW-XRP', 'KRW-DOGE', 'KRW-LTC']

df1 = pd.DataFrame()
df1.to_excel("hi1.xlsx")

with pd.ExcelWriter('hi1.xlsx', mode='a') as writer:
    for i in tickers:
        interval = 'day'
        to = '2100-01-01'
        a = pyupbit.get_ohlcv(ticker=i, interval=interval, to=to, count=3000)
        a.to_excel(writer, sheet_name=i)

위와 같이 코드를 작성하고 돌리면 데이터를 얻을 수 있지만, 그냥 간단하게 coinmarketcap에서 복붙해도 된다.

투자 전략 12. 평균 노이즈 비율 + 마켓 타이밍 + 변동성 돌파

투자 대상 : 비트코인, 이더리움, 리플, 도지코인, 라이트코인

투자기간 : 17년 1월 1일 ~ 22년 1월 30일

거래비용 : 0.2% 적용

투자전략 :

종목당 기본 투자 비중 : 1/5(동일비중) * 3, 5, 10, 20일 평균 이동평균선 스코어

매수 : 실시간 가격 > 당일 시가 + (전일 레인지 * 20일 평균 노이즈 비율)

투자비중 : 종목당 기본 투자비중 * (타겟 변동성/전일 변동성) | 만약 타겟변동성 > 전일 변동성일 경우 기본 투자비중

 

용어설명 :

거래비용 : 거래 수수료 + 슬리피지

이평선 스코어 : 당일 시가 > 3, 5, 10, 20일 이평선 | 스코어는 0, .25, .5, .75, 1 중 하나로 나옴

레인지 : 전일 고가 - 전일 저가

노이즈 : 1-ABS(전일 시가 - 전일 종가)/(전일 고가 - 전일 종가) | 값이 낮을수록 매수 기준가격이 높아짐

매수 기준가격 : 당일 시가 + (전일 레인지 * 20일 평균 노이즈 비율)

평균 노이즈 비율 : sum(noiseA:noiseB)/(B-A+1) | 여기서는 B-A+1 = 20

타겟 변동성 : 목표로 하는 일일 최고 변동치. 보통 1 ~ 5%로 설정함. 위 전략에서는 5%로 설정.

전일 변동성 : 레인지/전일 종가

 

전략 실행:

  1. T일 오전 9시(UTC 0시)에 투자 전략에 따른 각 코인의 투자비중을 확인한다.
  2. pyupbit을 사용해서 코인 데이터를 확보한다.
  3. 거래소에 매수 기준가격에 도달할 경우 매수 기준가격 * 1.002의 가격에 지정가 주문을 내는 예약-지정가 주문을 한다.
  4. T+1일 오전 9시에 전일 매수된 코인들을 매도하고 전략을 다시 실행한다.

백테스트 결과:

  P BTC ETH XRP DOGE LTC
수익률 31093% 4106% 24410% 8610% 67651% 2735%
CAGR 2.13006504 1.10213551 1.98364447 1.42924235 2.65161399 0.94362329
MDD -0.0819292 -0.8338312 -0.9396914 -0.9581845 -0.9099942 -0.9346755

도지가 중간에 미친놈처럼 올랐기 때문에 다른 포트폴리오들이 매우 저조해 보이지만 도지를 제외하고 그래프를 보면 다음과 같다.

사실 연복리가 몇 백% 나오는 것은 코인시장 특성상 워낙 변동성이 강한 시장이고, 어떤 코인을 포트폴리오에 편입하느냐에 따라 매우 백테스트 결과가 상이하기 때문에 미래에도 백테스트 수준으로 나와줄 것을 기대하기는 어려울 수 있지만, 기본 MDD 90%씩 먹고 가는 코인 시장에서 약 5년간 MDD를 10% 이하 수준으로 유지하면서 다른 코인들에 못지않게 수익을 낼 수 있다는 것이 인상적이다.

 

반자동 코인매매 이점:

코인 편입으로 자산군 다양화

코인 자산군에서도 분산투자 가능

코인 특성상 지리적 분산 효과 극대화

MDD를 최소화하면서 코인 수익률 따라갈 수 있음(상대적 박탈감 최소화)

프로그램 필요없음

매일 9시에만 신경 쓰면 됨

 

반자동 코인 매매 단점:

거래소 하나 당 주문 다 넣는데 약 10분 걸림

업비트 예약 지정가 수수료가 너무 강해서 슬리피지까지 계산하면 전략이 망가질 수 있음

각 거래소마다 9시에 동시에 매매하는 것이 힘들기 때문에 엑셀에서 측정한 전략과 오차가 생김

 

사용 거래소:

업비트는 예약-지정가 기능 사용하면 수수료 0.139% 임(기본 0.05%)

빗썸에서 거래하려면 수수료가 너무 비싸기 때문에 수수료 쿠폰을 사서 해야 함(오히려 거래 수수료를 줄일 수도 있음)

코빗은 수수료 0.15% → 너무 비싸

바이낸스는 수수료 0.075% → 할만함

 

숙제 :

수수료 측면에서 보나 전략 오차범위 측면에서 보나 자동매매가 필요함. 구현하기

거래소 분할로 거래소 해킹, 붕괴위험 축소하기

각 거래소 분할 후 차익거래로 전략 수익과 동시에 무위험수익도 추구하기

 

자동매매 구현 공부

 

대충 이런식으로 백테스트를 한다.