MY INVEST STRATEGIES.
  • 투자전략
    • 트레이딩 전략
    • 자산배분 전략
  • 리뷰
  • 자주 묻는 질문
  • 먼트리호 전략 레터
No Result
View All Result
뉴스레터 가입
MY INVEST STRATEGIES.
뉴스레터 가입
  • 투자전략
    • 트레이딩 전략
    • 자산배분 전략
  • 리뷰
  • 자주 묻는 질문
  • 먼트리호 전략 레터
No Result
View All Result
MY INVEST STRATEGIES.
Home 자주 묻는 질문

백테스팅 과최적화를 피하는 5가지 방법

지금 당장 할 수 있는 과최적화 피하는 법

montreeho by montreeho
2023-02-09
in 자주 묻는 질문, 투자전략
Reading Time: 7 mins read
A A
Share on FacebookShare on Twitter

Table of Contents

  • 1. 백테스팅에서 과최적화를 피하는 5가지 방법
  • 2. 전략을 단순하게 유지하세요 (Simple is Best)
  • 3. 벡테스팅 데이터를 분할해서 사용하세요
  • 4. 교차 유효성 검증을 사용하세요
  • 5. 성능 지표를 확인하세요
  • 6. 과도한 변수 튜닝을 하지 마세요
  • 7. 결론
  • 8. 함께 읽으면 좋은 글들

백테스팅(backtesting)은 모든 알고리즘 트레이딩 전략 개발에서 중요한 단계중 하나입니다. 백테스팅(backtesting)은 말 그대로 과거 (back) 데이터를 사용하여 전략이 과거에 수행되었을 때를 시뮬레이션하고 이를 바탕으로 우리는 전략이 미래에 어떻게 될지 평가하고 선택합니다. 그러나 백테스팅 (backtesting)을 하면 할 수록 전략 성과에 욕심이 생기고 결국 과최적화의 함정에 빠집니다. 이번 포스팅에서는 누구나 할 수 있는 전략 개발에서 과최적화를 피하는 5가지 방법을 알아 봅니다. 이런 방법이 과최적화를 완벽히 피하게 할 순 없지만 소개하는 5가지 방법은 과최적화를 피하는 첫 걸음입니다. 전략 개발 시 꼭 활용해 보시기 바랍니다.

1 백테스팅에서 과최적화를 피하는 5가지 방법

백테스팅에서 과최적화를 피하는 5가지 방법

누구나 지금 당장 할 수 있는 과최적화 피하는 방법 5가지를 알려드립니다. 지금 바로 시작하세요. 5가지 방법을 적용하면 백테스팅에서 과도한 최적화의 위험을 줄이고 보다 강력하고 신뢰할 수 있는 거래 전략을 개발할 수 있습니다.

  1. 전략을 단순하게 유지하세요 (Simple is Best)
    다른 분야에서도 ‘단순함’이 강조되지만 특히 투자 분야에서 ‘단순함’의 힘은 상상 이상으로 큽니다. 가능하다면 일반적인 필터 (거래대금, 시가 총액 등)을 제외하고 주요 전략은 단순하게 유지하세요. 그리고 이론적 토대가 뒷받침되지 않는 복잡한 모델이나 전략을 사용하지 마세요. 단순한 전략일 수록 과최적화될 가능성이 적고 미래 구간 데이터 잘 맞을 가능성이 높습니다.
  2. 벡테스팅 데이터를 분할해서 사용하세요
    데이터의 일부는 전략 개발 및 튜닝에 사용하고 다른 일부는 최종 전략 평가에 사용합니다. 이렇게 하면 전략이 과거 데이터에 너무 가깝게 맞추는 것을 방지하고 전략이 미래에 얼마나 잘 수행될 것인지에 대한 보다 정확한 추정치를 제공합니다.
  3. 교차 검증을 사용하세요
    교차 유효성 검사에는 주식 데이터를 여러 그룹 (연도 등) 나누고 나머지 데이터에 대해 유효성을 검사하는 동안 다른 하위 집합에서 전략을 튜닝합니다.
  4. 성능 지표를 확인하세요
    투자 전략을 개발하면 각종 성능 지표 (누적수익률, CAGR, MDD, 샤프 비율 등)가 나오게 됩니다. 이러한 전략 운영 시 성능 지표를 정기적으로 확인하세요. 실제와 벡테스팅 결과 사이에 상당한 차이가 있는 경우 과최적화 되었다고 볼 수 있습니다. 
  5. 과도한 변수 튜닝을 하지 마세요
    적합한 변수를 찾는 것이 중요하지만 과도한 튜닝은 과최적화로 이어질 수 있습니다. 따라서, 변수(이평선 일자수, 이격도 등)를 튜닝 할 때에는 과도한 최적화를 방지하기 특정한 영역 (5~20일)을 정하는 걸 추천합니다.

