본문 바로가기
주식투자

주식 백테스팅 뜻, 방법, 유의할 점 등

by 비케이퀀트 2023. 5. 24.

이 글에서는 백테스팅의 개념과 함께 수행방법, 유의할 점 등에 대해 알아봄으로써 백테스팅이 투자 결정을 내리는 데 어떤 도움을 줄 수 있는지 살펴보려고 합니다. 이제 막 투자를 시작했거나 이해도를 높이고자 하는 분들이 주식 투자 하실 때 백테스팅을 강력한 무기로 활용하실 수 있으면 좋겠네요.

 

 

백테스팅, 백미러라고 하지만 있는 것이 백 번 천 번 낫다!

 

백테스팅 준비하기

백테스트(Back Test)란 무엇일까요? 백테스팅은 과거 데이터를 사용해 투자 전략을 테스트하여 잠재적 성과를 평가하는 방법입니다. 미래에도 과거와 동일한 결과가 있을 거라는 보장은 없지만, 과거의 경험을 토대로 미래의 성과를 잠정적으로 예측해 본다는 것에 의미가 있을 것 같네요. 백테스트를 통해 전략의 논리를 검증하고, 전략에 대한 신뢰를 높일 수 있습니다.

 

본격적인 백테스팅에 앞서 필요한 준비사항들이 있습니다. 아래에서 살펴보시죠.

 

  • 1) 투자 전략 정의하기: 재무 목표, 위험 허용 범위, 투자 기간을 정하고, 그에 기반하여 명확한 목표와 규칙을 가진 전략을 개발합니다.

  • 2) 백테스팅을 위한 데이터 소스 식별: 백테스팅에 필요한 과거 시장 데이터에 액세스 할 수 있는 다양한 소스를 찾습니다. 신뢰할 수 있는 플랫폼, 웹사이트, 금융 데이터베이스를 탐색하여 정확하고 포괄적인 데이터를 수집하세요. 인베스팅닷컴이나 야후파이낸스, 그리고 증권사별 HTS를 활용하실 수 있습니다.

  • 3) 과거 데이터 수집: 과거 데이터를 수집하는 프로세스를 살펴보고 필요한 데이터를 수집합니다. 가격 데이터, 거래량 데이터, 수급 데이터, 기업 활동 등 전략에 필요한 데이터들을 수집해 주세요. 이때 데이터들은 잘 정제되고, 정확해야 합니다. 액면분할, 증자/감자, 상장폐지, 수정주가 등 매일의 주가에 큰 영향을 주면서 주가 산출의 기준 자체를 바꾸는 이벤트들을 고려해서 정합성을 갖춘 데이터를 확보하는 것이 필요한니다.

  • 4) 올바른 백테스팅 소프트웨어 또는 플랫폼 선택: 백테스팅 프로세스를 지원하는 다양한 백테스팅 소프트웨어와 플랫폼을 찾습니다. 엑셀, 파이썬, 혹은 별도의 서비스 등을 활용할 수 있는데요. 고려해야 할 기능과 자신의 필요와 기술 역량에 가장 적합한 것을 선택하시면 됩니다. 저는 주로 젠포트를 많이 활용하고, 지난 글에서 퀀터스, 포트폴리오 비쥬얼라이저도 소개해 드린 적이 있습니다. 세 가지 툴 사용방법을 다룬 지난 포스팅 링크 달아드릴게요. 원하시는 분들은 참고하시기 바랍니다.

2022.12.07 - [주식투자] - 젠포트 사용법

 

젠포트 사용법

퀀트투자 플랫폼인 젠포트는 뉴지스탁에서 운영하고 있는 자동매매 툴이다. 2019년 강환국 님을 통해 퀀트 투자의 세계를 알게 되었고, 젠포트 역시 처음 접하게 되었다. 코딩을 못하는 사람이라

mproject2017.tistory.com

2022.12.23 - [주식투자] - 퀀터스 사용법 및 무료 소형주 퀀트 공개 전략 (feat. 강환국)

 

