본문 바로가기

투자

가상화폐 투자마법공식 전략 6~12 백테스트 + 최신 데이터 업데이트

지난 반자동 코인매매 포스트

 

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

가상화폐 투자 마법공식 투자전략(책) 중 12번째 전략을 엑셀로 백테스트하고 실전 실행해보겠다. 준비물 : 코인 데이터 코인 데이터는 달러 기준으로 coinmarketcap에서 구할 수 있고, 원화(업비트)

suganglive.tistory.com

random cute picture

저번에 올린 백테스트 결과를 보고 신이 나서 반자동 투자를 실전 테스트를 해보았다. 결과는 데이터처럼 투자가 안된다. 뭔가 잘못됐음을 느끼고 투자전략 12를 여러 번 다르게 백테스트해 본 결과 다음과 같은 결론을 얻었다.

 

  1. 지난 포스트에서 확인했던 복리 213%, MDD 8%는 잘못 백테스트한 것 같다.
  2. 제대로 백테스팅 해보면 복리 43%, MDD 9%가 나오지만 이마저도 DOGE가 선방한 덕분이고, DOGE를 다른 것으로 대체하면 약 복리 30%, MDD 15% 정도로 나온다.
  3. 업비트 데이터와 coinmarketcap 데이터와의 격차가 크다. 거의 모든 부분에서 coinmarketcap 데이터로 백테스트 했을 때 수치가 좋다.

 

실전 투자에 들어가기 전에 실행해본 실전 테스트에서 실패를 했으니 우선 다음의 사항들을 확인해야했다.

 

  1. 내가 백테스트를 제대로 했는가?
  2. coinmarketcap 데이터와 업비트 데이터의 격차는 어느 정도인가? (다음 포스트)

 

1을 확인하기 위해서 변동성 돌파 전략을 사용하는 전략 6 ~ 12를 책에 나온 그대로 백테스트했다.

(11은 결과에 대한 수치를 안 줘서 스킵했고 13은 오전 오후 데이터를 분리하기가 힘들어서 제외했다.)

 

투자전략 6 : 다자 가상화폐 + 변동성 돌파

투자대상 : 비트코인, 라이트코인, 리플, 대시

투자기간 : 2014.2.14~2018.3.31(이후의 ?일 평균 데이터를 활용하는 전략은 2월14일로부터 ?일 이후가 투자 시작이라고 생각하면된다.)

거래비용 : 0.2%

투자전략 :

  1. 각 화폐의 레인지 계산(전일 고가 - 저가)
  2. 매수 : 실시간 가격 > 당일 시가 + (레인지*k)
  3. k = 0.5
  4. 돌파에 성공한 가상화폐에 자산의 1/4 투입
  5. 매도 : 당일 종가
    1. (책에서는 다음 날 시가라고 되어있지만 당일 종가나 다음 날 시가나 차이는 미비하고 백테스트 상의 편의를 위해 당일 종가에 매도한다고 가정했다. 다음 날 시가 매도가 0시 매도라면 당일 종가 매도는 23시 59분 59초 매도이다.)
  s6 me s6 book
수익률 1441.96846 1492
CAGR 4.83028438 5.21
MDD -0.2142776 -0.213

분명 같은 데이터를 가지고 했는데 수치가 조금 다르다. 하지만 대체로 일치하기 때문에 백테스트가 틀리지는 않은 것 같다.

이 전략을 백테스트하기 전에는 각 코인의 수익률을 구할 때 당일 고가 ≥ 매수 기준가격일 경우에 매수가 체결되었다고 가정했는데, 당일 고가 > 매수 기준가격으로 했을 때 더 수치가 좋아진다는 것을 깨달았다.

어차피 나중에 자동매매할 때에는 어차피 정확한 매수 기준가격은 주문호가가 안맞기 때문에 기준가격을 호가 기준에 맞도록 한 단계 올림 하면 되는 문제이기 때문에 앞으로도 당일 고가가 매수 기준가격보다 높을 경우에만 매수가 체결되었다고 가정했다.

 

투자전략 7 : 다자 가상화폐 + 상승장 + 변동성 돌파

투자대상 : 비트코인, 라이트코인, 리플, 대시

투자기간 : 2014.2.14~2018.3.31

거래비용 : 0.2%

