
수수료·슬리피지·체결 실패를 백테스트에 반영해야 하는 이유
— 성과는 차트가 아니라 체결에서 무너진다
들어가며
백테스트가 잘 나오는데 실거래에서 망하는 패턴은 대부분 비슷해요. 전략이 틀린 게 아니라, 현실의 거래 비용과 체결 제약을 무시했기 때문입니다.
처럼 전략을 만들고 검증하는 흐름을 쓰더라도, 백테스트가 “현실 체결”을 닮지 않으면 결과는 착시가 됩니다.
1 수수료는 수익률이 아니라 기대값을 깎는다
수수료는 매 트레이드마다 빠져나가는 고정 비용이에요. 특히 매매 빈도가 높을수록 수수료는 “일회성 비용”이 아니라 기대수익을 지속적으로 잠식합니다.
백테스트에서 수수료를 빼면 이런 일이 생겨요.
-
샤프가 과하게 좋아 보인다
-
작은 엣지 전략이 살아남아 보인다
-
최적 파라미터가 더 공격적으로 잡힌다
결론은 간단합니다. 수수료를 뺀 백테스트는, 실제로는 존재하지 않는 수익을 만든 거예요.
2 슬리피지는 손해가 아니라 시장 충돌이다
슬리피지는 단순히 “조금 더 비싸게 샀다”가 아니에요. 내 주문이 시장 깊이와 부딪치면서 생기는 구조적 비용입니다.
슬리피지를 백테스트에서 무시하면 이런 전략이 과대평가돼요.
-
유동성 얕은 코인에서 자주 매매하는 전략
-
급등락 구간에 진입하는 전략
-
시장가 체결을 전제로 하는 전략
현실에서는 신호가 맞아도 체결가가 나빠져서 승률과 손익비가 동시에 무너집니다.
3 체결 실패는 ‘없는 거래’가 아니라 ‘선택 편향’을 만든다
가장 위험한 착시는 체결 실패입니다. 백테스트는 신호가 뜨면 항상 체결됐다고 가정하기 쉬워요.
하지만 실거래에서는
-
가격이 빠르게 튀면 지정가가 놓치고
-
부분체결이 발생하고
-
주문이 취소되거나 지연됩니다
이걸 반영하지 않으면 백테스트는 사실상 이렇게 됩니다. 유리하게 체결된 거래만 남는 기록이 됩니다.
그래서 체결 실패는 결과를 조금 나쁘게 만드는 게 아니라 전략의 통계 자체를 왜곡시켜요.
4 어떻게 반영하면 되나
정답은 복잡한 시뮬레이터 하나가 아니라, 최소한의 현실 가정이에요.
-
수수료: 거래소 수수료를 고정으로 반영
-
슬리피지: 코인별 고정 bp 또는 변동성 구간에서 가중
-
체결 실패: 지정가 미체결 시 거래를 스킵하거나, 일정 확률로 미체결 처리
-
부분체결: 체결 비율을 가정해 포지션을 나눠 반영
핵심은 숫자가 완벽하냐가 아니라 전략이 현실에서 버틸 정도로 보수적으로 테스트했는가입니다.
마무리
수수료, 슬리피지, 체결 실패를 넣는 순간 백테스트 성과는 보통 내려가요. 근데 그게 좋은 신호입니다.
그때도 살아남는 전략만이 실거래에서 “굴러갈 가능성”이 생기니까요.
댓글 0개






2026.03.05 14:00:52