퀀터스 사용법 및 무료 소형주 퀀트 공개 전략 (feat.강환국)

지난 번 젠포트 소개에 이어 오늘은 또 다른 퀀트 투자 툴인 퀀터스를 소개해 드리려고 합니다. 저는 퀀터스를 강환국 님 유튜브 영상을 통해 알게 되었는데요. 비교적 신생 업체인 것 같습니다.

mproject2017.tistory.com

2022.12.24 - [주식투자] - 퀀트 투자, 자산배분 전략 개발 시 유용한 사이트 Top 7

 

퀀트 투자, 자산배분 전략 개발 시 유용한 사이트 Top 7

오늘은 퀀트 투자, 동적/정적자산배분 전략을 활용할 때 참고할 수 있는 유용한 사이트를 소개해 드리려고 합니다. 투자 전략을 개발할 때 필수적인 백테스트용 웹사이트, 직장인으로서 손쉽게

mproject2017.tistory.com

 

백테스트 수행하기

백테스트 수행은 과거 데이터를 기준으로 내가 개발한 전략을 적용했을 때 어떤 결과가 나왔는지 진입 및 청산규칙에 따라 계산해 보는 과정입니다. 기간, 매수/매도 조건, 진입/청산 가격, 투자금, 종목당 투자금액, 우선순위, 손익절 기준 등 다양한 조건을 고려해 시뮬레이션하면 됩니다.

 

백테스트 시에는 진입 및 청산 규칙, 포지션 크기 조정, 리스크 관리와 같은 요소를 정확하게 반영하는 것이 중요합니다. 과거 데이터를 사용해 내 전략의 주요 성과를 계산합니다. 이때 CAGR과 MDD는 가장 기본적으로 살펴보는 항목입니다. 그 외에도 승률, 손익비, 수익/손실월 개수 등 다양한 지표를 계산해 전략의 성과를 분석할 수 있습니다.

 

이렇게 백테스팅은 과거의 상황에서 전략이 보인 성과를 계산해 보는 행위이기 때문에, 마치 백미러를 통해 교통상황을 가늠하는 것과 비슷합니다. 어떤 사람들은 전략의 과거 성과가 미래 성과를 보장하지 않는다는 이유로 백테스트 무용론을 이야기하기도 하는데요. 저의 생각에는 그래도 백미러가 있는 편이 없는 것보다 백 배 천 배 나은 것 같습니다.

 

아래는 실제로 젠포트를 활용해 다양한 전략을 백테스팅해 본 결과를 담은 글입니다. 실제 전략을 토대로 백테스트 했기 때문에 이해하기가 더 쉬우실 것 같아요. 필요하신 분들은 글 참고하시기 바랍니다.

 

[젠포트 활용 주식 전략 더보기]

1) 골든 크로스가 발생하면 주가가 오를까? 3일 보유 전략 백테스트
2) 젠포트 활용 주식 시즈널리티 무료공개전략
3) 젠포트 무료 샘플 가치주 전략 백테스트 및 업그레이드
4) 저평가 주식 찾는법 및 백테스트 (PBR, PER, PSR, PCR, ROE 활용)
5) 변동성 돌파 전략 단점 (feat.젠포트 백테스트)
6) 단타 전략 노하우 (feat.젠포트)
7) 젠포트 사용법
8) 신고가 돌파 양방향 ETF 전략 무료 공개 (젠포트)

 

백테스팅의 함정과 고려사항