투자전략 :

  1. 각 화폐의 레인지 계산(전일 고가 - 저가)
  2. 각 화폐의 가격이 5일 이동평균보다 높은지 여부 파악 - 낮을 경우 그날 투자 대상에서 제외
    1. (무슨 가격 기준인지 헷갈렸지만 그냥 시가 기준으로 당일을 포함한 5일 이동평균으로 계산했고 당일 시가 > 이동평균일 경우에 당일 투자 대상에 포함했다.)
  3. 매수 : 실시간 가격 > 당일 시가 + (레인지*k)
  4. k = 0.5
  5. 돌파에 성공한 가상화폐에 자산의 1/4 투입
  6. 매도 : 당일 종가
  s7 me s7 book
수익률 265.365066 277.9
CAGR 2.84363268 3.08
MDD -0.1164613 -0.113

전략 6과 마찬가지로 수치에 오차가 있지만 백테스트 방법이 틀리지는 않아 보인다.

 

투자전략 8 : 상승장 + 변동성 돌파 + 변동성 조절

투자대상 : 비트코인, 라이트코인, 리플, 대시

투자기간 : 2014.2.14~2018.3.31

거래비용 : 0.2%

투자전략 :

  1. 각 화폐의 레인지 계산(전일 고가 - 저가)
  2. 각 화폐의 가격이 5일 이동평균보다 높은지 여부 파악 - 낮을 경우 그날 투자 대상에서 제외
  3. 매수 : 실시간 가격 > 당일 시가 + (레인지*k)
  4. k = 0.5
  5. 자금관리 : 가상화폐별 투입 금액은 (타깃 변동성/전일 변동성)/투자 대상 가상화폐 수 // 타깃 변동성 = 5%
    1. 백테스트에서는 이동평균 위에 있는 코인에 투자비중 1/4를 먼저 주고 거기에 타깃 변동성이 전일 변동성보다 큰 경우에는 그냥 1/4, 타깃 변동성이 전일 변동성보다 작거나 같을 경우에는 (1/4) * (타깃 변동성/전일 변동성)으로 계산했다.
    2. 전일 변동성을 구할 때 계산하는 방식이 책에서도 분모가 전일 시가였다가 전일 종가였다 왔다 갔다 하는데, 투자전략 12를 제외하고는 분모에 전일 시가를 넣었다.(전략 12에는 종가라고 표기되어 있기 때문이다.)
  6. 매도 : 당일 종가
  s8 5% me s8 5% book
수익률 55.4399895 62.9
CAGR 1.66125152 1.816
MDD -0.0652041 -0.0533

2%와 1%도 있지만 그냥 5%만 봐도 얼추 비슷하게 했다고 확인할 수 있다.

 

투자전략 9 : 4개 이동평균 상승장 + 변동성 돌파 + 변동성 조절

투자대상 : 비트코인, 라이트코인, 리플, 대시

투자기간 : 2014.2.14~2018.3.31

거래비용 : 0.2%

투자전략 :

  1. 각 화폐의 레인지 계산(전일 고가 - 저가)
  2. 각 화폐의 가격이 3, 5, 10, 20일 이동평균보다 높은지 여부 파악 - 낮을 경우 그날 투자 대상에서 제외
  3. 매수 : 실시간 가격 > 당일 시가 + (레인지*k)
  4. k = 0.5
  5. 자금관리 : 가상화폐별 투입 금액은 (타깃 변동성/전일 변동성)/투자 대상 가상화폐 수 // 타깃 변동성 = 2%
  6. 매도 : 당일 종가
  s9 me s9 book
수익률 5.79000572 ?
CAGR 0.59925282 0.635
MDD -0.0258263 -0.0251

전체 수익률은 책에서 안 보여줬지만 대강 비슷하다. 낮은 MDD가 인상적이다.

 

투자전략 10 : 5일 이동평균 & 5일 거래량 상승장 + 변동성 돌파 + 변동성 조절

투자대상 : 비트코인, 라이트코인, 리플, 대시

투자기간 : 2014.2.14~2018.3.31

거래비용 : 0.2%

투자전략 :

  1. 각 화폐의 레인지 계산(전일 고가 - 저가)
  2. 각 화폐의 가격이 5일 가격 이동평균보다 높은지 여부 파악
  3. 각 화폐의 전일 거래량이 5일 거래량 이동평균보다 높은지 여부 파악
  4. 둘 중 하나라도 낮을 경우 그날 투자 대상에서 제외
  5. 매수 : 실시간 가격 > 당일 시가 + (레인지*k)
  6. k = 0.7
    1. 갑자기 책에서 다른 설명 없이 k값을 0.2를 올렸는데 과최적화의 가능성이 있어 보인다.
  7. 자금관리 : 가상화폐별 투입 금액은 (타깃 변동성/전일 변동성)/투자 대상 가상화폐 수 // 타깃 변동성 = 2%
  8. 매도 : 당일 종가
  s10 me s10 book
