학교

초등학교부터 대학교까지, 낮은 학년부터 순서대로 학습할 수 있습니다.

← 목록으로
대학교 2학년

백테스팅은 무엇일까?

주식시장에는 다양한 투자 방법이 있습니다. 어떤 사람은 주가가 떨어졌을 때 주식을 사고, 어떤 사람은 주가가 오르기 시작했을 때 주식을 삽니다. 그렇다면 어떤 방법이 더 좋은 투자 방법일까요? 이를 알아보기 위해 과거의 주식시장으로 돌아가 투자 방법을 시험해 볼 수 있습니다. 이러한 과정을 백테스팅(Backtesting)이라고 합니다. 백테스팅은 과거의 데이터를 이용해 특정 투자 방법이 얼마나 좋은 결과를 냈을지 확인하는 과정입니다. 실제 돈을 투자하는 대신 과거의 주가와 거래 기록을 이용해 가상의 투자를 진행하는 것입니다. 이를 통해 어떤 투자 방법이 과거에 수익을 냈는지, 얼마나 큰 손실을 겪었는지 등을 알아볼 수 있습니다. 예를 들어 어떤 투자자가 주가의 최근 50거래일 평균을 이용하는 방법을 생각했다고 가정해 봅시다. 최근 50거래일 평균이란 주식이 거래된 최근 50일 동안의 주가를 평균한 값입니다. 이 투자자는 주가가 이 평균보다 높으면 주식을 사고, 낮으면 주식을 파는 방법을 시험해 보고 싶어 합니다. 그렇다면 이 방법이 실제로 효과가 있는지 어떻게 확인할 수 있을까요? 가장 간단한 방법은 과거의 주가를 이용하는 것입니다. 과거 10년 동안의 주가를 날짜순으로 살펴보면서 미리 정한 조건에 따라 주식을 사고파는 것입니다. 예를 들어 하루의 거래가 끝났을 때 매수 조건이 충족되었다면 다음 거래일에 주식을 매수한 것으로 계산할 수 있습니다. 이러한 과정을 반복하면 10년 동안 몇 번의 거래가 발생했는지, 얼마의 수익이나 손실이 발생했는지 확인할 수 있습니다. 컴퓨터 프로그램을 이용하면 수천 번의 거래도 빠르게 계산할 수 있습니다. 가령 100만 원으로 투자를 시작했을 때 10년 후 자산이 160만 원이 되었다고 가정해 봅시다. 처음 투자한 돈보다 60%의 수익을 얻은 것입니다. 하지만 같은 기간에 아무런 거래도 하지 않고 주식을 계속 보유했다면 170만 원이 되었을 수도 있습니다. 이 경우 백테스팅한 방법은 수익을 냈지만, 단순히 주식을 보유하는 방법보다는 성과가 나빴던 것입니다. 물론 이 숫자들은 설명을 위한 가상의 사례입니다. 따라서 백테스팅에서는 단순히 수익이 발생했는지만 살펴보는 것이 아니라 다른 투자 방법과 비교하는 것도 중요합니다. 특히 주식을 사서 오랫동안 보유하는 방법과 비교하면 복잡한 투자 전략을 사용할 만한 가치가 있었는지 판단하는 데 도움이 됩니다. 또한 투자 과정에서 얼마나 큰 손실을 겪었는지도 확인해야 합니다. 예를 들어 두 투자 방법이 모두 10년 동안 50%의 수익을 냈다고 가정해 봅시다. 하지만 한 방법은 투자 도중 자산이 최대 10% 감소한 반면, 다른 방법은 최대 60% 감소했다면 어떨까요? 최종 수익률이 같더라도 투자자가 감당해야 했던 위험은 크게 달랐을 것입니다. 이처럼 투자 기간 중 자산이 이전 최고점에서 얼마나 크게 감소했는지를 최대 낙폭(Maximum Drawdown)이라고 합니다. 백테스팅에서는 최종 수익률뿐 아니라 최대 낙폭과 거래 횟수, 수익과 손실이 발생한 시기 등도 함께 살펴봅니다. 그런데 백테스팅에는 주의해야 할 점이 있습니다. 가장 중요한 것은 실제로 투자했을 때 발생했을 비용과 조건을 최대한 반영해야 한다는 것입니다. 주식을 사고팔 때는 거래 수수료가 발생할 수 있으며, 거래하는 시장에 따라 세금도 부과될 수 있습니다. 또한 주식을 원하는 가격에 정확히 사고팔 수 있다는 보장도 없습니다. 특히 거래가 활발하지 않은 주식은 실제 매매 가격이 예상과 달라질 수 있습니다. 따라서 백테스팅에서 이런 비용과 차이를 무시하면 실제로 얻을 수 있는 수익보다 결과가 좋게 나타날 수 있습니다. 과거의 데이터를 정확하게 사용하는 것도 중요합니다. 예를 들어 2020년의 주식을 매수할지 결정하는 상황이라면 2021년에 발표된 기업의 실적을 미리 알고 있었다고 가정해서는 안 됩니다. 실제 투자자라면 당시에는 알 수 없었던 정보이기 때문입니다. 이러한 실수를 미래 정보 사용 편향(Look-Ahead Bias)이라고 합니다. 또한 현재까지 살아남은 기업의 주식만 이용하면 결과가 왜곡될 수 있습니다. 과거에는 많은 기업이 주식시장에 상장되어 있었지만, 그중 일부는 경영 악화나 파산 등으로 상장폐지되었습니다. 이러한 기업을 제외하고 현재 남아 있는 기업만 분석하면 과거의 투자 환경이 실제보다 안전하고 수익성이 높았던 것처럼 보일 수 있습니다. 이를 생존자 편향(Survivorship Bias)이라고 합니다. 백테스팅에서 발생하기 쉬운 또 다른 문제는 과거의 결과에 지나치게 맞추어 투자 방법을 만드는 것입니다. 예를 들어 최근 50거래일 평균을 사용하는 방법이 만족스럽지 않자 40일, 30일, 20일 등으로 기준을 계속 바꾸었다고 가정해 봅시다. 수많은 조건을 시험하다 보면 과거에 매우 높은 수익을 냈던 조건을 발견할 수도 있습니다. 하지만 그 조건이 미래에도 좋은 성과를 낸다는 보장은 없습니다. 단지 과거의 특정한 주가 움직임에 우연히 잘 맞았을 가능성도 있기 때문입니다. 이러한 문제를 과적합(Overfitting)이라고 합니다. 이를 줄이는 방법 중 하나는 과거 데이터를 두 기간으로 나누는 것입니다. 먼저 앞부분의 데이터로 투자 방법을 만들고, 나머지 기간의 데이터로 그 방법이 여전히 효과적인지 확인하는 것입니다. 투자 방법을 만들 때 사용하지 않았던 기간에서도 좋은 결과가 나온다면 조금 더 신뢰할 만한 근거가 됩니다. 다만 이것 역시 미래의 수익을 보장하지는 않습니다. 무엇보다 백테스팅은 과거를 분석하는 방법이지 미래를 정확히 예측하는 방법이 아닙니다. 주식시장은 경제 상황, 금리, 기업의 실적, 투자자들의 행동 등 다양한 요인에 따라 달라집니다. 과거에 효과적이었던 투자 방법이 미래에는 효과를 잃을 수도 있습니다. 그렇다고 백테스팅이 무의미한 것은 아닙니다. 오히려 실제 돈을 투자하기 전에 자신의 투자 방법을 객관적으로 살펴볼 수 있다는 점에서 유용한 도구입니다. 막연한 느낌이나 기대에 의존하는 대신 과거의 데이터를 이용해 투자 방법의 장점과 약점을 확인할 수 있기 때문입니다. 결국 백테스팅은 어떤 투자 방법이 반드시 성공한다고 증명하는 과정이 아니라, 그 방법이 과거의 다양한 상황에서 어떻게 작동했는지 알아보는 과정이라고 할 수 있습니다. 과거의 결과가 미래를 보장하지는 않지만, 과거를 신중하게 분석하는 것은 더 합리적인 투자 판단을 내리는 데 도움이 될 수 있습니다.