Backtesting Without Fooling Yourself
A step-by-step path from what your backtest really optimizes to proving an edge survives overfitting, multiple testing, and live execution. Read top to bottom — each part builds on the last.
- 01
Jun 28, 2026#algotrading목적함수 설계: 최적화하는 지표가 전략을 은밀하게 고른다
"최선"의 전략을 찾으려면 먼저 "최선"이 무엇인지부터 정의해야 합니다 — 그리고 그 스칼라가 은밀하게 승자를 결정합니다. 알려진 엣지를 가진 합성 데이터(600개 시드, T=2000, 80개 임계값)에서, 나이브한 거래당 샤프는 복권을 승자로 옹립합니다: 56%의 시드에서 노출도 5% 미만인 승자를 고르고 57%에서는 퇴화합니다 — 가장 극단적인 시드에서는 8건의 거래가 인샘플 샤프 21.09를 기록했다가 아웃오브샘플에서 0.13으로 무너집니다. 정직한 수리법은 거의 시시할 정도입니다: 전체 타임라인에서 측정하면 결코 퇴화하지 않습니다(아웃오브샘플 1.71). 거래 수(conf_k) 축소와 노출 하한선으로 거래당 지표를 사후 보강할 수 있지만, 완전히 수리해도 전체 타임라인 샤프와 같아 질 뿐입니다(1.70 대 1.71) — 결코 그것을 넘어서지 못합니다. 굿하트의 법칙, 백테스트 안에서, 통제된 실측값과 함께.
- 02
Jul 8, 2026#알고트레이딩멀티 타임프레임 백테스트에서 선행 참조(look-ahead) 없음을 증명하기: 미래를 흔들어 과거가 그것을 볼 수 없음을 증명한다
멀티 타임프레임 백 테스트는 아직 최종 종가가 존재하지 않는, 형성 중인 상위 타임프레임 봉을 통해 미래를 누출한다. 코드 리뷰만으로는 확신을 얻을 수 없다 — 직접 테스트해야 한다. 우리는 라이브 봇의 마감 봉(closed-bar) 규칙을 정확히 재현한 뒤, 미래 이동(shifted-future) 프로브로 누출이 없음을 증명한다: 미래의 모든 봉을 교란시키고 과거의 모든 시그널과 트레이드가 비트 단위로 변하지 않음을 확인한다. 25개 항목 중 25개 정합성 검사를 통과했으며, 이 프로브는 실질적인 검증력을 갖추고 있다.
- 03
Jun 27, 2026#algotrading미래 참조 편향(Look-Ahead Bias): 한 바(bar)의 실수가 순수한 노이즈에서 Sharpe 15를 만들어내는 방법
백테스트를 조용히 부풀리는 미묘한 미래 참조 누출들에 대한 통제된 연구. 실제 엣지가 전혀 없는 상태에서, 동일 바 체결은 순수한 노이즈만으로 연율화 Sharpe +14.8을 만들어내고, 한 바 앞선 지표 엿보기는 +4.8을 만들어냅니다. 누출의 분류 체계, 측정된 규모, 그리고 돈을 잃기 전에 각 누출을 탐지하는 방법.
- 04
Mar 15, 2026#algotrading워크포워드 최적화: 유일하게 정직한 전략 테스트
단일 훈련/테스트 분할이 과적합을 방지하지 못하는 이유, 워크포워드 최적화가 파라미터 견고성을 체계적으로 검증하는 방법, 그리고 21개 파라미터에서 PnL@ML +3342%인 전략이 WFO 없이는 시한폭탄인 이유.
- 05
Mar 12, 2026#algotrading플래토 분석: 견고한 최적해와 과적합을 구별하는 방법
최적의 전략 파라미터를 찾는 것이 작업의 절반에 불과한 이유. 안정적인 플래토와 취약한 피크를 시각적·정량적으로 구별하는 방법, 그리고 Optuna 등고선 플롯이 최적화된 전략을 프로덕션에 투입하기 전 필수 단계인 이유.
- 06
Mar 10, 2026#algotrading멀티심볼 검증: 모든 페어에서 전략을 테스트하라
ETHUSDT에서 최적화된 전략이 알트코인에서 실패하는 이유. 페어 그룹(블루칩, 대형주, 잡코인)에 걸친 올바른 테스트 방법과 크로스심볼 견고성 점수의 충분한 기준.
- 07
Mar 6, 2026#algotrading몬테카를로 부트스트랩: 10줄의 코드로 백테스트 신뢰구간을 얻는 방법
백테스트의 단일 점추정이 왜 위험한 착각인지. 몬테카를로 부트스트랩이 2초의 계산으로 PnL과 MaxDD의 95% 신뢰구간을 제공하는 방법, 그리고 이것이 전략을 프로덕션에 배포하기 전에 필수적인 단계인 이유.
- 08
Jul 1, 2026#algotrading백테스트 과적합 확률: 당신의 서치는 동전 던지기를 이겼는가?
디플레이티드 샤프 비율은 승리한 전략의 값을 매기고, PBO는 그것을 골라낸 서치의 값을 매깁니다. 조합적 대칭 교차검증은 1000x200 성과 행렬에 대해 C(16,8) = 12,870번의 훈련/테스트 분할을 실행하고 묻습니다: 인샘플 승자가 아웃오브샘플에서 하위 절반에 떨어지는가? 거의 모두가 놓치는 함정 — PBO의 null은 1이 아니라 0.5입니다. 제로 엣지 전략 200개에서 최고 인샘플 연율화 샤프 1.98은 아웃오브샘플에서 0.06으로 무너지고 PBO = 0.476: 동전 던지기, 완전한 과적합입니다. 진짜 엣지(연율화 샤프 2.38)를 심으면 PBO는 0.001로 떨어지고, 인샘플 3.73은 아웃오브샘플 2.34로 살아남습니다. 순수한 랜덤 워크 위의 이동평균 그리드 역시 아웃오브샘플 스킬이 전혀 없습니다 — 60개 행렬에 걸쳐 평균낸 PBO 0.463은 통계적으로 null과 구별되지 않습니다 — 그리고 하나의 대표 행렬에서는 그 신기루가 생생합니다: 최고 인샘플 샤프 2.33이 아웃오브샘플 중앙값 -0.22로 무너지고, PBO 0.573, 손실 확률 63%.
- 09
