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

승리하는 알고리즘 트레이딩 시스템
투자전략

케빈 데이비의 “승리하는 알고리즘 트레이딩 시스템 구축” 핵심 요약 및 전략 분석

오늘은 많은 트레이더, 특히 시스템 트레이딩에 관심 있는 분들에게 큰 영감을 줄 수 있는 책, 케빈 데이비(Kevin J. Davey)의 "Building...

2025-05-01
거래량투자기법
트레이딩 전략

거래량 투자 기법 (VPA)으로 삼성전자 매매 전략 세우기: 실전 우선순위 방법

1. 서론 금융 시장에서 성공적인 투자나 트레이딩을 위해서는 단순히 가격 변동만을 보는 것이 아니라, 거래량과 가격 간의 상관관계를 이해하는 것이...

2024-10-01
주식투자 ROC지표 완변가이드
투자전략

ROC지표를 활용한 주식 투자 전략: 모멘텀 분석으로 수익 극대화하기 (feat. 젠포트)

주식 시장은 전 세계 수많은 투자자들에게 기회와 도전의 장을 제공합니다. 이러한 시장에서 성공적인 투자를 위해서는 다양한 분석 도구와 전략이 필요합니다....

2024-08-17
젠포트 자동매매 하면서 얻은 교훈
자주 묻는 질문

젠포트 자동매매 하면서 얻은 교훈

젠포트 자동매매를 사용한지 횟수로 7년이 되어갑니다. 처음 젠포트 자동매매를 시작했을 때는 많은 분들이 사용하지 않았고, 강의나 자료가 없어서, 생소한 시스템에...

2024-03-27

Recommended

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

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

2023-02-09
한국 배당 성장주 젠포트 퀀트 전략

한국 배당 성장주 젠포트 퀀트 전략

2023-01-24
신용잔고 추세추종 전략

신용잔고 추세추종 전략

2023-04-22
젠포트 중소형 주도주 퀀트 전략

젠포트 중소형 주도주 퀀트 전략

2023-01-18
젠포트 전략제작 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?