서론

  • 주식 관련된 프로젝트를 수행하면서 주식이나 증권에 대한 도메인 지식이 부족하다 보니 팀원과 업무협의를 하는데 어려움이 많았다. 이번에 백테스트라는 것을 하는데 이게 무엇인지 알아보고자 한다.

백테스트

  • 새로운 전략 개발 또는 기존 전략의 검증을 위해 과거 데이터를 가지고 실험하고자 하는 전략의 성과를 측정해보는 과정이다.

백테스트 한계

  1. 슬리피지(slippage) 발생
    • 실제 시장에서 매수/매도스프레드가 상당히 벌어져 있다.
    • 정말 유동성이 풍부한 일부 종목들을 제외하면, 코스피 시가총액 상위 100위 종목만 넘어가더라도 매수/매도스프레드가 벌어져 있음으로 인해 발생하는 비용이 유발된다.
    • 이를 반영하기 위해서는 실시간 호가상황을 알 수 있어야 하는데, 관련 데이터를 구하기 쉽지 않고 구한다고 해도 기간이 짧거나 구현하기 힘들다.
  2. 비용(유관 기관 수수료, 세금)
    • 주식의 경우 매도세 0.3%가 청구된다.
    • 증권사 거래수수료가 무료라 하더라도 거래소(KRX) 등 유관기관수수료까지 무료는 아니다.
    • 만약 실험하고자 하는 전략이 빈번한 매매를 추구하는 전략이라면 수수료 및 세금으로 인한 손실을 고려해야 한다.
  3. 유동성 부족 / 시장 충격
    • 실제 시장에서는 특정 투자자의 매수 또는 매도가 시장가격의 자체를 바꿔버릴 수 있다.
    • 만약, 시장의 호가심도(market depth)가 얕은 상황에서 특정 투자자가 대량 주문을 낸다면 순간적인 수급 불일치로 가격을 왜곡시켜 버릴 수 있다.
    • 운용자금이 작은 개인투자자는 크게 해당되지 않을 사항일 수도 있으나, 시가총액이 작고 유동성이 작은 종목이 경우 충분히 혼자서 상한가(하한가)를 만들어 버릴 수도 있다.
    • 정말 유동성이 부족한 경우에는 상대 호가가 없기 때문에 원하는 수량만큼 원하는 상황에 매매를 하지 못할 수도 있다.
  4. 단주
    • 만약 100만원을 가지고 삼성전자(예:45,000원) 주식을 산다면 실제 주식은 22주만 구입이 가능하다.
    • 100만원 ÷ 45,000원 = 22.22주를 구매할 수 있다고 계산하면 안된다.
    • 단주는 백테스트 할 때 다른 요인들에 비해 상대적으로 통제하기 쉬운 요인이다.

백테스트를 하는 이유

  • 백테스트를 통해 전략의 특성을 파악하는데 집중해야 한다.