자동매매 봇 여정 · 2화
승률 39.2%. 51건을 거래한 첫 시스템의 성적표를 처음 봤을 때, 솔직히 나쁘지 않다고 느꼈습니다. 거래 내역을 죽 훑으면 어딘가 ‘되는 것 같은’ 냄새가 났거든요. 감으로는 분명 돈을 벌고 있었어요. 그런데 AI 멘토가 그 데이터를 검증의 칼날 위에 올린 순간, 첫 시스템은 사망선고를 받습니다.
패턴 C — 그럴듯해 보였던 첫 봇
첫 시스템의 이름은 패턴 C, 분봉 모멘텀 풀백을 노리는 스캘핑 봇이었습니다. 짧게 치고 빠지는 전략이라 거래가 빨리 쌓였고, 51건의 표본이 모였어요. 승률 39.2%. 표면상으로는 거래당 기댓값이 살짝 양수처럼 보였습니다. 여기서 멈췄다면, 나는 이 봇을 믿고 실전에 내보냈을 거예요.
4중 검증의 잔혹함
멘토는 “느낌”을 믿지 않았습니다. 대신 네 가지 검증을 동시에 돌렸어요. 정확 재라벨링, 5-겹 교차검증, 부트스트랩 95% 신뢰구간, 그리고 민감도 분석. 쉽게 말하면 “이 수익이 운이 아니라 진짜 실력인지”를 네 각도에서 추궁한 겁니다.
감으로 양수처럼 보여도 — 95% 신뢰구간 앞에선 진실이 드러난다
결과는 냉혹했습니다. 후보 룰을 아무리 바꿔봐도, 통계가 인정하는 진짜 양수 알파는 없었어요.
| 후보 룰 | 교차검증 기댓값 | 95% 신뢰구간 하한 | 평가 |
|---|---|---|---|
| 패턴 C (현재) | -0.048% | -0.390% | 폐기 |
| chg6+bull06 | -0.142% | -0.480% | 폐기 |
| chg≥1.5+vol | +0.110% | -0.195% | 약한 양수(한계) |
| vol5+hl≥0.88 | -0.023% | -0.279% | 통계 불충분 |
자존심보다 시드
그래서 우리는 봇의 자동 진입을 꺼버렸습니다. `ADAPTIVE_ENABLE=false`. 한 줄의 설정으로 첫 시스템을 스스로 폐기한 거예요. 시드는 그대로 보존하고, 그동안 쌓은 인프라(데이터·코드)만 남겼습니다.
아팠습니다. 몇 주를 쏟은 시스템이었으니까요. 하지만 39.2%의 승률이 감으로는 양수처럼 느껴진다는 게 바로 함정이었어요. 진짜 알파의 기준은 ‘느낌’이 아니라 ‘95% 신뢰구간이 양수인가’였습니다. 음수 기댓값 시스템은, 자존심이 뭐라 하든 즉시 정지. 그게 시드를 지키는 첫 번째 규율이었어요.
첫 시스템은 죽었습니다. 하지만 폐기는 끝이 아니라 시작이었어요. 며칠 뒤, 우리는 완전히 다른 가설을 들고 2,624개 종목과 5년치 데이터를 뒤지기 시작합니다. 그리고 거기서 — 237건의 거래가 말해준 진짜 알파를 발견하죠. 다음 화, ‘알파 사냥꾼’입니다.