샘플 내 테스트 vs 샘플 외 테스트: 어떻게 더 신뢰성 있게 EA를 평가할 수 있을까?
이전 글에서 우리는 어떻게 전문가 어드바이저(EA)를 "최적화"(Optimization)하는지, 즉 과거의 역사적 데이터에서 더 좋은 성과를 내도록 파라미터 설정을 조정하는 방법에 대해 이야기했습니다.또한 "과적합"(Overfitting)의 함정을 조심해야 한다고 언급했는데, 이는 EA가 과거 데이터에 너무 완벽하게 맞춰져서 오히려 미래에는 성과가 나빠질 수 있다는 의미입니다.
그렇다면, 최적화로 찾은 "최적" 파라미터 설정이 정말 시장의 규칙을 배운 것인지, 아니면 단순히 과거 데이터를 "암기"한 것인지 어떻게 알 수 있을까요?
이때 샘플 내 테스트(In-Sample Testing)와 샘플 외 테스트(Out-of-Sample Testing)라는 두 개념이 매우 중요해집니다.
이들은 EA 전략을 더 신뢰성 있게 평가하는 데 도움을 줍니다.

샘플 내 테스트(In-Sample Testing)란?
간단히 말해:
샘플 내 테스트는 최적화 과정에서 사용한 그 구간의 역사적 데이터를 의미합니다.교과서를 복습하는 것과 같음:
시험 준비를 위해 선생님이 표시해 둔 교과서 내용을 복습하는 상황을 상상해 보세요.EA가 최적화할 때도 이 샘플 내 데이터를 "학습"하며, 이 데이터 구간에서 가장 좋은 성과를 내는 파라미터 설정을 찾는 것입니다.
목적은?
특정 역사적 데이터 구간에서 EA가 가장 좋은 성과를 낼 수 있는 파라미터 조합을 찾는 것입니다.제한점은?
샘플 내 데이터에서 좋은 성과를 냈다고 해서 미래에도 반드시 좋은 성과를 낸다는 보장은 없습니다.EA가 단지 이 데이터의 특수한 패턴이나 노이즈를 "기억"했을 뿐, 진정한 일반화된 규칙을 배우지 못했을 수 있기 때문입니다.
이것이 과적합의 위험입니다.
샘플 외 테스트(Out-of-Sample Testing)란?
간단히 말해:
샘플 외 테스트는 최적화 과정에서 전혀 사용하지 않은 다른 구간의 역사적 데이터를 이용해, 샘플 내 테스트에서 찾은 "최적" 파라미터 설정을 검증하는 것입니다.모의고사를 보는 것과 같음:
교과서(샘플 내 테스트)를 복습한 후, 한 번도 본 적 없는 모의고사(샘플 외 데이터)를 풀어보며 자신의 학습 정도를 시험하는 것과 같습니다.샘플 외 테스트는 EA가 최적화된 파라미터로 "본 적 없는" 역사적 데이터를 테스트하는 것입니다.
목적은?
그 "최적" 파라미터가 새로운, 즉 미지의 역사적 데이터에 대해서도 좋은 성과를 내는지 확인하는 것입니다.이를 통해 EA가 진짜 실력을 갖췄는지, 아니면 단지 샘플 내 데이터에만 맞춘 "시험 답안"을 외운 것인지 판단할 수 있습니다.
어떻게 도움이 되나?
- EA가 샘플 외 데이터에서도 여전히 괜찮은 성과를 낸다면(샘플 내만큼 완벽하지는 않아도 수용 가능한 수준이라면), 이 전략이 심각한 과적합이 아니며 비교적 신뢰할 만하다고 자신할 수 있습니다.
- EA가 샘플 외 데이터에서 성과가 매우 나쁘다면(예: 수익에서 손실로 전환), 이는 강력한 경고 신호입니다! EA가 심각하게 과적합되었고, 이전에 찾은 "최적" 파라미터가 신뢰할 수 없다는 뜻일 가능성이 큽니다.
왜 이것이 중요한가? (걱정을 해소하는 이유)
- 손실에 대한 두려움 감소: 샘플 외 테스트는 "실전"에 더 가까운 검증을 제공합니다. 전략이 샘플 외 테스트에서 성과가 나쁘면, 실제 자금을 투입하기 전에 경고를 받는 셈입니다. 전략의 실제 잠재적 위험을 이해하면 기대 관리를 돕고 미래 손실에 대한 두려움을 줄일 수 있습니다.
- 과적합 함정에 대응: 과적합을 피하는 가장 직접적이고 효과적인 방법 중 하나입니다. 많은 사람들이 최적화 후 완벽해 보이는 샘플 내 백테스트 결과에 속기 쉽지만, 샘플 외 테스트가 이 "허상"을 깨뜨려 줍니다.
- 더 현실적인 신뢰 구축: EA가 샘플 내와 샘플 외 데이터 모두에서 합리적인 성과를 낼 때만, 과적합에 기반한 허위 신뢰가 아닌 실제로 전략에 대한 현실적인 신뢰를 가질 수 있습니다.
이 두 가지 테스트는 어떻게 진행하나? (간단한 개념)
일반적으로 보유한 역사적 데이터를 두 구간(또는 그 이상)으로 나눕니다:- 샘플 내 (In-Sample): 이 구간 데이터를 사용해 최적화를 진행하고 최적 파라미터를 찾습니다.
- 샘플 외 (Out-of-Sample): 이 구간 데이터는 "숨겨두고", 최적화 과정에 전혀 사용하지 않습니다. 최적화가 끝난 후, 찾은 최적 파라미터로 이 구간에서 일반 백테스트를 실행해 결과를 확인합니다.

일부 거래 플랫폼(예: MT5)의 전략 테스터는 "포워드 테스트"(Forward Testing) 기능을 제공하여 이 데이터 분할과 테스트 과정을 자동으로 수행할 수 있습니다.
요약: 최적화 결과 검증의 핵심 단계
EA 파라미터 최적화는 전략을 더 좋아 보이게 할 수 있지만, 반드시 검증이 필요합니다.- 샘플 내 테스트 는 "잠재력 있는" 파라미터를 찾는 데 도움을 줍니다.
- 샘플 외 테스트 는 이 파라미터들이 정말 "신뢰할 만한지" 검증해 줍니다.
이 두 단계 테스트를 통해 EA 전략의 견고성을 더 깊이 이해하고 과적합 위험을 효과적으로 줄여, 더 현명한 거래 결정을 내릴 수 있습니다.
마지막으로 주의할 점: EA가 샘플 내와 샘플 외 테스트에서 모두 좋은 성과를 내더라도, 이는 여전히 과거 데이터에 기반한 결과입니다.
실제 자금을 투입하기 전 가장 중요한 마지막 단계는 항상 "데모 계좌"에서 실시간 테스트를 진행하는 것입니다.
EA를 현재 시장 환경에서 일정 기간 운용하며 실제 성과를 관찰하는 것이 최종 검증입니다.
이 글이 도움이 되었다면 친구와 공유해 주세요.
더 많은 사람들이 외환 거래에 대한 지식을 함께 배울 수 있도록 하세요!
더 많은 사람들이 외환 거래에 대한 지식을 함께 배울 수 있도록 하세요!