이러한 단계를 따르면 백테스팅에서 과도한 최적화의 위험을 줄이고 보다 강력하고 신뢰할 수 있는 알고리즘 거래 전략을 개발할 수 있습니다.

2 전략을 단순하게 유지하세요 (Simple is Best)

백테스팅 전략을 단순하게 유지하는 것은 과도한 최적화를 피하는 핵심 원칙입니다. 간단한 전략은 이해하고 구현 및 평가가 더 쉽고 과도하게 최적화될 가능성이 적습니다. 

예를 들어 주식 거래 전략을 백테스팅한다고 가정합니다. 간단한 전략은 50일 이동 평균이 200일 이동 평균을 상회할 때 주식을 매수하고 50일 이동 평균이 200일 이동 평균을 하회할 때 주식을 매도하는 것입니다. 젠포트로 구현하면 아래와 같습니다. 아주 간단하며 이해가 쉽고 구현이 쉽습니다. 여러 지표와 규칙을 포함하는 보다 복잡한 전략에 비해 과도하게 최적화될 가능성이 적습니다.

하지만 결과는 어떨까요? 결과는 참담합니다. 즉, 전략이 ‘단순’하다고 하여 ‘성과’를 보장해 주지 않습니다. 다만 과최적화를 피할 수 있는 가장 강력한 방법임에는 틀림이 없습니다. 

3 벡테스팅 데이터를 분할해서 사용하세요

벡테스팅 데이터를 전략개발과 검증용으로 분할하여 사용하세요. 예를 들어 지난 5년 동안 회사의 일일 주가 데이터가 있다고 가정합니다. 이 데이터를 아래와 같이 기간별로 나누어 사용합니다. 

  1. 전략개발 용 데이터
    전략을 개발하는데 사용합니다. 전략 개발을 위해 데이터의 처음 4년(80%)을 사용합니다.
  2. 전략 검증용 데이터
    전략 성능 검증을 위해 나머지 1년(20%)의 데이터를 테스트에 사용합니다.할 수 있습니다.

이 방법을 통하면 실제 거래나 미래 구간에 가상 거래를 하지 않고서도 현재 개발된 전략 성과와 과최적화 여부를 가늠해 볼 수 있습니다. (보라색 선 전후를 보세요.)

젠포트 전략 과최적화

4 교차 유효성 검증을 사용하세요

교차 유효성 검사는 앞서 말씀드린 벡테스팅 데이터를 분할하는 방법을 더 세부적으로 나누어 수행하는 방법입니다. 교차 유효성 검증에서는 사용 가능한 데이터를 여러 하위 집합으로 나누고 나머지 데이터에 대해 유효성을 검사하는 동안 다른 하위 집합에서 전략을 개발하여 성능을 평가합니다. 

