
백테스팅이란?
백테스팅은 새로운 시장이나 전략에 입문했을 때 수익을 낼 수 있는지 없는지를 미리 시험해 볼 수 있는 좋은 수단입니다. 전략을 미리 시험해 봄으로써 자가평가를 진행할 수 있고 실제 트레이딩을 하기 전에 전략을 수정할 수도 있습니다.
백테스팅의 장점은 실제 자금을 잃지 않고 시험할 수 있다는 것입니다. 시뮬레이션 환경에서 소프트웨어를 이용하여 전략에 대한 최적화를 진행할 수 있고 몇 번을 시도해도 손해를 볼 수 없기 때문에 새로운 시장이나 전략에 최대한 신중하게 접근할 수 있습니다. 백테스팅 결과가 좋은 경우, 트레이더는 실제 환경에 해당 전략을 적용해보고 전략에 대한 지속적인 평가를 진행하면서 전략을 최적화 할 수 있습니다.
백테스팅의 주요 목적은 특정 전략의 위험과 잠재적인 수익성을 분석하는 것이며 잠재적 수익을 극대화하기 위해 통계적 피드백을 기반으로 전략을 최적화하고 개선할 수 있습니다. 잘 수행된 백테스트는 해당 전략이 실제 트레이딩 환경에서 구현될 때 전략의 유효성을 검토하는 데 도움이 될 수 있습니다.
백테스팅은 특정 전략의 유효성과 지나친 리스크를 미리 보여주는 역할을 하기도 합니다. 백테스팅을 실행해보고 수정을 해도 결과가 좋지 않거나 결과가 너무 안 좋은 경우는 해당 전략을 폐기하고 새로운 전략을 찾아보는 것도 좋은 방법입니다.
백테스팅에도 약점이 있는데 시장 상황이 달라지는 것은 어쩔 수 없다는 점입니다. 테스트가 진행된 상황과 실제로 전략을 적용한 시장 상황이 다른 경우 전략의 성과는 전혀 다를 수 있습니다. 그러므로 백테스팅을 할 때 시장 상황을 잘 파악하는 것도 중요합니다.
백테스팅의 진행 방법
백테스팅은 전략이 과거의 상황에 효과가 있다면 현재의 상황에도 효과가 있을 수 있다는 것을 가정합니다. 즉, 현재의 상황에 맞지 않는 데이터를 사용하면 백테스팅은 유의미한 결과를 내지 않을 수 있습니다. 그렇기 때문에 백테스팅을 할 때는 현재와 가장 비슷한 과거의 시장 환경을 반영하는 것이 중요합니다. 하지만, 디지털 자산 시장은 비교적 신생 시장이고 지속적으로 변화하기 때문에 현재와 비슷한 과거의 시장 환경을 반영한 데이터를 찾는 것은 쉽지 않을 수도 있습니다.
백테스팅 전략을 결정하기 전에는 찾고자하는 목표를 설정하는 것이 가장 중요합니다. 실행 가능한 전략의 기준, 전략이 실패하는 기준을 정하고 분석을 진행한다면 결과를 정확하고 편견없이 받아들이는 것이 가능합니다.
백테스팅은 비싼 소프트웨어를 이용하여 진행할 수도 있지만, 트레이딩뷰에서 전략을 생성하고 시뮬레이션을 진행한다면 비용없이 백테스팅을 진행하는 것이 가능합니다. 트레이딩뷰에는 이용자들이 게시한 다양한 전략들이 이미 존재하므로 테스팅해보시는 것도 추천드립니다. 물론 소프트웨어를 사용하지 않고 과거 차트를 기반으로 본인의 전략을 적용해보고 성과를 분석하는 것도 가능한 방법입니다.
백테스팅 예시
간단한 전략을 백테스팅 하겠습니다.
예시 전략은 다음과 같습니다.
• 차트는 4시간봉 BTCUSDT 차트를 이용한다.
• RSI가 50에 도달했을 때 종가에서 매수를 한다.
• RSI가 70에 도달했을 때 종가에서 매도를 한다.

