트레이딩 전략 백테스팅 방법
트레이딩 전략 백테스팅 방법
아티클

트레이딩 전략 백테스팅 방법

중급
Published Dec 17, 2020Updated Apr 29, 2021
6m

요약

여러분은 시장에 대해 훌륭한 아이디어를 보유하고 있지만, 이를 실제 자금의 위험 부담 없이 테스트하는 방법을 알고 계신가요? 트레이딩 아이디어를 백테스팅하는 방법을 익히는 것은 체계적인 훌륭한 트레이더가 되는 핵심입니다.

백테스팅의 근본적인 전제는 이전에 효과가 있었던 것이 미래에도 효과가 있을 것이라는 점입니다. 그런데 어떻게 혼자서 백테스팅을 진행할 수 있을까요? 또한 결과를 어떻게 평가해야 할까요? 간단한 백테스팅 절차를 살펴보도록 하겠습니다.


들어가며

백테스팅은 여러분의 차트 작성 및 트레이딩 전략을 개발하는 핵심 요소 중 하나입니다. 이는 과거 데이터를 기반으로 시스템을 통해 지난 거래를 재구성함으로써 진행됩니다. 백테스팅의 결과를 통해 여러분은 특정 투자 전략이 효과적인지 여부를 전반적으로 파악할 수 있어야 합니다.

자세히 살펴보기 전에, 여러분의 전략을 백테스팅해보고 싶으시다면 바이낸스 선물을 추천합니다. 플랫폼에서 과거 데이터에 접근하고 싶다면, 이 양식을 작성해주시기 바랍니다.


백테스팅이란 무엇인가요?

먼저, 여러분이 백테스팅이 무엇인지에 대해 자세히 알아보고 싶으시다면 백테스팅이란 무엇인가요?를 읽어보시기 바랍니다. 

간단히 말해, 백테스팅의 주요 목적은 여러분의 트레이딩 아이디어가 유효한지를 판단하는 것입니다. 여러분은 과거의 시장 데이터를 사용하여 전략이 어떤 성과를 거두었을지를 확인할 수 있습니다. 전략이 잠재력이 있는 것처럼 보인다면, 실제 거래 환경에서도 효과적일 수 있습니다.


백테스팅 전에 해야 할 일

백테스팅 예시를 살펴보기 전에, 결정해야 할 사안이 있습니다. 여러분은 어떤 유형의 트레이더가 될 것인지 결정해야 합니다. 여러분은 자유 재량적인 트레이더인가요? 아니면, 체계적인 트레이더인가요?

자유 재량적 트레이딩은 의사 결정에 기초하며, 트레이더는 진입 및 탈출 시점을 스스로 판단합니다. 이는 상대적으로 느슨하고, 개방적인 전략으로 대부분의 결정이 주어진 환경에 대한 트레이더의 평가에 달려있습니다. 여러분이 예상하셨을 것이듯, 백테스팅은 자유 재량적 트레이딩에는 상대적으로 적절하지 않은데, 이는 전략이 정확하게 정의되지 않기 때문입니다.

물론, 여러분이 자유 재량적 트레이더라고 하여 백테스팅 또는 모의 거래를 진행하지 말아야 한다는 것은 전혀 아닙니다. 이는 단지, 체계적인 트레이딩과 같이 결과를 신뢰할 수 없을 수도 있다는 의미입니다.

체계적 트레이딩은 우리의 주제에 보다 적합합니다. 체계적인 트레이더는 정확히 언제 진입하고 종료할지를 정의하고 이야기해주는 트레이딩 시스템에 의존합니다. 이들은 전략을 완벽히 통제할 수 있지만, 전략에 따라 진입 및 종료 시점이 정의됩니다. 여러분은 간단한 체계적 트레이딩 전략을 다음과 같이 생각해볼 수 있습니다.

  • A와 B가 동시에 발생할 경우, 거래에 진입.
  • 이후, X가 발생할 경우 거래 종료.