수익률 2.47667242 ?
CAGR 0.35338184 0.3756
MDD -0.01778 -0.019

 

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

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

투자기간 : 2015.8.7~2018.3.31(책에서는 15년 9월부터라고 되어있다. 이 전략이 책과 오차가 가장 큰데, 책 의 그래프에 나온 15.9.14부터 시작을 해도 격차는 좁혀지지 않았다.)

거래비용 : 0.2%

투자전략 :

  1. 종목당 기본 투자 비중 : 1/5 * 전일 기준 3,5,10,20일 평균 이동평균선 스코어
    1. 이동평균선 스코어는 0, 0.25, 0.5, 0.75, 1 중 하나이다.
  2. 매수 : 실시간 가격 > 당일 시가 + (레인지*20일 평균 노이즈 비율)
  3. 자금관리 : (전일 고가 - 저가)/전일 종가 * 100. 값이 투자 자금의 k%를 초과하지 않도록 투자 비중 조절
    1. 타겟 변동성(k) : 3%
  4. 매도 : 당일 종가
  s12 3% me s12 3% book
수익률 2.384505725 1.436
CAGR 0.5776774 ?
MDD -0.04104802 -0.038

처음으로 수익률이 크게 다른데, 내가 뭔가를 잘못한 것일까 뭘까 모르겠다. 맨 밑에 있는 엑셀 파일에 s12 book expand 시트에 백테스트 과정이 있으니 잘못된 부분 지적을 기다리겠다.

MDD가 비슷하니 일단 넘어가자

 

백테스트 결과 정리

전략 12 수익률을 제외하고는 모두 유사한 수치를 얻었다. 물론 하나 틀린 것이 가장 관심 있던 12번인 것이 슬프기는 하지만 수익률이 올라갔고 MDD가 비슷하니 크게 개의치 않아도 괜찮아 보인다. 백테스트를 하면서 느낀 것은 코인에 한해서는 특정 기간의 수익률이 미래의 수익률을 보장하지 않으며(물론 상관관계는 높음) MDD는 백테스트 기간이 2배 늘어나면 약 2배 상승한다는 것이다.

결과적으로 내 백테스트가 틀리지 않았다.

이제 투자기간을 2022년까지로 확장시킨 백테스트 결과를 공유하겠다.

 

백테스트 확장판

먼저 기본판(2014~2018) 데이터이다.

  s6 s7 s8 s9 s10 s12
수익률 1441.96846 265.365066 55.4399895 5.79000572 2.47667242 2.38450572
CAGR 4.83028438 2.84363268 1.66125152 0.59925282 0.35338184 0.5776774
MDD -0.2142776 -0.1164613 -0.0652041 -0.0258263 -0.01778 -0.041048
CAGR 순위 1 2 3 4 6 5
MDD 순위 6 5 4 2 1 3
종합 7 7 7 6 7 8
종합순위 2 2 2 1 2 6

종합은 CAGR 순위 + MDD 순위이다. 전략 9가 CAGR 순위에서 4위, MDD 순위에서 2위를 하면서 종합 1위이다.

 

다음은 확장판 (2014.2.14~2022.2.5) 데이터이다.

  s6' s7' s8' s9' s10' s12'
수익률 9902.44029 1770.74585 294.315703 10.1312326 4.39844776 5.63217148
CAGR 2.16593278 1.55449803 1.04051831 0.35488375 0.2355154 0.34041679
MDD -0.4383718 -0.1459346 -0.125541 -0.0555091 -0.0429038 -0.0651352
CAGR 순위 1 2 3 4 6 5
MDD 순위 6 5 4 2 1 3
종합 7 7 7 6 7 8
종합순위 2 2 2 1 2 6

역시 마찬가지로 전략 9가 순위를 지키는 모습이다. 인상적인 점은 CAGR이 하나같이 내려갔고, MDD가 급상승했다.

여기까지만 보면 전략 9로 가면 되겠네! 싶지만 업비트 데이터로 보면 순위가 또 다르다.

 

다음 포스트에서 계속하겠다. (엑셀 파일을 통해 미리 확인할 수 있다.)

가상화폐투자마법공식.xlsx

s? book edition : 책 방식대로 백테스트

s? expand : 기간 확대

s? com : 업비트 비교를 위해 업비트 데이터와 같은 기간 같은 코인 coinmarketcap 데이터로 백테스트

s? upbit : 업비트 데이터로 백테스트