과최적화(커브 피팅)를 피하는 방법
목차
과최적화(커브 피팅)를 피하는 방법
"백테스트에서는 연간 수익률 50%였는데, 실제 운용을 시작하자마자 우하향"—— EA 운용에서 가장 흔한 실패의 정체는 거의 확실히 커브 피팅(과최적화 / 오버피팅)입니다.
이 글에서는 커브 피팅이 왜 발생하는지, 어떻게 판별하는지, 그리고 설계 단계에서 어떻게 피할 수 있는지를 정리합니다.
커브 피팅이란
커브 피팅은 EA의 파라미터나 로직을 과거의 특정 가격 움직임에만 지나치게 최적화해버리는 현상을 말합니다. 과거 데이터에는 "우연히 그렇게 된" 무작위 움직임이 포함되어 있으며, 그것을 완벽하게 따라가는 파라미터는 미래의 우연한 움직임에는 대응할 수 없습니다.
머신러닝에서 말하는 "훈련 데이터에 과적합하여 테스트 데이터에서 성능이 붕괴되는" 것과 동일한 구조입니다.
커브 피팅이 발생하는 이유
주요 원인은 다음과 같습니다.
파라미터가 너무 많다
10개, 20개나 되는 파라미터가 있으면 그것들을 조작하는 것만으로도 과거의 모든 움직임을 거의 완벽하게 설명할 수 있습니다. 이는 "과거를 따라가는" 것에 불과하며, 시장의 본질을 포착한 것이 아닙니다.
최적화의 반복
같은 데이터로 몇 번이나 최적화를 돌리면 점차 그 데이터 고유의 특성에 적합해집니다. "이것도 안 되고, 저것도 안 된다"며 시행착오를 반복할수록 미래 시장에서 기능할 가능성은 낮아집니다.
평가 지표 선택 실수
"총이익 최대화"만을 목표로 삼으면 리스크를 무시한 극단적인 파라미터가 선택됩니다. 소수의 큰 수익 거래로 이익을 내는 해법은 미래에 재현될 가능성이 낮은 경우가 많습니다.
판별하는 방법
커브 피팅을 판별하는 징후를 순서대로 살펴보겠습니다.
1. 수치가 너무 좋다
PF 3.0 이상, 승률 80% 이상, 연간 수익률 100% 이상—— 이러한 수치를 보이는 EA는 거의 커브 피팅을 의심해야 합니다. 실제 운용에서 장기적으로 이 수준을 유지하는 EA는 드뭅니다.
2. 거래 횟수가 적다
수십 회 정도의 거래에서 PF 2.0이 나와도 통계적으로 의미가 없습니다. 최소 200회, 가능하면 500회 이상의 거래가 없으면 평가 자체를 신뢰할 수 없습니다.
3. 연도별 결과가 들쭉날쭉하다
연간 수익 곡선을 보면 특정 연도만 두드러지거나, 특정 연도만 크게 손실을 낸 경우가 있습니다. 연도별 결과가 극단적인 EA는 시장 국면에 지나치게 의존하고 있습니다.
4. 최근 기간의 결과가 무너진다
과거 10년 중 최근 1~2년만 성적이 악화된 경우, 로직 자체가 현재 시장에 맞지 않을 가능성이 있습니다.
5. 파라미터 민감도가 높다
최적 파라미터를 ±10% 조정했을 때 결과가 크게 무너진다면 위험 신호입니다. "뾰족한 정점"에 올라타 있을 뿐이며, 조건이 조금만 바뀌어도 무너집니다.
설계 단계에서 피하는 방법
커브 피팅은 "발생한 후 고치는" 것보다 "처음부터 피하는" 것이 효율적입니다.
1. 파라미터 수를 줄인다
로직상 의미 있는 파라미터만으로 좁힙니다. "일단 조정할 수 있으니 파라미터로 만들어두자"는 금물입니다. 최적화 대상은 3~5개로 억제하는 것이 현실적입니다.
2. 아웃오브샘플(OOS) 검증을 반드시 실시한다
과거 10년 데이터라면 전반 7년으로 최적화하고, 후반 3년으로 검증합니다. 전반과 후반에서 동등한 결과가 나오는 파라미터만 채택합니다.
3. 복수의 종목 · 복수의 시간대로 테스트한다
"XAUUSD H1에서만 이길 수 있는" EA는 그 조건에 과적합했을 가능성이 있습니다. EURUSD나 USDJPY에서도 일정한 경향이 나오는 로직 쪽이 견고성이 높은 경우가 많습니다.
4. 로직을 "설명 가능"하게 만든다
"왜 이 파라미터로 이 로직이 기능하는가"를 시장 메커니즘으로 설명할 수 있는 것이 중요합니다. "일단 백테스트에서 이겼으니까"로는 미래에서 기능할 근거가 없습니다.
5. 최적화를 "가볍게" 한다
세대 수를 너무 늘리지 않기, 평가 지표에 "거래 횟수" · "최대 DD" 필터를 적용하기, 상위 해법의 중앙값을 채택하기—— 이러한 "최적화를 절제하는" 방법이 커브 피팅 내성을 높입니다.
"평범한 수치"를 선택하는 용기
최적화 결과 중에서 가장 좋은 수치를 선택하고 싶어지는 것은 인지상정입니다. 하지만 장기 운용자 대부분은 "최고가 아닌, 평범한 수치의 파라미터"를 의도적으로 선택합니다.
이유는 단순합니다. 평범한 수치를 만드는 파라미터는 시장이 다소 변해도 성능이 크게 무너지기 어렵기 때문입니다. 최고의 수치를 만드는 파라미터는 그 조건 하에서만 최고인 것입니다.
본 사이트에서의 대처
GOLD_EMA_ATR_EA(XAUUSD H1)는 다음 방침으로 설계되었습니다.
- 최적화 대상 파라미터는 3개뿐(EMA 단기 · EMA 장기 · ATR 배율)
- 10년 데이터 중 전반 7년으로 최적화, 후반 3년으로 검증
- "연간 수익률 1
3%, 최대 DD 510%"의 범위에 수렴하는 해법의 중앙값 채택 - 결과적으로 PF 1.30, 연간 수익률 1.7%라는 보수적인 수치
화려한 수치가 아니기 때문에, 시장이 변화해도 붕괴되기 어려운 설계가 되어 있습니다.
정리
커브 피팅은 EA 운용에서 가장 큰 함정입니다. 백테스트 결과가 "꿈같은 수치"일수록 경계해야 합니다.
"평범한 수치를, 오래 운용한다"—— 이것이 EA 운용의 소박하지만 확실한 승부 방법입니다.
무료 EA 다운로드
GOLD_EMA_ATR_EA는 과최적화를 의도적으로 피한 설계의 EA로 무료 배포하고 있습니다. 상세한 검증 보고서도 첨부되어 있습니다.
추천 브로커
실제 운용에서 "백테스트 결과에 가까운 성과"를 내기 위해서는 체결 품질이 높은 브로커 선택이 중요합니다.
관련 기사
5일간 이메일 강좌 (무료)
FX 자동매매의 본질, 백테스트의 올바른 해석, 브로커 선택 요령을 매일 1통 전해드립니다.
※ 개인정보는 엄격히 보호. 언제든 구독 해지 가능.