일부 트레이더는 이러한 접근 방식을 선호합니다. 이는 감정적인 트레이딩 결정을 제외하고, 트레이딩 시스템이 수익성이 있다는 합리적인 수준의 확신을 제공할 수 있습니다. 물론, 그렇다는 보장은 없지만 말입니다.

이것이 바로 포지션에 진입 또는 이를 종료하는 데 있어서 시스템에 매우 구체적인 규칙이 존재하는지 확인하는 것이 중요한 이유입니다. 전략이 잘 정의되어 있지 않다면, 결과 또한 일관성이 없을 것입니다. 예상하셨을 것이지만, 이러한 유형의 트레이딩 스타일은 알고리즘 트레이딩에서 인기가 더 많습니다.

자동 백테스팅을 원한다면 백테스팅 소프트웨어를 구매할 수도 있습니다. 자체 데이터를 입력하면, 소프트웨어가 여러분을 위해 백테스팅을 진행합니다. 그러나 우리는 수동 백테스팅 전략을 살펴볼 것입니다. 조금 더 많은 작업을 진행해야 하지만, 완전히 무료입니다.


트레이딩 전략 백테스팅 방법

이 링크를 통해 구글 시트 스프레드시트 양식을 확인하실 수 있습니다. 이는 가장 기본적인 양식으로 여러분은 이를 시작으로 여러분만의 양식을 만들 수 있습니다. 해당 양식을 통해 백테스팅 시트에 어떤 정보들이 포함될 수 있는지 전반적으로 파악할 수 있습니다. 일부 트레이더는 엑셀 또는 파이썬 코드를 선호하기도 합니다. 이는 엄격한 규칙은 아니며, 여러분은 훨씬 많은 데이터와 유용하다고 생각되는 다른 모든 것들을 추가할 수 있습니다.
일자
마켓
포지션
진입가
스탑 로스이익 실현위험보상손익

12/08

BTCUSD

$18,000

$16,200

$21,600

10%

20%

3600

12/09

BTCUSD

$19,000

$20,900

$13,300

10%

30%

-1900


이제, 간단한 트레이딩 전략을 백테스팅해보겠습니다. 우리의 전략은 다음과 같습니다.

  • 우리는 골든 크로스가 발생한 첫 일일 종가에 비트코인을 구매합니다. 여기서 골든 크로스란 50일 이동 평균이 200일 이동 평균 위로 교차할 때로 간주합니다.
  • 우리는 데드 크로스가 발생하는 첫 일일 종가에 비트코인을 판매합니다. 여기서 데드 크로스란 200일 이동 평균이 50일 이동 평균 아래로 교차할 때로 간주합니다.

이처럼, 우리는 전략이 유효한 타임프레임도 설정했습니다. 이는 골든 크로스가 4시간 차트에서 발생할 경우, 이를 거래 신호로 간주하지 않는다는 의미입니다.

이번 예시에서 우리는 2019년 초까지만 시간을 거슬러 올라가 기간을 살펴볼 것입니다. 그러나 여러분이 보다 정확하고 신뢰할 수 있는 결과를 원할 경우, 훨씬 더 이전의 비트코인 가격 움직임을 살펴보실 수 있습니다.

그렇다면 이제 해당 기간 동안 시스템이 어떤 거래 신호를 생성했는지 살펴보도록 하겠습니다.

  • 매수 @ ~$5,400
  • 매도 @ ~$9,200
  • 매수 @ ~$9,600
  • 매도 @ ~$6,700
  • 매수 @ ~$9,000


다음은 우리의 전략 신호를 차트에 중첩시킨 것입니다.

골든 크로스 - 데드 크로스 전략. 자료: 트레이딩뷰.


우리의 첫 거래는 약 3,800달러의 이익을 냈을 것이며, 우리의 두 번째 거래는 약 2,900달러의 손실을 냈을 것입니다. 이는 우리의 실현 손익이 현재 900달러임을 의미합니다.

