GIL's LAB

실험 3. 이전 종가의 등락폭을 가지고 미래 종가의 등락폭 예측하기 (3) 실험 결과 해석 및 백테스팅 본문

퀀트 투자/실험 일지

실험 3. 이전 종가의 등락폭을 가지고 미래 종가의 등락폭 예측하기 (3) 실험 결과 해석 및 백테스팅

GIL~ 2021. 9. 8. 22:49

이번 포스팅에서는 세 번째 실험 결과를 해석하고, 이에 따른 백테스팅을 진행하도록 하자. 

실험 설계를 보고 오면 이해가 좀 더 쉬울 듯 하다. 

실험 결과 정리

먼저 실험 결과의 raw 데이터는 아래와 같다.

실험3_이전종가등락폭을가지고미래종가등락폭예측하기_KOSDAQ결과.csv
0.04MB
실험3_이전종가등락폭을가지고미래종가등락폭예측하기_KOSPI결과.csv
0.04MB

 

MAE 분포를 히스토그램으로 먼저 확인하자. 

코스피 종목 MAE에 관한 히스토그램
코스닥 종목 MAE에 관한 히스토그램

코스피와 코스닥 종목 모두 MAE가 0 ~ 4 정도의 값에서 왔다갔다하고, 검정을 해보진 않았지만 평균 2 정도의 정규 분포를 따르는 것 같다. 라벨이 종목의 등락폭(%)이라는 것을 감안했을 때, 오차가 2라는 것은 등락 자체를 틀리게 맞추는 경우도 많다고 해석할 수 있을 듯 하다. 결국 단타 예측은 쉽지 않다는걸 다시 한 번 확인한다.  

lag의 분포도 확인해보자.

KOSPI 종목의 lag 분포
코스닥 종목의 lag 분포

예상한대로 lag가 1인 경우가 대다수를 차지하는 것을 확인했다. 결국 전날 종가를 가지고 다음날 종가를 거의 비슷하게 맞추는 수준에서 모델이 학습된 것이라 예상된다. 

 

백테스팅

이번엔 종목별로 최적의 lag를 갖는 모델을 2019년 9월 1일부터 2020년 8월 31일까지의 데이터로 학습한 뒤, 2020년 9월 1일부터 2021년 8월 31일까지의 종가의 등락폭을 예측하자. 그리고 2020년 9월 1일부터 시작해서 다음날의 종가의 등락폭에 대한 예측값을 가지고 투자를 해보는 시뮬레이션을 해보자. 예를 들어, 실험에서 삼성전자의 종가의 등락폭을 예측하는데 lag가 2였을 때 가장 좋았다면, lag를 2로 하는 학습 데이터 (기간: 2019년 9월 1일 ~ 2020년 8월 31일)를 만들어서 종가의 등락폭을 예측하는 모델을 만들고, 이 모델로 2020년 9월 1일부터의 등락폭을 예측한다. 

 

이 시뮬레이션의 조건은 다음과 같다. 

  • 2020년 9월 1일에 가지고 있는 금액은 1억원
  • 오를 것이라 예상되면 돈이 되는대로 모두 구매하고, 떨어질 것이라 예상되면 모두 판매
  • 마지막날 가지고 있는 주식은 모두 판매

 

시뮬레이션의 결과를 살펴보자.

base_profit_result는 각 종목별로 백테스트를 했을 때의 수익(%)으로 구성된 시리즈이다.

살펴보면 평균이 41이고 25%가 0임을 볼 수 있다. 즉, 이 전략을 취하면 75%는 투자에 성공했다는 이야기가 되고, 평균적으로 40%의 이익을 취했다는 이야기가 된다. 심지어 최대치의 경우에는 2900%라는 경이로운 투자 이익을 취할 수 있다. 그런데 생각해보니 2020년 후반에는 장이 워낙 좋아서 돈을 잘 벌었을 것이다 (나빼고...).

 

그러면 2020년 9월 1일에 주식을 구매해서 2021년 8월 31일에 몽땅 팔아버리는 존버전략과 비교해보자.

각 종목에 대해, 여기서 제시한 전략의 수익(%)에서 존버전략의 수익(%)을 뺀 결과의 통계량은 다음과 같다.

대부분 종목에서 그냥 1년 버틴게 더 좋다는 결론이 나왔다.

이번 실험도 좋은 결과로 이어지진 못했지만, 블로그가 나아갈 방향을 잡아준 듯 하다 (필자의 장점: 합리화)

최대한 장기투자 전략 위주로 실험을 진행해봐야겠다.

 

실험 결과 해석 및 백테스팅에 사용한 소스코드는 아래에서 받을 수 있다.

실험 3. 이전 종가를 가지고 미래 종가 예측하기_결과해석 및 백테스트.ipynb
0.04MB

 

수집하고 싶은 금융 데이터나 실험하고 싶은 퀀트 관련 아이디어가 있으면 댓글로 남겨주세요! 
관련 포스팅을 준비하도록 하겠습니다!

 

 

Comments