백테스트에 대해 알아보자!

백테스트(Back Test)란 글자 그대로 과거로 돌아가서(Back) 지금의 전략이 효과가 있는지 테스트해 보는 것입니다. 오늘은 이런 백테스트의 개념 및 주의 사항에 대해 알아보도록 하겠습니다.




1. 백테스트란 무엇일까?

백테스팅에서-mdd를-나타낸-그림
백테스트 결과로 나온 mdd를 나타낸 그림

여러분은 로또 1등 번호를 기억한 다음 과거로 돌아가고 싶은 적이 있으신가요? 아니면 대박 주식 정보를 가지고 과거에 돌아가서 커다란 수익을 얻는 상상을 해본 적이 있으신가요? 물론 현실에서는 불가능 하지만 이와 비슷한 방법이 하나 있습니다. 바로 백테스트(Back Test)입니다.

백테스트란 현재 개발한 투자 전략을 과거에 실제로 투자했다면 어떤 결과를 가져올지 테스트해 보는 것입니다. 예를 들어서 시가총액은 하위 20%면서(소형주) PER과 PBR은 낮고(가치주) 최근 6개월 동안 주가가 많이 상승한 종목(추세가 강한 종목)을 골라 투자하면 어떻게 될까라고 가정을 하고 과거 데이터에서 돌려보는 것이지요.

주로 주식 시장 대비 수익률이 어떠한지, MDD는 어떻고 변동성은 얼마나 되는지를 체크해 보며 백테스트상 결과가 좋다면 실전에 투입해보기도 합니다.

예전에는 과거 데이터를 구하기 쉽지 않았고 이것을 실제로 테스트할 여건이 좋지 않았으나 요새는 인터넷의 발달과 백테스트 서비스의 발달로 일반 사람들에게 점차 대중화되는 추세입니다.




2. 백테스트를 왜 해야 하나?

1) 돈을 잃지 않기 위해서

그냥 감이 좋아서 새로운 전략에 올인했는데 실전에서 반토막 나면 얼마나 슬프겠습니까? 그래서 돌다리도 두들기는 심정으로 내가 만든 대박 전략을 백테스트 돌려보았으나 결과가 꽝이면 가슴을 쓸어내리며 “아… 실제로 했으면 한강 물 입수 번호표 뽑으러 가야겠네.”라고 안도의 숨을 내쉬겠죠?



2) 좋은 수익을 얻기 위해서

시장 수익(베타)을 얻기 위해선 그냥 시장 추종 ETF를 사면 됩니다. 그럼에도 불구하고 고생스럽게 전략을 만들고 백테스트를 돌리는 것은 시장 수익보다 더 먹어보겠다는 마음이 있기 때문입니다.

아니면 더 벌진 못해도 시장보다 변동성이 적으면서 안정적으로 수익을 내고 싶기 때문입니다. 그래서 이런저런 요소도 넣어보고 매수 매도 타이밍도 바꿔보면서 전략을 개발하고 그 결과 기똥찬 전략을 발굴하면 실전에 투입하는 것이지요.



3) 개발한 전략을 꾸준히 운용하기 위해서

물론 백테스트 결과가 미래 수익을 보장해주진 않습니다. 시장은 살아있는 생물과 같아서 예전의 시장과 현재의 시장이 다르고 이곳은 돈을 벌기 위해 눈이 시뻘게진 인간들이 피 튀기며 싸우는 전쟁터이기 때문이지요.

그러나 백테스트를 통해 전략을 검증하고 자금을 투입하는 것과 그렇지 않은 것은 실제 운용에서 큰 차이가 있습니다. 백테스트를 한 전략은 이것을 통해 투자 전략의 특성을 파악하였기 때문에 여러 하락들을 만나도 전략을 포기할 가능성이 적으나, 백테스트 없이 투자한 경우 예상과 다른 급락이 오면 금방 전략을 포기하게 될 것이니까요.




3. 백테스트에서 고려해야 할 점

백테스트도 당연히 단점이 있습니다. 이 점을 간과하고 백테스트상 결과가 환상적이어서 여기에 전재산을 올인하면 패가망신하기 딱 좋습니다. 그러므로 백테스트를 실시하고 결과를 해석할 때는 다음의 사항을 고려해봐야 합니다.


1) 시장의 변화

시장은 생물이라는 말이 있습니다. 즉, 예전의 시장과 현재의 시장은 다르다는 말입니다. 예전에는 정보가 빨리 퍼지지도 않았고 거래가 지금처럼 쉽지도 않았으며 상하한가 범주도 달랐습니다.(예전엔 15%, 지금은 30%) 또 시장에 참여하는 참가자들의 성향도 예전과 지금은 다릅니다.

하지만 이런 것들을 생각하지 못한 채 그저 예전엔 통했기 때문에 앞으로도 통할 것이라는 생각으로 실전에 자금을 투입한다면 아마 혹독한 결과를 받아들여야 할지도 모릅니다.



