OptiNod アカデミー

백테스트는 되는데 내 손에선 안 되는 이유 — 신호와 집행 사이

백테스트에서 확인한 좋은 기댓값은 진입 규칙에 있습니다. 실전 손익은 그 규칙을 실제 매매에서 얼마나 지켰느냐에서 갈리고, 그 차이는 R로 잽니다.

> 백테스트에서 확인한 좋은 기댓값은 진입 규칙에 들어 있습니다. 정작 실전 손익은, 그 규칙을 실제 매매에서 얼마나 지켰느냐에서 갈립니다.

백테스트에서 기댓값이 플러스로 나온 전략이 실계좌에서는 손실을 내는 일은 흔합니다. 백테스트가 잰 것은 진입·청산 규칙 그 자체의 기댓값입니다. 규칙은 정해진 시점에 정해진 가격으로 들어가고 나옵니다. 하지만 실전 손익에는 그 규칙에 사람의 판단이 더해집니다.

대중은 이 차이를 "전략이 실전에서는 잘 안 통한다"고 뭉뚱그리며 원인을 전략 탓으로 돌립니다. 전략을 탓하면 고칠 방법은 전략을 바꾸는 것뿐입니다. 그런데 같은 사람이 새 전략을 짜도, 같은 매매 습관이 같은 차이를 만듭니다. 문제가 어디 있는지 잘못 짚으면 아무리 고쳐도 그대로입니다.

실거래 기댓값은 백테스트 기댓값에서 두 종류의 차이를 뺀 값입니다. 하나는 기계적 차이, 다른 하나는 집행 차이입니다. 기계적 차이는 수수료·슬리피지·체결 시점·룩어헤드에서 생기고, 집행 차이는 규칙을 실제 매매로 옮기는 단계에서 사람 판단이 끼면서 생깁니다.

이 시리즈가 다루는 것은 집행 차이입니다. 그 크기를 먼저 숫자로 재야 어느 편향부터 고칠지 정할 수 있습니다. 이 글은 그 차이를 R 단위로 재는 방법과, 시리즈의 각 편이 어디에 놓이는지를 정리합니다.

같은 전략에서 기댓값은 두 개로 갈립니다

백테스트 기댓값은 진입 규칙이 과거 데이터에서 낸 평균 손익입니다. 규칙은 신호봉에 들어가고, 손절·목표·청산 신호에서 포지션을 닫습니다. 망설임도 없고, 늦은 진입도 이른 청산도 없습니다. 그래서 이 값이 전략이 낼 수 있는 최선입니다.

실거래 기댓값은 같은 규칙을 사람이 실행한 결과입니다. 진입은 신호보다 몇 봉 늦어지고, 청산은 계획보다 이르거나 늦어집니다. 손절도 지켜질 때가 있고 미뤄질 때가 있습니다. 규칙은 같은데 체결이 달라지니, 두 기댓값이 갈립니다.

그래서 "전략이 실전에서는 잘 안 통한다"는 말에는 두 가지가 섞여 있습니다. 규칙 자체의 문제와, 그 규칙을 실행하는 단계의 문제입니다. 이 둘을 나누지 않으면, 멀쩡한 규칙을 버리고 같은 집행 습관을 새 규칙에 그대로 들고 갑니다. 두 기댓값을 각각 숫자로 적어 보기 전에는 어느 쪽이 문제인지 알 수 없습니다.

기계적 차이는 이미 측정 도구가 있습니다

백테스트 기댓값과 실거래 기댓값의 차이는 둘로 나뉩니다. 첫 번째는 기계적 차이입니다. 사람의 판단과는 상관없이, 백테스트가 가정한 조건과 실제 시장이 다른 데서 생깁니다.

  • 수수료와 슬리피지: 백테스트가 0으로 두거나 낮게 잡은 거래비용이 실거래에서는 매 체결마다 붙습니다. 슬리피지·수수료·유동성에서 그 크기를 다룹니다.
  • 체결 시점: 백테스트는 종가나 다음 봉 시가처럼 가정된 가격에 체결합니다. 실거래 체결가는 그 가정과 달라집니다. 백테스트와 실전에서 수익 곡선이 갈라지는 지점을 정리합니다.
  • 룩어헤드와 리페인팅: 백테스트에서 완벽했던 신호가 실시간에는 없었던 신호일 수 있습니다. 룩어헤드와 리페인팅이 이 경우를 다룹니다.

이 세 가지는 규칙을 완벽히 지켜도 남는 차이이고, 사람 심리와는 관계가 없습니다. 그래서 이 시리즈에서 자세히 다루지는 않습니다. 다만 집행 차이를 재려면 기계적 차이부터 걷어내야 합니다. 그래야 걷어내고 남은 부분이 순전히 사람 판단 때문이라고 볼 수 있습니다.

나머지 차이는 규칙을 실행한 사람에게서 생깁니다

기계적 차이를 걷어내고도 남는 차이가 집행 차이입니다. 같은 신호를 두고 사람이 규칙과 다르게 움직인 부분입니다.

