Notice: Undefined index: Features in /data/phemex/wp/wp-content/themes/knowall/header.php on line 1412
combobox arrow
공지
Phemex 블로그: 비트코인 계약, 비트코인 거래, 파생상품 거래에 관한 모든 블록체인 및 시장 분석을 한눈에 알아볼 수 있습니다.

비트코인 백테스트(Backtest) 전략: 당신이 알아야 할 모든 것

 

요약

  • 백테스팅은 과거 데이터를 바탕으로 트레이딩 이론을 테스트하는 과정을 말합니다.
  • 맞춤식 백테스팅 방법을 통해 투자자는 마진 수요, 슬리피지 가정, 금리, 손절 주문에 대한 정보를 제공하여 현실과 트레이더의 설정을 최대한 일치시킬 수도 있습니다.
  • 백테스팅은 자동으로 실행할 수 있습니다. 달러 P/L, 샤프지수(Sharpe ratio), 성공비 등과 같은 변수 대비 실적을 측정하면 됩니다.

트레이딩 전략은 거래소에서 자산을 전송하여 수익을 얻도록 설계되는 계획입니다. 트레이딩 전략은 다양한 요소로 구성되고 인터넷에서 쉽게 접근할 수 있는 전략만 해도 수도 없이 많습니다. 그 중 일부 유명한 전략들은 널리 활용되며 수 년간 실전 검증까지 거치게 되었지만, 다른 전략들은 내 자산을 잃을 각오를 하고 사용하는 셈입니다.

트레이딩 전략은 기본적으로 논리에 기반하지만, 이러한 논리가 항상 완벽한 것은 아닙니다. 한 시장에서 성공적인 시스템으로 자리잡으면 다른 시장에서는 빠르게 그 자리를 잃습니다. 수 많은 사람들이 “탑시크릿-수익 극대화 전략”을 판매하고자 하지만 그렇다고 무결점의 접근방법일 것이라 장담할 수 없습니다.

backtest bitcoin strategy

 

백테스팅이란?

백테스팅은 트레이더의 소프트웨어 목록 중 가장 핵심적인 수단입니다. 투자자는 이를 통해 자산의 과거 가격 움직임 대비 전략의 실적을 확인하고 그러한 정보를 바탕으로 어떤 방법을 활용할 것인지 판단할 수 있습니다. 이상적으로 명성이 전혀 없는 브랜드에서는 아무것도 구매하지 않는다는 것과 유사한 컨셉입니다.

실제로, 백테스팅은 과거 데이터를 바탕으로 트레이딩 이론을 테스트하는 과정을 말합니다. 현재의 데이터를 바탕으로 애매모호한 전략을 적용하고 실제 자본을 잃을 위험을 감수하는 대신, 백테스팅을 통해 각 투자에 맞게 나의 접근방법을 수정해나갈 수 있습니다.

백테스팅은 트레이딩 시스템 개발의 기본 구성요소입니다. 만약 올바르게 이행한다면 투기자가 거래를 최적화하고 개선하는 데 도움을 얻을 수 있습니다. 투자자가 이론적인 결함을 포착하여 실제 시나리오에 적용하기 전에 전략적인 결정에 신뢰를 더할 수 있습니다.

 

다양한 시장에서의 백테스팅

그러나 백테스팅에도 실패 확률은 있기 마련이며 내가 거래하고자 하는 시장의 폭넓은 배경 설명을 충분히 넣어주어야 합니다. 예를 들어, 90년대 닷컴 버블을 대상으로 내 전략을 테스트한다면 시장 호황기에는 눈부신 실적을 보일 수도 있겠지만, 거품이 터진 후에는 실패했을 가능성이 높습니다. “과거 실적은 미래 수익을 나타내는 지표가 될 수 없다”라는 말이 묵직한 의미를 지니지만 그렇다고 해도 사람들은 백테스팅 기법을 활용하여 자신의 거래 활동을 최적화하고 있습니다.