우리는 또한 현재 거래를 진행 중이며, 2020년 12월 현재 9,000달러 가량의 미실현 손익이 있습니다. 만약, 우리가 초기에 정의한 전략을 고수한다면, 다음 데드 크로스가 발생할 때 이를 종료하게 될 것입니다.



백테스팅 결과 평가하기

그렇다면 이러한 결과는 무엇을 말해줄까요? 우리의 전략은 합리적인 수익률을 달성했을 것이지만, 지금까지는 눈에 띄는 결과를 보여주지는 않습니다. 우리는 실현 손익을 크게 증가시키기 위해 현재의 주문의 이익을 실현할 수도 있지만, 이는 백테스팅의 목적을 무산시킬 것입니다. 우리가 계획을 고수하지 않는다면, 결과 또한 신뢰할 수 없을 것입니다.

이는 체계적인 전략임에도 불구하고, 맥락을 고려할 필요도 있습니다. 9600달러에서 6700달러로 손해를 본 거래는 2020년 코로나 바이러스-19 사태 때였습니다. 이러한 블랙 스완 사건은 모든 거래 시스템에 엄청난 영향을 미칠 수 있습니다. 따라서 이러한 손해가 외부 요소 때문인지 전략의 뜻밖의 결과인지 다시 한 번 살펴볼 필요가 있습니다.
다른 경우에도, 간단한 백테스팅 절차는 이와 유사할 것입니다. 우리가 뒤로 돌아가 더 많은 데이터로 해당 전략을 테스트 하거나, 향후 더욱 강력한 신호를 생성하기 위해 다른 기술적 지표를 포함시킨다면 더 좋을 수도 있을 것입니다.

백테스팅 결과를 통해 또 무엇을 알 수 있을까요?

  • 변동성 측정: 여러분의 최대 수익과 손실.
  • 노출: 여러분의 전체 포트폴리오에서 전략을 위해 할당해야 하는 자본의 양.
  • 연간 수익: 전략의 연간 수익률
  • 승률: 시스템 내 거래의 승률 비율.
해당 사항들은 단지 몇 가지 예시일 뿐이며, 결코 완전한 목록은 아닙니다. 어떠한 방법을 추적해보는지는 전적으로 여러분에게 달려있습니다. 어떠한 경우에도, 설정에 대한 세부 사항들을 더 자세히 기록할수록, 결과로부터 더 많은 것을 배울 수 있을 것입니다. 일부 트레이더들은 자신들의 백테스팅을 매우 철저하게 진행하여, 이 또한 결과에 반영할 수도 있습니다.
마지막으로 고려해야 할 것은 최적화입니다. 여러분이 백테스팅 아티클을 읽어보셨다면, 백테스팅과 포워드테스팅, 모의 거래의 차이를 알고 계실 것입니다. 바이낸스 선물 테스트넷과 같은 실제 트레이딩 환경에서 여러분의 아이디어를 테스트하고 최적화하는 것이 좋을 수 있습니다.


마치며

우리는 트레이딩 전략을 수동으로 백테스팅하는 기본적인 과정에 대해 살펴봤습니다. 기억해야 할 것은, 과거의 성과가 미래의 성과를 보장하지는 않는다는 것입니다.

시장 환경은 변화하며, 트레이딩을 개선하려면 이러한 변화에 적응해야 합니다. 일반적으로, 데이터를 맹목적으로 신뢰하지 않는 것이 좋습니다. 결과를 평가하는 데 있어서, 상식은 놀랄만큼 유용한 도구가 될 수 있습니다.

백테스팅과 암호화폐에 대해 궁금한 점이 있으신가요? 바이낸스 아카데미의 Q&A 플랫폼 아카데미 질문(Ask Academy)을 확인해보세요. 커뮤니티 구성원들이 궁금증을 해결해 줄 것입니다.