교차 유효성 검증
(출처: https://towardsdatascience.com/cross-validation-k-fold-vs-monte-carlo-e54df2fc179b)

예를 들어 지난 5년 (2018~2022) 동안 회사의 일일 주가 데이터 세트가 있고 이를 이용하여 전략을 만든다고 가장합니다. 

데이터를 연도별로 5개로 나누어 4개 데이터로는 전략을 만들고 나머지 1개 데이터로는 성능을 검증하는 것입니다. 교차 검증을 수행하는 방법은 다음과 같습니다.

  1. 데이터를 2018, 2019, 2020, 2021, 2022의 5개로 나눕니다.
  2. 2018, 2019, 2020 및 2021에서 전략을 개발하고 2022에서 전략 성능을 평가합니다.
  3. 2019, 2020, 2021 및 2022에서 전략을 개발하고 2018에서 전략 성능을 평가합니다.
  4. 2020, 2021, 2022 및 2018에서 전략을 개발하고 2019에서 전략 성능을 평가합니다.
  5. 2021, 2022, 2018 및 2019에서 전략을 개발하고 2020에서 전략 성능을 평가합니다.
  6. 2022, 2018, 2019 및 2020에서 전략을 개발하고 2021에서 전략 성능을 평가합니다.
  7. 전략 성능을 보다 정확하게 예측하려면 5회 반복 전체에서 성능 지표의 평균을 구합니다. 

5 성능 지표를 확인하세요

성능 지표를 모니터링하면 전략이 과도하게 최적화되지 않고 시간이 지남에 따라 일관된 수익을 생성할 수 있는지 확인할 수 있습니다. 예를 들어 전략의 샤프 비율이 높지만 최대 손실률도 높다면 전략이 과도하게 최적화되어 있고 너무 많은 위험을 감수하고 있음을 나타낼 수 있습니다. 이러한 경우 위험을 줄이고 성과를 개선하기 위해 전략 수정을 고려해야 합니다.

에를 들면, 다음 성능 지표를 사용하여 전략 성능을 평가할 수 있습니다.

  1. 샤프 비율
    전략의 위험 조정 수익률을 측정합니다. 평균 수익률을 수익률의 표준 편차로 나눈 값으로 계산됩니다. 샤프 비율이 높을수록 전략이 위험 단위당 더 높은 수익을 창출하고 있음을 나타냅니다.
  2. MDD (Maximum Draw Down)
    일정 기간 동안 전략에서 발생한 최대 손실을 측정합니다. 값이 낮을수록 전략이 덜 위험하다는 것을 나타냅니다.
  3. 연간 수익률
    1년 동안 전략에서 생성된 평균 수익률을 측정합니다.
  4. 평균 손익비
    총 손실에 대한 총 이익의 비율을 측정합니다. 손익비가 높을수록 전략이 더 수익성이 있음을 나타냅니다.

다양한 전략에 대한 평가지표를 젠포트에서 활용할 수 있습니다. 젠포트에서 제공하지 않는 유용한 평가 지표와 활용법을 이용하여 보다 체계적인 전략을 만들고 싶다면 ‘젠포트 전략제작6단계’ 을 고려해 보세요

젠포트 전략제작6단계 수강신청하기

젠포트 전략 평가항목

6 과도한 변수 튜닝을 하지 마세요

과도한 변수 튜닝을 하지 마세요

과도한 변수 조정은 백테스팅에서 과도한 최적화의 일반적인 원인입니다. 예를 들어 기술 지표로 이동 평균을 사용하는 주식 거래 전략을 백테스트한다고 가정합니다. 이동 평균은 거래일 수를 미세 조정하여 최상의 결과를 얻을 수 있습니다. 하지만, 특정 기간에 최적화된 수치는 결국 다른 기간에는 전략이 제대로 수행되지 않을 수 있습니다.

하지만, 전략 개발을 할 때, 변수 조정은 필요합니다. 따라서, 과도한 변수 조정을 방지하려면 조정할 수 있는 매개변수에 제한 (예. 5~20일, 5일간격)을 설정하고 앞서 말씀드린 교차 유효성 검증을 사용하여 전략 성능을 평가해야 합니다. 

7 결론

결론적으로 백테스팅은 모든 알고리즘 트레이딩 전략 개발에서 필수적인 단계이지만 과도한 최적화를 피하도록 주의하는 것이 중요합니다. 과도한 최적화는 전략이 특정 데이터 집합에서 잘 수행되도록 미세 조정되었지만 새 데이터로 일반화하지 못하는 경우에 발생합니다. 백테스팅에서 과도한 최적화를 방지하려면 데이터를 개발용과 검증용으로 분할하고, 교차 검증을 사용하고, 성능 지표를 모니터링하고, 과도한 변수 튜닝을 피하고, 전략을 단순하게 유지하는 것이 중요합니다. 이러한 원칙을 따른다면  상승 및 하락 시장 모두에서 이익을 창출할 수 있는 강력하고 신뢰할 수 있는 알고리즘 거래 전략을 개발할 수 있습니다.

8 함께 읽으면 좋은 글들

  • 젠포트 전략 제작 시작은 어떻게 할까?
  • 알고리즘 트레이딩 수익 극대화 5가지 방법
  • 젠포트 시스템 자동매매로 수익을 낼 수 있나?
Tags: 과최적화백테스팅

Related Posts

지금 당장 사용할 수 있는 마켓타이밍
리뷰

지금 당장 사용할 수 있는 마켓타이밍 (feat. 젠포트MT)

마켓타이밍이란 어떤 예측 방법에 따라 투자금을 금융시장 안팎으로 이동하거나 자산 클래스 간에 자금을 전환하는 행위입니다. 시장이 언제 상승하고 하락할지 예측할...

2023-05-25
젠포트 전략 제작 6단계 수익률
리뷰

젠포트 전략 제작 6단계 강의 수익률

어려웠던 2022년에도 수익을 올린 전략을 개발하고 싶은가요? 젠포트 어셈블을 피하며, 새롭고 유니크한 나만의 전략을 만들고 싶나요? 전략을 개발하고 수정/보완 하는...

2023-05-06
신용잔고 추세추종 전략
트레이딩 전략

신용잔고 추세추종 전략

체계적인 전략개발 전문가 먼트리호가 100여번의 벡테스팅을 통해 개발한 신용잔고 추세추종 전략을 공개합니다. 젠포트, 파이썬 자동매매, 손매매 등 어떤 방법으로 주식...

2023-04-22
캔들패턴 젠포트 수식 총정리
리뷰

캔들 패턴 젠포트 수식 총정리

캔들 패턴은 트레이더가 잠재적 추세 반전 및 시장 움직임을 식별하는 데 사용하는 가장 인기 있는 차트 분석 도구 중 하나입니다....

2023-04-10

Recommended

아마존 AWS 사용 꿀팁 총정리

아마존 AWS 사용 꿀팁 총정리

2023-01-24
미국 배당 투자 전망과 미국 배당 ETF 수익 BEST3

미국 배당 투자 전망과 미국 배당 ETF 수익 BEST3

2023-01-24
마크 미너비니 (Mark Minervini)의 ‘Trade Like a Stock Market Wizard’에서 얻은 교훈

마크 미너비니 (Mark Minervini)의 ‘Trade Like a Stock Market Wizard’에서 얻은 교훈

2023-02-04
래리 윌리엄스 장단기 투자의 비밀

장단기 투자의 비밀 | 래리 윌리엄스

2023-01-14
젠포트 전략제작 6단계 젠포트 전략제작 6단계 젠포트 전략제작 6단계
  • 투자전략
  • 리뷰
  • 자주 묻는 질문
  • 먼트리호 전략 레터
Mail me: montreeho911@google.com

© 2022 My Invest Strategies - Easier & Smart Investment Strategies by MONTREEHO.

No Result
View All Result
  • 투자전략
    • 트레이딩 전략
    • 자산배분 전략
  • 리뷰
  • 자주 묻는 질문
  • 먼트리호 전략 레터
Are you sure want to unlock this post?
Unlock left : 0
Are you sure want to cancel subscription?