전략에 대한 백테스팅을 진행하기 전에 같은 시기에 대한 폭넓은 시장 추세를 반드시 반영하여 과거 데이터를 분석하고 현재 시장에 적용해야 합니다. 맞춤식 백테스팅 방법을 통해 투자자는 마진 수요, 슬리피지 가정, 금리, 손절 주문에 대한 정보를 제공하여 현실과 트레이더의 설정을 최대한 일치시킬 수도 있습니다.

불행하게도, 이 역시 “과도한 최적화”로 이어져 실적 매트릭스가 과거 데이타에만 너무 정확하게 맞춰지고 실제 트레이드에 대한 정확성은 충분하지 않은 상황이 될 수 있습니다.

 

소프트웨어와 통계의 활용

백테스팅에서는 트레이딩 전략의 규칙을 정의하는 과정이 포함되는데, 보통 소프트웨어를 통해 특정 기간의 시장 데이터와 함께 사용됩니다. 그 후 결과에서 통계를 추출하여 실제 시장에서 전략이 얼마나 효과적인지 측정합니다. 이러한 믿음은 과거에 성공적이었던 전략은 미래에도 잘 맞을 가능성이 크다는 이론에서 비롯되었습니다. 항상 그러한 것은 아니지만, 트레이더는 이를 통해 투자 방법에 따라 무엇을 기대할 수 있는 지 어느정도 짐작할 수 있습니다.

 

 

크립토 거래 전략을 백테스팅 있을까요?

블록체인은 오랜 역사를 가진 문제를 해결하고자 하는 새로운 해결책입니다. 산업은 작지만 폭넓은 이익을 전파할 수 있습니다. 그러나 현재는 낮은 유동성 수준으로 소규모 거래소 중 다수가 힘들어하고 있기 때문에 백테스팅에는 내가 사용하고자 하는 크립토 거래소의 지연과 슬리피지 문제를 함께 포함시켜 돌리는 것이 중요합니다.

거래소에서 다른 트레이더의 위험한 행동을 자극하지 않고, 백테스트를 거친 전략을 통해 실전에서 날아오는 커브볼을 받아칠 수 있습니다. 초심자 트레이더가 범하는 실수 중 하나는 미래 정보를 요하는 과거 데이터 전략을 이행하는 겁니다. 예를 들어, 시장에서 필요한 정보를 나중에 전달할 수 있기 때문에, 24시간 기준 저점에서 자산을 매수하는 전략에 대한 백테스트를 실행할 수 없는 경우가 그렇습니다.

백테스팅은 미묘한 주제이며 가장 경험이 풍부한 트레이더들은 백테스트를 처음부터 적절히 구축해 나갈것을 권합니다. 전략마다 다르긴 하지만 그러한 차이가 항상 눈에 보일 정도로 분명한 것은 아닙니다. 백테스트의 구조를 트레이딩 전략에 가장 잘 들어맞도록 구조화한다면 실패 가능성을 최소화할 수 있습니다. 또한, 위험 노출도, 수익 목표, 투자 빈도와 같은 요소를 먼저 고려하는 것도 중요합니다.

 

백테스팅 자동화

트레이딩도 자동화가 가능하듯 백테스팅도 자동화가 가능합니다. 트레이더는 코드 작성을 통해 특정 전략에 따라 트레이드를 자동으로 실행하지만 현재의 시장 조건에 맞도록 코드를 지속적으로 업데이트해야 합니다.

전략을 시험할 수 있는 플랫폼을 선택할 때는 내가 선택한 투자의 지원여부와 시장 데이터 학습 여부를 반드시 확인해야 합니다. 또한, 어떠한 프로그래밍 언어를 사용하고자 하는지, 내가 선택한 트레이딩 전략을 어떻게 코드화하여 실행할 것인지 결정할 필요가 있습니다.

트레이더는 일반적으로 벤치마크 변수를 활용하여 시스템을 평가한 후, 백테스팅를 수행합니다. 달러 P/L, 샤프지수(Sharpe ratio), 성공률 등과 같은 변수 대비 실적을 측정하면 됩니다.

 

달러 손익 (P/L)

