이 표에서 확인할 점은 각 규칙이 서로 맞물려 있다는 것입니다. 손절 폭을 ATR로 정했기 때문에 수량이 자동으로 변동성에 반응하고, 상한이 있기 때문에 상승장에서 후보가 많아져도 노출이 일정 범위를 넘지 않습니다. 규칙 하나를 바꾸면 다른 규칙의 결과도 함께 바뀝니다.
숫자로 확인하면 이렇습니다. 계좌가 5,000만 원이고 1회 허용 손실이 1%인 50만 원, 진입가가 30,000원, ATR(20)이 900원이라면 손절가는 30,000 − 1,800 = 28,200원입니다. 주당 위험은 1,800원이므로 수량은 50만 원 ÷ 1,800원 ≈ 277주, 투입 금액은 약 831만 원으로 계좌의 약 16.6%가 됩니다. 최대 8종목 상한과 함께 보면 이론상 최대 노출이 계좌 규모를 넘지 않도록 별도 확인이 필요하다는 점도 드러납니다.
규칙을 정할 때 흔한 실수
시스템을 만드는 과정에서 반복적으로 나타나는 문제가 있습니다.
첫째, 진입 조건만 정교해집니다. 조건을 늘릴수록 과거 데이터에서는 성과가 좋아 보이지만, 조건이 많아질수록 신호가 줄어 표본이 작아집니다. 표본이 작으면 성과 차이가 우연인지 실력인지 구분할 수 없습니다.
둘째, 손절과 청산을 같은 것으로 다룹니다. 손절은 "판단이 틀렸을 때 나가는 규칙"이고 청산은 "판단이 맞았지만 추세가 끝났을 때 나가는 규칙"입니다. 둘의 목적이 다르므로 기준도 달라야 합니다. 예시 시스템에서 손절은 ATR 기준, 청산은 20일 저점 기준으로 서로 다른 근거를 쓰는 이유입니다.
셋째, 상승장 데이터로만 검증합니다. 시장 필터가 있는 시스템은 하락장에서 신규 진입을 하지 않으므로, 하락장 구간을 포함해야 이 필터가 실제로 손실을 줄이는지 확인할 수 있습니다.
넷째, 비용을 넣지 않습니다. 국내 주식은 매도 시 증권거래세가 부과되고 위탁수수료가 붙습니다. 매매 빈도가 높은 시스템일수록 비용이 기댓값을 잠식하므로, 검증 단계에서 비용을 포함하지 않으면 결과가 실제보다 좋게 나옵니다.
백테스트에서 결과를 왜곡하는 요인
과거 데이터로 규칙을 검증하는 것은 유용하지만, 몇 가지 함정을 피하지 않으면 검증 자체가 잘못된 확신을 만듭니다.
왜곡 요인
내용
점검 방법
생존 편향
현재 상장된 종목만으로 검증
상장폐지·합병 종목을 포함한 데이터 사용
미래 정보 참조
당일 종가로 판단하고 당일 종가에 체결 가정
신호 발생 다음 거래일 시가 체결로 가정
과최적화
파라미터를 과거에 맞춰 조정
기간을 나누어 검증 기간과 확인 기간 분리
체결 가정
원하는 가격에 항상 체결된다고 가정
슬리피지와 호가 단위를 반영
비용 누락
세금·수수료 미반영
매매당 비용을 명시적으로 차감
이 중 과최적화가 가장 다루기 어렵습니다. 파라미터를 조금씩 바꿔 가며 가장 좋은 결과를 고르면, 그 결과는 규칙의 성능이 아니라 특정 기간의 우연을 반영하게 됩니다. 실무적인 대응은 파라미터 값에 성과가 민감하지 않은 구간을 고르는 것입니다. 20일이 좋고 21일이 나쁘다면 그 결과는 신뢰하기 어렵습니다.
미국 증권거래위원회의 투자자 교육 자료도 과거 성과가 미래 결과를 보장하지 않는다는 점을 반복해 안내합니다. 백테스트 결과는 규칙이 논리적으로 일관되는지를 확인하는 도구이지, 앞으로의 수익률을 추정하는 도구가 아닙니다.
국내 시장에서 조정해야 할 조건
앞의 예시 시스템을 국내 주식에 적용할 때는 몇 가지를 추가로 정해야 합니다.
첫째, 체결 방식입니다. 종가 기준 돌파를 신호로 삼으면 당일 종가에는 매수할 수 없으므로 다음 거래일 시가에 체결하는 것으로 규칙을 정해야 합니다. 이 차이는 갭이 큰 종목에서 성과에 상당한 영향을 줍니다.
둘째, 가격제한폭입니다. 한국거래소는 2015년 6월 15일부터 가격제한폭을 ±30%로 운영하고 있습니다. 하한가 부근에서는 매도 체결이 이루어지지 않을 수 있어, 계산상의 손절 금액이 실제와 달라질 수 있습니다.
셋째, 하락 국면 대응입니다. 현물 계좌만 사용하는 경우 시장 필터에 걸리면 신규 진입을 하지 않는 것 외에 별다른 대응 수단이 없습니다. 이 경우 "진입하지 않는 것"도 시스템의 결정 중 하나로 기록해 두어야 필터가 실제로 작동했는지 확인할 수 있습니다.
넷째, 거래대금 조건입니다. 예시의 100억 원 기준은 설명을 위한 값이며, 자신의 계좌 규모에 따라 달라져야 합니다. 한 종목에 투입하는 금액이 그 종목 하루 거래대금의 일정 비율을 넘으면 자신의 주문이 가격에 영향을 주게 됩니다.
투자자가 확인해야 할 체크포인트
여섯 가지 결정(종목·진입·손절·청산·수량·상한)이 모두 숫자로 정의되어 있는가?
손절 규칙과 청산 규칙을 서로 다른 근거로 정했는가?
검증 기간에 하락장 구간이 포함되어 있는가?
세금과 수수료를 매매당 비용으로 차감했는가?
신호 발생 시점과 체결 시점을 구분해 가정했는가?
파라미터를 조금 바꿔도 결과가 크게 달라지지 않는가?
규칙을 지키지 못한 매매가 최근 몇 건이고 그 이유는 무엇이었는가?
자주 묻는 질문
Q1. 백테스트 결과가 좋으면 실전에서도 통하나요?
보장되지 않습니다. 백테스트는 과거 데이터에 규칙을 적용한 결과이며, 생존 편향, 과최적화, 체결 가정, 비용 누락 등으로 실제보다 좋게 나오기 쉽습니다.
검증 단계에서 확인해야 할 것은 수익률의 크기가 아니라, 규칙이 서로 모순되지 않고 파라미터 변화에 지나치게 민감하지 않은지입니다.
핵심 요약
매매 시스템은 진입 신호가 아니라 여섯 가지 결정을 미리 정해 둔 규칙의 집합입니다.
종목 선정, 진입, 손절, 청산, 수량, 상한이 모두 숫자로 정의되어야 하나의 시스템이 됩니다.
손절은 판단이 틀렸을 때, 청산은 추세가 끝났을 때 나가는 규칙으로 목적과 기준이 다릅니다.
규칙은 서로 맞물려 있어 하나를 바꾸면 수량과 노출이 함께 변합니다.
백테스트는 생존 편향, 과최적화, 체결 가정, 비용 누락 때문에 실제보다 좋게 나오기 쉽습니다.
국내 적용 시에는 다음 거래일 체결 가정, 가격제한폭, 거래대금 대비 주문 크기를 함께 정해야 합니다.
시스템의 성능은 규칙 자체보다 규칙이 지켜진 비율에서 드러납니다. 매매마다 어떤 규칙에 따라 진입했고 어느 항목을 벗어났는지 기록해 두면, 성과 부진의 원인이 규칙에 있는지 실행에 있는지 구분할 수 있습니다.
참고 자료
OriginalTurtles.org, "The Original Turtle Trading Rules", 2003 (시스템 6요소 구성)
J. Welles Wilder, 《New Concepts in Technical Trading Systems》, Trend Research, 1978 (ATR)
SEC Investor.gov, "Performance Claims"
SEC Investor.gov, "Understanding Order Types"
한국거래소(KRX), "증권·파생상품시장 가격제한폭 확대 시행"(2015년 6월 15일 시행)
참고용 안내: 본 게시물에 제공되는 모든 정보는 투자를 위한 참고용이며, 투자 권유를 목적으로 하지 않습니다. 본인 책임: 투자에 대한 최종 결정과 책임은 전적으로 투자자 본인에게 있습니다. 법적 책임 부인: 제공된 정보는 정확성을 보장하지 않으며, 어떠한 경우에도 투자 결과에 대한 법적 책임의 근거로 사용될 수 없습니다.