2) 생존편향

이것이 무슨 말일까요? 지금 우리의 관점에서는 어떤 종목이 상장폐지가 되고 어떤 것이 거래 정지인지 알고 있습니다. 하지만 예전으로 돌아가서 백테스트를 할 때 이런 종목들을 빼고 현재 거래되는 종목만 가지고 백테스트를 하는 경우가 많습니다. 그렇게 된다면 백테스트 결과는 심각하게 오염될 것입니다.

이것은 상폐될 종목들만 기가 막히게 피해 가면서 전략을 돌린 것이므로 결과가 실제보다 더 좋게 나올 확률이 높습니다. 이 결과만 믿고 실전에 투입하게 되면 백테스트와 실제 결과가 다른 것이 안 봐도 비디오겠죠?



3) 백테스트에 활용된 정보의 양

이게 무슨 말일까요? 동전 던지기를 한다고 해봅시다. 앞이 나올 확률과 뒤가 나올 확률은 둘 다 50%입니다. 그런데 동전을 10번 던졌는데 앞이 7번 나왔고 뒤가 3번 나왔으니까 동전 던지기의 확률은 7:3이라고 주장해야 할까요? 그렇지 않습니다.

동전을 10만 번, 100만 번, 1,000만 번 무수히 많이 던지면 거의 50:50이 나옵니다. 여기서 중요한 것은 얼마나 충분히 많이 던졌는가입니다. 10번만 던지면 결과가 틀리게 나오듯이 얼마나 많은 사례를 반영했느냐가 백테스트의 신뢰도를 가져옵니다.

혹시 여러분들은 100년 동안 돌린 백테스트는 신뢰도가 높고, 1년간 돌린 백테스트는 신뢰도가 낮다고 생각하시나요? 그렇게 생각하신다면 틀렸습니다. 우리는 백테스트에 쓰인 자료의 연도를 보지 말고 자료의 수를 고려해야 합니다.

예를 들어 100년짜리는 연봉자료를 사용했고 1년짜리는 분봉을 사용했다고 해봅시다. 그럼 100년짜리 백테스트는 경우의 수가 100개밖에 안되지만 1년짜리는 경우의 수가 101,400개나 됩니다. 당연히 분봉으로 돌린 백테스트가 사례가 많기 때문에 신뢰도가 높겠죠?

그런데 간혹 이런 것은 배제한 채 월봉 자료로 10년을 돌려보고 CAGR 20%, MDD 15% 전략이라고 호들갑을 떠는 경우가 있습니다. 만약 이런 것을 간과한 채 결과만 믿고 실전에 돌렸다가 얻어터진 경우는 너무나도 많습니다. 여러분들의 주의를 요합니다.



4) 과최적화

백테스트의 세계에서 농담 삼아하는 말이 ‘내가 하면 우수전략, 네가 하면 과최적화’라는 말이 있습니다. 그만큼 백테스트를 할 때는 과최적화를 조심해야 한다는 말입니다.

예를 들어 고등학교 2학년 학생 중 이번 기말고사 수학시험에서 누가 90점을 넘을 것인가를 예측한다고 해봅시다. 당연히 하루의 공부시간과 1학년부터 지금까지의 성적 추이를 계산해서 추측해야 할 것입니다.

그런데 이것만으론 정확하지가 않아서 좀 더 욕심을 부려 옛날에 90점을 넘긴 학생 중 한 명이 키가 175에 회식 뿔테 안경을 끼고 흰색 나이키 신발을 신었다고 해서 이런 요소를 모두 평가 요소에 넣는다면 당연히 결과는 엉망일 것입니다.

마찬가지로 PER 지표를 가지고 백테스트를 하는데 1.00부터 10.00까지 소수점 둘째 단위까지 테스트하고 그중 1.57과 4.72가 제일 높게 나왔다고 해서 PER 1.57과 4.72인 주식만 골라서 거래한다면 결과는 뻔하겠죠?




4. 결론

백테스트는 새로 만든 전략의 유효성을 검토하고 실전에서 실수를 줄여주며 시장보다 좋은 수익을 얻을 수 있는 방법을 알 수 있는 좋은 테스트입니다. 투자를 한다면 누구나 간단한 백테스트를 할 수 있어야 하며 다른 사람의 백테스트 결과를 해석할 수 있어야 합니다.

하지만 당연히 백테스트 상 주의점도 숙지하고 있어야 투자 시 손실을 피할 수 있겠죠? 다음 포스팅에서는 참고할만한 백테스트 사이트와 백테스트 방법에 대해 알아보도록 하겠습니다.


백테스트를 손쉽게 할 수 있는 사이트 소개

리밸런싱(Rebalancing)이란 무엇일까?

Leave a Comment