총 손익(Total Profit and Loss 또는 P/L)으로 트레이더는 전략의 수익성을 판단할 수 있으며, 향후 유사한 조건에서 해당 전략을 사용할 경우 손익이 어느 정도 발생할 지 짐작할 수 있습니다. 이름 그대로 평균 손익(P/L)은 일정 시간 주기(보통 몇 분/시간/일)로 발생할 수 있는 평균 손익을 말합니다.

 

성공률

성공률은 손실 거래 횟수 대비 수익이 발생한 트레이드 횟수를 비율로 나타낸 것입니다. 이는 성공적인 트레이딩 전략을 보여주는 확실한 지표일 뿐 아니라 최대한의 수익을 끌어내려면 어떻게 업데이트하고 최적화해야 하는지를 보여주기도 합니다.

 

샤프지수

샤프지수는 상이한 리스크 레벨에서 유사한 수익을 제공하는 두 전략을 두고 리스크 조정 수익을 측정한 결과입니다. 리스크는 자산의 최고 가격을 기준으로 가치의 최대 하락을 나타내는 고점대비최대하락폭 (MDD, Maximum Draw Down)을 활용하여 측정합니다. 투자자는 이를 통해 전반적인 관련 리스크와 발생할 수 있는 잠재 손실을 평가할 수 있습니다.

 

