공부방 ›
[백테스트] [심화] 선견 편향: 백테스트가 미래를 훔쳐보는 실수
백테스트가 실전보다 훨씬 좋게 나오는 가장 흔한 원인이 선견 편향(look-ahead bias)입니다. 그 시점에는 알 수 없던 정보를 쓰는 거예요.
흔한 예
- 아직 닫히지 않은 봉의 종가로 신호를 내는 것
- 하루가 끝나야 확정되는 값(일봉 고가·저가)으로 장중에 진입하는 것
- 나중에 값이 바뀌는 리페인팅 지표 (지그재그, 일부 프랙탈)
- 상위 타임프레임 봉이 끝나기 전 값을 쓰는 것
MQL5에서 피하는 법
// 새 봉이 시작될 때 한 번만 판단
datetime lastBar = 0;
bool IsNewBar()
{
datetime t = iTime(_Symbol, PERIOD_CURRENT, 0);
if(t != lastBar) { lastBar = t; return true; }
return false;
}
// 신호는 "이미 닫힌 봉"(인덱스 1)으로
double c1 = iClose(_Symbol, PERIOD_CURRENT, 1);
double h4Close = iClose(_Symbol, PERIOD_H4, 1); // 상위 타임프레임도 1번 봉점검법
- 백테스트를 "시가 기준"과 "실제 틱 기준"으로 각각 돌려 결과가 크게 다르면 의심하세요
- 데모 계좌에서 1~2주 돌린 체결 시점과, 같은 기간 백테스트 체결 시점을 비교해 보세요