2021년 2월 7일 21시를 시작으로 해당 전략을 적용했을 때 총 3번의 매수와 3번의 매도가 발생했습니다.
첫 번째 신호: 2월 7일 21시 / 37,911.74 USDT에 매수
두 번째 신호: 2월 8일 21시 / 43,783 USDT에 매도
세 번째 신호: 2월 15일 9시 / 47,096 USDT에 매수
네 번째 신호: 2월 18일 1시 / 52,139 USDT에 매도
다섯 번째 신호: 2월 22일 17시 / 53,344 USDT에 매수
여섯 번째 신호: 3월 9일 9시 / 53,796 USDT에 매도
백테스팅 결과 해당 전략은 모든 매수/매도에서 수익이 발생할 수 있었습니다. 하지만, 해당 전략의 문제점은 분명 있습니다. RSI가 70을 돌파하고 매도를 한 뒤 무포지션인 상태에서 RSI가 50 이상의 지점에서 다시 반등을 하면서 크게 상승을 할 수 있는 구간을 놓칠 수 있다는 점입니다. 또한, 다섯 번째 신호에서처럼 급락을 하면서 RSI가 50을 하방 돌파한 뒤 다시 RSI가 70을 도달할 때까지 꽤 오랜 시간이 걸린 것을 확인하실 수 있습니다. 즉, 해당 전략은 상승장에서는 안정적인 수익을 낼 수 있지만 큰 수익을 내기는 어렵고 하락장에서는 자금이 오랜 기간 동안 묶여있거나 손해를 볼 수 있는 전략입니다. 해당 전략의 문제점을 수정하기 위해서는 어떤 것들이 필요할까요?
한 달이라는 짧은 기간 동안 각 거래에서 15%, 10.7%, 0.8%의 수익이 나온 예시지만, 이는 강한 상승장이었기에 가능하기도 했습니다. 또한, 굉장히 짧은 기간을 예시로 들었기 때문에 장기적으로는 정확하지 않을 수 있습니다. 그러므로 해당 전략은 수정을 한 뒤 상승장에서만 사용을 하거나 하락장에서는 다른 전략을 수립해야 합니다. 백테스팅 후에는 전략을 수정하여 다양한 시나리오로 시뮬레이션을 한 뒤 가장 적합한 전략을 수립할 수 있습니다. 예를 들자면 RSI가 70일 때 대신 75에 매도를 한다거나 RSI 50에 매수하는 대신 RSI 55를 상향 돌파하면 매수를 하는 식으로 전략을 수정하면 더 좋은 수익률을 낼 수도 있습니다.
백테스팅 후 모의 트레이딩
앞의 예시에서 간단한 예시 전략을 통해 백테스팅의 시행에 대해 알아보았습니다. 그렇지만 백테스팅은 과거의 시황에 해당 전략을 적용한 것이기 때문에 현재의 시황에도 적용이 될 수 있는 지 확인하는 과정이 필요한데 이는 모의 트레이딩을 통해 확인을 할 수 있습니다. 모의 트레이딩이란 가상의 자금으로 실제 시장과 같은 환경에서 트레이딩을 해보는 것입니다. 트레이딩을 처음 접하는 분들은 기능을 익히기 위해 모의 트레이딩으로 먼저 경험을 해보시는 것을 권장드립니다.
모의 트레이딩을 하면서 전략을 시뮬레이션해보고 수정하여 전략을 최적화할 수 있지만 이때 유의해야 할 점은 유리한 데이터만 수용하는 체리 피킹 (Cherry Picking)입니다. 체리 피킹이란 편향된 관점을 확정하는 일련의 데이터만을 선택하는 것입니다. 전략을 선행적으로 테스트할 때 개인적인 편견과 가정이 개입된다면 테스트를 하는 의미가 없을 것이고 실제로 트레이딩을 할 때 큰 실수를 할 수 있습니다.
수동/자동 백테스팅
수동 백테스팅은 차트와 과거 데이터를 이용하여 전략에 따라 수동으로 거래를 배치하는 과정입니다. 자동 백테스팅은 차트와 과거 데이터를 이용하여 전략에 따라 컴퓨터 코드에 따라 거래 배치가 자동화됩니다. 어떤 것이 더 낫다고 할 수는 없지만 자동 백테스팅이 더 편해보이는 것은 사실입니다.
트레이더들은 백테스팅 후 전략의 성과를 평가하기 위해 스프레드 시트나 전략 테스터의 보고서 기능을 활용하는데 보고서에는 트레이딩 플랫폼, 자산 유형, 승패 비율, 샤프 비율, 최대 낙폭, 순수익과 같은 다양한 종류의 정보가 포함됩니다. 여기서 샤프 비율이란 특정 전략의 위험 대비 잠재적인 수익률을 평가하는 것이고 샤프 비율이 높을수록 전략이 유망하다는 것을 의미합니다.
마치며
백테스팅은 다양한 금융 시장에서 많은 트레이더들과 투자자들에게 이용되고 있습니다. 그리고 알고리즘 트레이딩에서는 전략의 유효성을 평가하는 핵심적인 부분입니다. 백테스팅의 결과를 분석하는 것에는 편견이 없어야 하며 현 시장과 가장 비슷한 과거의 시황과 지속적인 피드백을 통한 전략의 수정을 통해 전략을 최적화하는 것이 필요합니다. 앞의 예시에서는 정말 기본적인 예시 전략을 사용하였지만 더 많은 조건을 포함한 여러분만의 전략을 수립하여 백테스팅해보시면서 현 시황에 맞는 완벽한 전략을 수립하시길 바랍니다.