프로그래밍 언어(C++, C#, 자바(Java), 매트랩(MATLAB), R, 파이썬)

프로그래밍 언어의 역할은 백테스팅 플랫폼을 개발하는 데 큰 영향을 미칠 수 있기 때문에, 내가 필요한 백테스팅 요건을 바탕으로 각 프로그래밍 언어의 장/단점을 잘 따져 보아야 합니다. 가장 흔하게 사용되는 프로그래밍 언어로는 C++, C#, 자바(Java), 매트랩(MATLAB), R, 파이썬을 들 수 있습니다.

C++는 최고의 실행 속도를 제공하며 가장 유연한 메모리 관리 모듈을 통해 최적화할 수 있습니다. 그러나 이 때문에 운영 중 버그가 생길 수도 있고, 언어 자체도 배우기 어렵다고 알려져 있습니다.

C#와 자바(Java)는 자동으로 “쓰레기 수집” 기능을 수행하는데, 이는 성능 간접비(overhead)를 높이긴 하지만 보다 빠르게 개발할 수 있다는 장점이 있습니다. 둘 다 자체 GUI 성능을 갖추고 있으며 수치 분석을 위한 라이브러리와 빠른 실행 능력을 보여줍니다.

보다 과학적인 계산을 위한 매트랩(MATLAB)은 과학 연산을 위한 수치적인 라이브러리와 비교할 수 있는 상업용 IDE입니다. 실행 속도는 두말 할 나위없이 굉장하지만 개인 투자자에게는 너무 비용이 많이 들 수 있습니다.

R은 오픈소스 전용 통계 스크립트 환경으로 교차 플랫폼으로써 고급 분석을 위한 다양한 무료 패키지를 제공합니다. 그러나 운영 백터화 아니면 R의 실행 속도는 다소 부족할 수 있습니다.

오픈소스에 있어서는 교차 플랫폼 프로그래밍 언어인 파이썬은 모든 과업에 대한 풍부한 패키지 보관소라고 볼 수 있습니다. 고차원적인 대상 중심 프로그래밍 언어로 유저 친화적인 데이터 구조를 제공합니다. 특수 연구 환경까지 보유하고 있으며 실행 속도는 일중 거래에 적합합니다.

 

모의 트레이딩

시뮬레이터를 사용하면 전략 실행 중 발생하는 일부 문제에 대한 심층적인 통찰력을 얻을 수 있습니다. 시뮬레이터는 거래소처럼 동작하여 다양한 시장 조건에 맞춰 구현할 수 있습니다. 하지만 파이썬, 자바, C++와 같은 언어를 실행하려면 해당 언어에 대한 높은 숙련도를 갖추어야 합니다.

 

모의 트레이딩에 관심  있으신가요?

지금 여기에서 시작해보세요. 페멕스 테스트넷과 제로-리스크 거래

 

비트코인 백테스팅 전략

백테스팅에는 크게 두 종류가 있습니다. 바로 연구용 백테스팅과 이벤트 드리븐 백테스팅입니다.

 

연구 백테스팅

시장의 모든 측면을 완전의 모의하는 대신, 연구용 백테스팅 툴은 실적 정보를 더 빠르게 릴레이할 수 있도록 예측치를 생성합니다. 연구 툴은 전문적인 정량 트레이딩 산업 내에서만 사용되어 신규 전략에 대한 첫인상을 제시하는 역할이기 때문에 일중거래의 빈도에는 적절하지 않습니다.

 

이벤트 드리븐 백테스팅

이벤트 드리븐 백테스팅 툴은 실시간 시장 피드를 연결하여 코드화 해놓은 시장 이벤트가 발생할 때 바로 트레이드를 트리거할 수 있습니다. 이벤트 드리븐 시스템은 영속적으로 가동되며, 종종 하위시스템이 있어 과거 데이터를 처리하고, 보다 현실적인 실행을 위해 수수료도 적용합니다. 그러나 이러한 설계는 다소 복잡하며 버그에도 더 취약합니다.

시장 가격은 다양한 요소에 취약하게 반응하고 가격 변동의 원인을 추적해보면 해당 시간에 발생한 이벤트인 경우가 종종 있습니다. 예를 들어 중요한 발표, 신규 통화 정책 도입, 금리, 연례보고서 발간 등이 이에 포함됩니다. 주목할 점은 시장은 항상 유사하게 반응하지 않기 때문에 다양한 시장 조건 하에서 트레이딩 전략을 시험해볼 필요가 있다는 것입니다.

 

시장은 시장이다

백테스팅은 트레이딩 전략 선택의 핵심 부분이지만 백테스팅 전문가조차 특정 편향(bias)에 빠져 분석결과를 확연하게 다르게 나올 수 있습니다.

이러한 편향 중 가장 흔한 것이 최적화 편향입니다.  백테스팅 전략이 과거 데이터에 너무 완벽하게 최적화되어서 실제 시장에서는 더 이상 적절하게 기능할 수 없는 것을 말합니다. 앞서 언급한것처럼, 과거 데이터 백테스팅 중 미래 데이터가 필요해지는 편향이 있을 수 있습니다.

이는 미래참조 편향(look-ahead bias)로 알려져 있으며, 연간 보고서 발간의 계산오류 같은 아주 작은 실수도 결과를 왜곡할 수 있습니다. 편향은 가장 숙련된 트레이더에게도 서서히 자리잡을 수 있기 때문에 백테스팅 프로세스 전반에 대해 상당한 주의를 기울여야 합니다.

 가상화폐 트레이딩 이 점차 유명세를 얻으면서, 백테스팅도 투자자와 트레이더들로부터 널리 활용되고 있습니다. 가상화폐처럼 휘몰아치듯 예상할 수 없는 시장에서는 트레이딩 전략에 대한 백테스팅을 진행한 후 시장에 적용하는 것이 이득입니다.

백테스팅은 또한 결과를 분석하여 전략 개선 방안을 마련할 기회를 제공하기도 합니다. 시장 추세에 최적화된 시스템은 다양한 시장 조건에서 예상만큼 잘 활용될 수 없을 지 모릅니다. 이 때, 백테스팅 결과 분석을 통해 나의 설정을 최적화하여 수익을 극대화할 수 있습니다.

그러나 시장 외부 이벤트로 인해 나의 전략이 갑자기 망가질 수도 있습니다. 전략 백테스팅 자체가 수익을 보장하지는 않지만 대량의 과거 데이터를 기준으로 시험함으로써 트레이더는 현재 시장에서 해당 전략에 얼마나 잘 기능할 수 있는 지 명확한 아이디어를 얻을 수 있습니다.

______________________________________

문의사항은 support@phemex.com으로 보내주세요. 공식 트위터 계정을 팔로우하여 최신 뉴스를 받아보세요. 텔레그램 커뮤니티에 가입하여 당사 및 다른 페멕스 트레이더들과 교류를 나눠보세요. 손쉬운 거래는 페멕스 에서.