이전 글에서는 배경과 마켓타이밍, 코인과의 상관성에 대해서 간단하게 점검을 해보았습니다. 이번 글에서 다루는 내용은 마켓타이밍을 실험 설계하고 이에 따라 매매를 하는 것이 좋은지 안 좋은지 성과 공유를 하고자 합니다. 결론부터 이야기하면 아래와 같습니다.
- 2014년 2월 1일부터 2021년 11월 6일까지 3가지 제시한 마켓타이밍을 활용했다면 적어도 승률이 50% 이상은 나오는 매매 방법이라 할 수 있다.
- 2014년 2월 1일부터 2021년 11월 6일까지, BTC 종가 가격이 BTC 단순 이동평균선 3일, 5일, 10일, 20일 선 하나라도 높을 때 시장 참여하는 것은 수익 기회 손실을 최대한 줄일 수 있다.
- 2014년 2월 1일부터 2021년 11월 6일까지, BTC 종가 가격이 BTC 단순 이동평균선 3일, 5일, 10일 선 모두 높을 때 에만 시장 참여하는 것은 손실 관점에서는 제일 좋다고 볼 수 있다.
그렇다면 출발하기 전에 간단하게 Appendix 언급 후 실험 설계를 해보겠습니다.
Appendix - A. 가설 검정 Therory
Predicted 예측(Market Timing) |
|||
1 (거래함, 시장참여) |
0 (거래하지 않음, 시장 미참여) |
||
Actual 실제(비트코인등락율) |
상승(0%이상) | 참 True Positive |
거짓(type 2 error) False Negative |
하락(0%미만) | 거짓(type 1 error) False Positive |
참 True Negative |
- 비트코인이 상승할 때, 시장에 참여하면 이득인 것이니 참이며, 하락일 때 시장에 참여하지 않으면 자산을 지킬 수 있으니 좋은 경우라 할 수 있습니다.
- type 2 error의 관점에서 봤을 때 실제로 비트코인이 상승했는 데 시장에 참여하지 않으면 소외감을 느낄 수 있습니다. 이 오류가 많이 발생한다면 FOMO를 느끼고, 기회 손실이 발생한다고 생각할 수 있습니다.
- type 1 error의 관점에서 봤을 때 기분이 제일 불편하다고 볼 수 있습니다. 시장에 참여하고 있는데, 코인이 하락하는 경우 손실을 보기 때문입니다.
Appendix - B. 성과 지표 설명 - Accuracy(정확도), Precision(정밀도), Recall(재현율), F1-score
보통 머신러닝에서 학습하여 만든 모델에 대한 Classification Task에서 많이 나오는 이야기입니다. 이 성과 지표를 한 장으로 표현하면 아래 그림과 같습니다. Precision과 Recall에 대한 지표는 구글에 많이 검색하면 많이 나옵니다. '어떤 것을 중점적인 지표로 삼을 것이냐?'은 Task마다 다르다고 할 수 있습니다. 2가지 예시를 들어보겠습니다.
스팸 메일 같은 경우에는 실제로 스팸 메일(1)인데 정상 메일(0)로 잘못 예측하는 경우(False Negative) 보다 실제로 정상 메일(0)인데 스팸(1)으로 잘못 예측하는 경우(False Positive)는 작아야 하는 것이 더 중요합니다. 실제로 정말 중요한 메일이 스팸으로 예측돼버리면 손실이 일어나기 때문입니다. 그래서 Precision이 중요합니다.
암 환자를 잘 예측해야하는 경우에 대해 살펴보겠습니다. 실제로 정상 환자(0)인데 암 환자(1)로 잘못 예측하는 경우(False Positive)보다, 실제로 암 환자(1)인데 정상 환자(0)로 잘못 예측하는 경우(False Negative)인 경우가 훨씬 작아야 합니다. 있어서는 안 된다고 할 수 있겠죠. 그래서 Recall이 이 Task에서 중요합니다.
자, 그러면 이제 비트코인에 대입해서 지표를 제시하면 아래와 같습니다. 제가 생각하기에는 Precision이 높은 경우가 좋다고 할 수 있겠습니다만 종합적으로 보기 위해서 Precision과 Recall을 종합적으로 고려한 F1 score를 많이 보기도 합니다. F1 score은 Precision과 Recall의 조화평균입니다.
4. 실험 설계
위의 Appendix를 이해했다고 가정하겠습니다. 이 글에서는, Market Timing을 3개 정도 제시해보겠습니다.
- MT 1 : (비트코인 종가 > 비트코인 3일 단순 이동평균선) | (비트코인 종가 > 비트코인 5일 단순 이동평균선) | (비트코인 종가 > 비트코인 10일 단순 이동평균선)
→ 3, 5, 10일 선 하나라도 종가가 높으면 시장에 참여하는 방식입니다.
- MT 2 : (비트코인 종가 > 비트코인 3일 단순 이동평균선) | (비트코인 종가 > 비트코인 5일 단순 이동평균선) | (비트코인 종가 > 비트코인 10일 단순 이동평균선) | (비트코인 종가 > 비트코인 20일 단순 이동평균선)
→ 3, 5, 10, 20일 선 하나라도 종가가 높으면 시장에 참여하는 방식입니다. 20일을 추가한 이유는 변동성이 크기 때문에 조금 더 고려해볼 만한 이동평균선이라 생각하고 추가하였습니다.
- MT 3 : (비트코인 종가 > 비트코인 3일 단순 이동평균선) & (비트코인 종가 > 비트코인 5일 단순 이동평균선) & (비트코인 종가 > 비트코인 10일 단순 이동평균선)
→ 3, 5, 10일 이동평균선 모두 종가가 높으면 시장에 참여하는 방식입니다. 더 확실한 장세에 보수적으로 참가하겠다는 뜻이라고 생각하시면 됩니다.
5. BTC 마켓 타이밍 간단 통계 산출
산출 기간은 14년 2월 1일 부터 글 쓰는 시점 21년 11월 6일 시점입니다. MT 발생 횟수는 시장에 참여한 횟수를 뜻하고, MT 비율은 MT 발생 횟수에 총거래일을 나눈 값임을 알려드립니다.
MT 번호 | 총 거래일 | MT 발생횟수(시장 참여일) | MT 비율 |
MT 1 | 2,746 | 1,915 | 69.74% |
MT 2 | 2,746 | 2,061 | 75.05% |
MT 3 | 2,746 | 1,064 | 38.75% |
6. BTC 별 상승/하락 비율
전일 대비 상승률이 0%일 경우만 상승일 비율이라고 정의합니다. 0% 기준 상승 비율은 어느 한쪽에 편향되어 있지 않기 때문에 Reasonable 하다고 판단하여 0%를 기준 잡았습니다.
상승/하락율 기준 | BTC | 상승일 비율 | 하락일 비율 |
0% | BTC | 52.03% | 47.57% |
7. MT Performance 결과
3개의 MT에 대해서 결과는 다음과 같습니다.
MT | Accuracy | Precision | Recall | F1 score | MT 비율 |
1 (3 5 10 or) | 72.83% | 68.09 | 90.61 | 77.75 | 69.74% |
2 (3 5 10 20 or) | 69.04% | 64.28 | 92.07% | 75.71 | 75.05% |
3 (3 5 10 and) | 73.96% | 84.02 | 62.12 | 71.43 | 38.75% |
임의로 해석하면 아래 처럼 할 수 있겠습니다.
- 시장에 적절히 참여하면서 성과도 괜찮게 챙기고 싶다면? → MT 1 활용
- 좀 잃어도 괜찮으니까 시장에 최대한 많이 참여하면서 기대 손실을 줄이고 싶다면? → MT 2 활용
- 시장에 참여를 적게해도 괜찮으니까 손실이 나는 것이 정말 죽어도 싫다면? → MT 3 활용
- 과거 7년 동안 충분히 단순 이동평균선과 비트코인에만 집중해도 승률이 적어도 5할은 넘고 비트코인 자산을 우상향 시킬 수 있었다.
8. 결론 & 더 고려해야할 사항 & 추후에는?
- 7년이라는 기간은 어떻게 보면 짧고, 어떻게 보면 긴 기간이라고 할 수 있습니다. 하지만 제가 임의로 설계한 이 기간 안에 regime change가 일어났다고 생각할 수 있습니다. 자산 시장은 살아 움직이는 생명과도 같기 때문입니다. 주식에서 과거 오일 쇼크나, 미국의 금융 위기, 코로나 등 시장 참여자들의 성격과 비중 등등 계속 변해왔기 때문에, 코인도 큰 폭락 이후로 참여자들이 변할 수 있습니다.
- 다음 글에서는 이 기간을 조금 짧게(18.2.1~)하고 다른 요인을 추가하여 더 좋은 결과를 보일 수 있는지 보여드릴 예정입니다.
- 과거 7년엔 이러한 퍼포먼스를 보여줬지만, 미래에는 이렇게 되라는 법이 없긴 합니다. 하지만 본인이 비트코인 매매에 승률을 올리고 싶다면 이 방법을 고려해볼 수 있겠습니다.
- 상승과 하락의 기준이 꼭 0%으로 임의로 잡았습니다. 이 기준을 -0.5% 이런 식으로 변경하면서 상승/하락의 비중을 50 : 50으로 맞추어서 비교 분석하는 것도 좋은 방법입니다.
- 일별로 분석한 결과이지만 이 타임 프레임을 짧게 나누거나(1시간, 4시간 봉) 혹은 길게 Rolling 하여 응용해볼 여지가 있습니다.
- 승률은 이렇게 쉽게 계산할 수 있지만, 매수를 어떻게 하느냐에 따라서 손익비는 바뀌기 때문에 고려하지는 않았습니다.
<Reference>
아래 글은 한국 시장 Kospi, Kosdaq 마켓 타이밍에 대한 글입니다. 논리 구조는 같게 가져가되, BTC로 바꾸어 분석함을 알려드립니다.
https://cafe.naver.com/newsystock/2157
'Investment - Stock & Crypto > Quant Strategy' 카테고리의 다른 글
Mean Reversion(역추세 매매) - RSI 2 (1) (0) | 2022.03.27 |
---|---|
비트코인 마켓타이밍 분석 (3) (2) | 2021.11.14 |
비트코인 마켓타이밍 분석 (1) (2) | 2021.10.25 |
자산 배분 포트폴리오 - 8. Outro (0) | 2021.10.18 |
자산 배분 포트폴리오 - 7. 포트폴리오 전략 예시 (0) | 2021.10.16 |