다음으로 백테스팅 시 유의해야 할 사항에 대해 알아보겠습니다.

 

  • 1) 현실적인 가정의 중요성: 백테스팅 시 현실적인 가정을 설정하는 것이 중요합니다. 예를 들자면, 지나치게 짧은 손익절라인은 변동성으로 인한 휩소, 잦은 거래로 인한 수수료 등으로 인해 실제 운용 시 백테스트 대비 악화된 성과를 보일 수 있습니다. 비현실적인 가정은 잘못된 결과와 잠재적인 위험으로 이어질 수 있다는 점 염두에 두세요.

  • 2) 과최적화 방지: 과거 데이터에 전략을 과도하게 맞추는 것의 위험성과 그것이 미래의 성과에 어떤 부정적인 영향을 미칠 수 있는지를 생각해야 합니다. CAGR 1%를 더 올리기 위해, 또는 MDD 1%를 낮추기 위해 특정 조건의 변수를 소수점 단위로 조정하는 경우가 있습니다. 물론 과거 데이터 기준으로 최고의 성과를 내는 전략을 만들고 싶은 마음은 충분히 이해할 수 있습니다. 다만 조건이 복잡하고 세부적으로 변할수록 과거 데이터에 과도하게 최적화된, 따라서 미래에는 통하지 않을 가능성이 높은 전략이 됩니다. 실제로 최근 1년간 시장에 최적화된 전략을 개발했더라도 3년 정도 과거 데이터를 기준으로 다시 백테스팅 해보면 무너지는 경우가 많습니다. 시장 상황에 관계없이 꾸준히 성과를 낼 수 있는 전략을 찾는 게 더 중요하겠죠?

  • 3) 거래비용과 슬리피지 고려: 주식 투자에서 수수료와 슬리피지는 꽤나 중요합니다. 특히 하루 단위로 잦은 거래를 하는 단타 전략이라면 그 영향은 더욱 커지죠. 따라서 백테스팅 시에 거래 수수료뿐만 아니라 슬리피지도 충분히 고려하는 것이 필요합니다. 슬리피지란 실제 매매 시 거래량 부족 등에 따라 발생하게 되는 숨겨진 비용인데요. 호가 내 매수 또는 매도 가능한 물량이 부족해서 다음 호가로 넘어가야 하는 경우 백테스트 시 고려한 것보다 높은 가격에 매수 혹은 낮은 가격에 매도해야 하는 일이 생깁니다. 이때 슬리피지가 발생하는 것입니다. 따라서 백테스팅 시 되도록 현실적인 수준 혹은 좀 더 보수적인 수준으로 거래비용 및 슬리피지를 설정하는 게 좋습니다.

 

백테스팅 활용하기

주식 투자 스타일에 따라 백테스팅은 다양하게 활용될 수 있습니다.

 

가치투자자라면 펀더멘털 분석을 기반으로 전략을 만들고 백테스트를 할 수 있습니다. 기업의 재무 건전성, 경쟁 우위, 산업 역학 등을 토대로 전략을 개발하고, 백테스팅을 통해 개발한 전략을 보완해 나갈 수 있습니다. 기술적 분석 기반 투자자라면 가격 패턴, 추세, 수급 지표 등을 활용해 전략을 개발하고 백테스트 해볼 수 있습니다. 마지막으로 자산배분 관점에서 다양한 전략을 개발해 포트폴리오 다각화를 구성하고, 포트폴리오 자체를 백테스트 해 볼 수 있습니다. 예상해 보건대 상관관계가 낮은 전략을 여러 개 동시에 운용하는 것은 MDD를 낮추는데 상당히 큰 효과가 있을 것입니다.

 

백테스팅은 이렇게 자신의 논리적 가정을 실제 숫자와 결과로 확인해 보고 지속적으로 성과 개선을 위해 연구해 나가는 과정이라 할 수 있겠습니다.

 

마무리

이번 글에서는 주식 투자에 유용한 도구로서 백테스팅의 개념과 준비사항, 수행방법, 유의사항, 활용방법 등에 대해 살펴보았습니다. 백테스팅은 투자자에게 필수적이고도 유용한 도구지만, 절대적인 믿음을 가지고 과용하면 과최적화의 늪에 빠질 수 있습니다. 따라서 다른 리서치 및 분석 방법과 함께 사용해야 한다는 점을 기억하세요. 항상 시장은 바뀌기 마련입니다. 시장이 진화함에 따라 전략을 지속적으로 학습하고 조정해 나가기 바랍니다. 백테스팅은 백미러와 같은 필수적인 도구입니다. 백테스트 1만 번이면 새로운 세계가 열릴 수도 있습니다. 그럼 모두 성투하세요!

 

댓글