2024년 11월 초 비트코인은 약 69,000달러에서 상승을 시작해 12월 17일 108,353달러까지 약 57% 올랐습니다. 추세 규칙은 상승 초입 신호봉에 들어가 추세가 끝나는 신호까지 들고 갑니다. 그런데 같은 구간에서 사람의 실제 매매는 여러 방향으로 규칙을 벗어납니다.

  • 진입이 늦어집니다. 신호봉을 놓치고 이미 오른 뒤에 들어가면, 손절폭은 그대로인데 목표까지 거리가 줄어 손익비가 낮아집니다. 이 지연은 FOMO 추격에서 다룹니다.
  • 청산이 이릅니다. 며칠 만에 난 8% 이익을 지키려고 서둘러 닫으면, +57%까지 갈 수 있던 평균이익을 +8%로 줄입니다. 이 습관은 처분효과에서 다룹니다.
  • 손절이 미뤄집니다. 하락 구간에서 계획한 손절을 미루면, 1R로 끝났을 손실이 여러 배로 불어납니다. 2025년 10월 6일 126,200달러 고점 부근에서 손절을 미룬 포지션은 11월 21일 80,600달러까지, 약 36% 손실로 커졌습니다.
  • 거래가 늘어납니다. 손실 직후 회복 압박에 진입 기준을 낮추면, 거래 수가 늘고 그만큼 붙는 비용이 기댓값을 깎습니다.

같은 상승 한 번을 두고도 이 네 가지 집행이 서로 다른 손익을 만듭니다. 규칙은 하나인데 결과가 갈리는 이유가 여기 있습니다. 이 부분을 숫자로 재지 않으면, 계좌가 줄어드는 원인이 규칙에 있는지 집행에 있는지 정할 수 없습니다.

계획과 실제 청산 차이

집행 차이는 R로 측정됩니다

집행 차이를 느낌으로만 두면 어디를 고쳐야 할지 막연합니다. 거래 기록으로 옮기면 기댓값을 두 번 계산해서 잴 수 있습니다.

먼저 한 거래의 기댓값은, 승률에 평균이익 R을 곱한 값에서 패율에 평균손실 R을 곱한 값을 뺀 것입니다. R은 한 거래에서 감수한 손절폭을 1로 놓은 단위이고, 계산법은 기댓값에 정리돼 있습니다.

이 값을 두 번 계산합니다. 한 번은 실거래 전체로, 한 번은 규칙을 지킨 거래만 따로 모아서요. 규칙을 지킨 거래란 신호 시점에 들어가고 손절과 목표를 계획대로 지킨 거래입니다. 두 값의 차이가 집행 차이의 크기입니다. 규칙을 지킨 거래의 기댓값이 전체보다 뚜렷이 높으면, 계좌를 줄이는 원인은 규칙을 벗어난 거래에 있습니다.

예를 들어 규칙을 지킨 거래만 모은 기댓값이 +0.30R이고 전체 실거래 기댓값이 +0.05R이면, 집행 차이는 0.25R입니다. 규칙을 벗어난 몫이 한 거래마다 0.25R씩 기댓값을 깎은 셈입니다. 백테스트 기댓값이 +0.40R이었다면, 남는 0.10R은 기계적 차이입니다. 세 값을 이렇게 나란히 놓으면, 계좌가 줄어든 원인에서 집행이 차지하는 비중이 숫자 하나로 나옵니다.

백테스트 기댓값에서 이 집행 차이와 기계적 차이를 빼면 실거래 기댓값이 됩니다. 세 값을 R로 나란히 적어 두면 어느 차이가 큰지 한눈에 보입니다.

  • [ ] 백테스트 기댓값: 백테스트 결과에서 한 거래당 기댓값을 R로 적습니다.
  • [ ] 실거래 기댓값: 실제 체결 기록에서 같은 공식으로 한 거래당 기댓값을 R로 적습니다.
  • [ ] 차이 분해: 두 값의 차이를 기계적 차이와 집행 차이로 나눕니다.
  • [ ] 규칙 준수 태깅: 모든 실거래를 규칙 준수와 규칙 위반으로 표시하고, 두 묶음의 기댓값을 따로 계산합니다.
  • [ ] 위반 사유 분류: 규칙을 벗어난 거래마다 늦은 진입·이른 청산·손절 미집행·초과 거래 중 무엇이었는지 적습니다.
백테스트와 실거래 기댓값 차이

두 가지 함정

*집행 차이를 전부 심리 탓으로 돌리는 오해.* 규칙을 지킨 거래와 전체 거래의 기댓값 차이에는 기계적 차이도 섞여 있습니다. 수수료와 슬리피지를 걷어내지 않고 남은 차이를 전부 심리로 두면, 실제 심리 몫이 부풀려집니다. 집행 차이를 재기 전에 거래비용부터 실제 숫자로 반영해야 합니다.

*표본이 적은 차이를 성급히 결론 내는 착각.* 거래 스무 건으로 낸 기댓값 차이는 우연으로도 크게 흔들립니다. 규칙 준수 거래와 위반 거래가 각각 충분히 쌓이기 전에는, 두 기댓값의 차이를 집행 차이로 확정하기 이릅니다. 표본이 적으면 차이의 부호가 표본에 따라 뒤집힙니다.

어느 편향부터 고칠지는 이 숫자가 정합니다

집행 차이를 숫자 하나로 재고 나면, 그 숫자를 만든 위반 사유가 고칠 순서를 정해 줍니다. 이른 청산이 크면 처분효과와 출구 규칙을, 늦은 진입이 크면 FOMO 추격과 진입 규칙을, 손실 직후 과도한 거래가 크면 복수매매와 거래 한도를 먼저 봅니다. 이 시리즈의 각 편은 편향 하나씩을 맡아, 그 편향이 거래 기록에 어떤 지표로 남는지와 어떤 사전 규칙으로 줄어드는지를 다룹니다.

순서를 정하는 기준은 마음가짐에 있지 않습니다. 측정한 차이가 순서를 정합니다. 백테스트 기댓값과 실거래 기댓값을 R로 적고 그 차이를 기계적 차이와 집행 차이로 나누는 일, 그것이 이 시리즈의 출발점입니다. 어느 편향이 가장 큰지는 계좌를 지켜보는 느낌으로는 알 수 없습니다. 거래 기록의 숫자가 알려 줍니다.