요약
백테스팅은 금융 시장에 참여하는 방법을 최적화하는 중요한 과정일 수 있습니다. 이를 통해 여러분의 트레이딩 아이디어와 전략이 타당한지, 이를 통해 향후 수익을 창출할 수 있는지 알아볼 수 있습니다.
들어가며
백테스팅은 여러분이 한 명의 트레이더 또는 투자자로서 새로운 시장과 전략을 탐색할 때 사용할 수 있는 도구입니다. 이는 데이터를 기반으로 한 몇 가지 중요한 피드백을 제공하며, 여러분의 초기 아이디어가 유효한 것인지를 알 수 있게 합니다.
여러분이 거래하는 자산 유형과 무관하게 백테스팅에서는 여러분이 힘들게 번 자금의 위험 부담이 전혀 없습니다. 시뮬레이션 환경에서 백테스팅 소프트웨어를 사용하여, 특정 시장에 접근하는 방식을 구축하고 최적화할 수 있습니다.
백테스팅이란 무엇인가요?
금융 영역에서 백테스팅은 과거 데이터를 기반으로 트레이딩 전략의 실행 가능성을 테스트합니다. 즉, 과거 데이터를 사용해 전략이 어떻게 수행되었는지를 확인합니다. 백테스팅이 좋은 결과를 보여줄 경우, 트레이더 또는 투자자는 실제 환경에 해당 전략을 적용해볼 수 있습니다.
그런데 이 경우 좋은 결과란 무엇을 의미하는 것일까요? 백테스팅 도구의 목적은 특정 전략의 위험과 잠재적인 수익성을 분석하는 것입니다. 잠재적 수익을 극대화하기 위해 통계적 피드백을 기반으로 투자 전략을 최적화하고 개선할 수 있습니다. 또한 잘 수행된 백테스트는 해당 전략이 실제 트레이딩 환경에서 구현될 때 최소한 이를 실행해 볼 수 있다는 것을 보장할 수 있습니다.
특별히 알고리즘 트레이딩 전략(자동화된 트레이딩)과 같은 보다 전문적인 수준에서는 트레이딩 전략을 백테스팅하는 것이 필수적입니다.
백테스팅은 어떻게 진행되나요?
잘못된 일련의 데이터를 사용한 백테스팅은 그다지 이상적이지 않은 결과를 낼 수도 있습니다. 이것이 바로 백테스팅 기간에 적합한 현재 시장 환경을 반영하는 좋은 예시를 찾는 것이 중요한 이유입니다. 그러나 시장은 계속해서 변하기 때문에 이는 특히나 어려운 일일 수 있습니다.
백테스팅 전략을 결정하기 전, 여러분이 정확히 무엇을 찾고자 하는지 결정하는 것이 좋습니다. 어떻게 해야 실행 가능한 전략이 될까요? 반대로, 무엇이 여러분의 가정을 실패하게 만들까요? 여러분이 이를 사전에 안다면, 결과가 여러분의 편견에 영향을 미치기는 더욱 쉽지 않을 것입니다.
또한 백테스팅은 트레이딩 및 출금 수수료와 더불어 전략에서 발생할 수 있는 모든 비용을 고려해야 합니다. 또한 고급 시장 데이터에 접근하는 것과 마찬가지로 백테스팅 소프트웨어 또한 무척 비쌀 수 있다는 것도 참고해야 합니다.
백테스팅 예시
우리의 트레이딩 시스템은 다음과 같습니다:
- 비트코인 종가가 20주 이동 평균 위에서 마감할 때 이를 매수합니다.
비트코인 종가가 20주 이동 평균 아래서 마감할 때 이를 매도합니다.
이 전략은 일 년에 몇 번의 신호밖에 생성하지 않습니다. 2019년부터 기간을 살펴보도록 하겠습니다.
2019년 이후 비트코인 주간 차트.
이 전략은 측정된 기간 동안 다섯 개의 신호를 생성했습니다.
매수 @ ~$4,000
매도 @ ~$8,000
매수 @ ~$8,500
매도 @ ~$8,000
매수 @ ~$9,000
이처럼 우리의 백테스팅 결과는 이 전략이 수익성이 있었음을 보여줍니다. 이는 앞으로도 그렇다는 의미일까요? 아닙니다. 이는 일련의 특정 데이터를 살펴볼 때, 해당 전략이 수익을 낼 수 있었다는 의미일 뿐입니다. 여러분은 이러한 결과를 대략적인 기준으로 간주할 수 있습니다.
우리는 단지 2년 이내의 데이터만을 살펴봤다는 것을 잊지마시기 바랍니다. 우리가 이를 실행 가능한 전략으로 만들고자 한다면, 더 많은 시간을 거슬러 올라가 더 많은 가격 움직임과 함께 이를 테스트해보는 것이 좋을 것입니다.
백테스팅과 모의 트레이딩
이제 우리는 백테스팅이 어떠한 것인지 대략적으로 알게 되었으며, 간단한 투자 전략도 살펴봤습니다. 우리는 또한 과거의 성과가 미래의 결과를 의미하는 것도 아니라는 것을 알고 있습니다.
모의 트레이딩은 실제 트레이딩 환경에서 전략을 시뮬레이션하는 것입니다. 이는 거래를 문서화하고 기록하지만, 실제 자금을 사용하지 않기 때문에 모의 트레이딩이라고 합니다. 이를 통해 전략을 개선하고 성능을 파악할 수 있는 추가적인 과정을 거칠 수 있습니다.
여기서 한 가지 주의해야 할 것은 "체리 피킹(cherry-picking)"입니다. 이는 편향된 관점을 확정하는 일련의 데이터만을 선택하는 것을 의미합니다. 선행 테스트의 목적은 전략을 실시간으로 테스트하는 것입니다. 시스템이 무언가를 지시할 경우, 이를 진행해야 합니다. 여러분이 개인적인 편견에 따라 "좋아 보이는" 거래만을 선택한다면, 체계적 전략에 대한 테스트는 무효가 될 것입니다.
수동 백테스팅과 자동 백테스팅
수동 백테스팅은 차트 및 과거 데이터를 분석하고 전략에 따라 수동으로 거래를 배치하는 과정을 포함합니다. 자동 백테스팅은 기본적으로는 동일하지만, 진행 과정이 컴퓨터 코드(파이썬이나 특화된 백테스팅 소프트웨어를 사용)에 의해 자동화됩니다.
최대 낙폭은 여러분의 트레이딩 전략이 가장 최근의 정점에 비해 가장 낮은 성과를 보이는 순간을 나타냅니다(즉, 분석 기간 동안 포트폴리오에서 발생한 가장 큰 하락률).
마치며
다수의 체계적인 트레이더와 투자자들은 자신의 전략에 대한 백테스팅에 크게 의존하고 있습니다. 이는 모든 알고리즘 트레이더에게 필수적인 도구 중 하나입니다.
동시에 백테스팅 결과를 해석하는 것은 까다로울 수 있습니다. 여러분의 편견을 백테스팅 방법에 쉽게 투영할 수 있기 때문입니다. 백테스팅만으로는 성공적인 트레이딩 전략을 만들 수 없을 것처럼 보이지만, 이는 몇 가지 아이디어를 테스트해보고 시장의 움직임을 파악하는 데 도움이 될 것입니다.