기록
15년 백테스트를 다시 돌렸더니 85.6%가 53.8%가 되었습니다
규칙 하나를 만들어 실전에 걸었고, 같은 주에 그 근거를 내렸습니다. 원인은 시장이 아니라 제가 쓴 「시가」 데이터였습니다.
옵션 만기일 아침에 정산되는 계약이 있습니다. 월물 AM 정산이라고 부릅니다.
이런 계약은 만기일 장중에 손쓸 수가 없습니다. 금요일 아침 한 번의 값으로 끝나기 때문입니다. 그러면 그 값이 목요일 종가에서 얼마나 멀리 튀는지가 전부입니다. 그 거리를 알면 목요일 밤에 포지션을 들고 가도 되는지 판단할 수 있습니다.
그래서 백테스트를 돌렸습니다.
1. 만든 규칙
15년치 · 만기 금요일 174회를 세었습니다.
목요일 종가 → 만기일 정산가
갭 중앙값 0.113% (지수 7,600 기준 약 9포인트)
±30포인트 안 85.6%
±50포인트 안 94.8%
방향 편향 없음 (t=+1.34 · p=0.181)
그리고 한 줄로 정리했습니다.
「월물 AM 정산의 손익은 만기일 아침이 아니라 전날 종가에 사실상 확정된다.」
숫자가 그렇게 말하고 있었습니다. 갭 중앙값이 9포인트고 85.6%가 ±30포인트 안에 들어온다면, 목요일 종가에서 30포인트 떨어진 자리는 여섯 번 중 다섯 번 이상 안전하다는 뜻이니까요.
저는 이 규칙을 실전에 걸었습니다. 목요일 종가보다 28포인트 위에 숏을 둔 콜 크레딧 스프레드를 열고 밤을 넘겼습니다.
2. 결과
정산가는 목요일 종가보다 46.77포인트 위에서 찍혔습니다.
목요일 종가 7,641.16
정산가 7,687.93 = +46.77pt (+0.612%)
±30포인트 밴드 밖입니다. 최대손실로 끝났습니다.
여기까지는 그냥 «6분의 1이 나온 날»일 수 있습니다. 85.6%라는 건 14.4%는 틀린다는 뜻이고, 하루로는 아무것도 판정되지 않습니다.
그래서 결과를 해석하기 전에 백테스트를 먼저 다시 열었습니다.
3. 🚨 제가 쓴 「시가」의 절반이 시가가 아니었습니다
백테스트는 무료로 받은 지수 일봉의 시가(Open) 를 정산가 대용으로 썼습니다. 그 열을 한 줄씩 세어봤습니다.
시가 == 전일 종가 인 행의 비율
1998 ~ 2004년 96.7%
2011 ~ 2015년 12.3%
|시가 − 전일 종가| 평균 1.05포인트
1998~2004년 구간은 사실상 시가가 없습니다. 전일 종가가 그 자리에 들어가 있습니다.
15년을 잡았으니 그 절반가량이 「가짜 시가」 위에서 계산된 것입니다. 그리고 이 오염은 결과를 아무 방향으로도 밀지 않습니다 — 갭을 0에 가깝게 만듭니다. 시가가 전일 종가면 갭이 정의상 0이니까요.
제 백테스트가 «갭이 작다»는 결론을 낸 이유가, 데이터의 절반이 «갭 없음»이었기 때문입니다.
⚠️ 원인은 확인하지 못했습니다. 데이터를 넘겨준 쪽이 채워 넣은 것인지, 원자료 자체가 그 시기에 시가를 공표하지 않았는지 저는 아직 모릅니다. 아는 건 그 열을 그대로 쓰면 안 된다는 것뿐입니다.
4. 실제 정산가로 다시 돌렸습니다
정산가는 대용치를 쓸 이유가 없습니다. 거래소가 28년치를 공표하고 있습니다. 그걸로 다시 돌렸습니다.
| 옛 백테스트 (대용 시가) | 실제 정산가 28년 | |
|---|---|---|
| 「만기 금요일 갭이 일반 금요일보다 작다」 | 유의 | t=+0.39 · p=0.70 — 재현 안 됨 |
| 갭 중앙값 | 0.113% (≈9pt) | 0.346% (≈26pt) |
| ±30포인트 안 | 85.6% | 53.8% |
53.8%는 동전 던지기입니다.
제가 «사실상 확정된다»고 적은 문장은, 실제로는 절반 조금 넘게 맞는 이야기였습니다. 그리고 갭 중앙값은 9포인트가 아니라 26포인트입니다 — 세 배 가까이 넓습니다.
이 규칙의 신뢰도를 0.85에서 0.15로 내렸습니다.
5. 결과가 아니라 데이터가 규칙을 내렸습니다
여기가 제가 남겨두고 싶은 자리입니다.
포지션이 최대손실로 끝났다 → 하루 결과. 아무것도 증명하지 않는다
데이터의 절반이 합성값이었다 → 근거 자체가 없어졌다
둘은 각각 무너진 것이지, 앞의 것이 뒤의 것을 무너뜨린 게 아닙니다.
만약 그 포지션이 이겼다면 저는 이 데이터를 열어보지 않았을 겁니다. 그게 무서운 부분입니다. 이겼다면 «85.6%가 또 맞았다»고 적고, 오염된 근거를 그대로 다음 달에 다시 썼을 겁니다.
진 것보다, 이겼으면 안 들여다봤을 거라는 쪽이 더 값비쌉니다.
6. 자기 데이터에서 확인하는 법
제가 한 건 열 두 개를 비교한 것뿐입니다.
# 시가가 전일 종가와 같은 행의 비율
same = (df["Open"] == df["Close"].shift(1)).mean()
# 연도별로 나눠서 봅니다 — 구간마다 다릅니다
df.groupby(df.index.year).apply(
lambda g: (g["Open"] == g["Close"].shift(1)).mean()
)
연도별로 나눠 보는 게 중요합니다. 전체 평균만 내면 묻힙니다. 제 경우도 20112015년은 12.3%라 전체로는 눈에 안 띄는데, 19982004년만 보면 96.7%였습니다.
부동소수점이 걸리면 abs(Open − 전일 Close) < 0.01 로 보시면 됩니다.
이 오염에 걸리는 것들
시가로 판정하는 것 전부입니다.
| 갭 전략 | 갭 크기 자체가 0으로 눌립니다 |
| 시가 대비 종가 (양봉·음봉) | 「시가 = 전일 종가」면 사실상 전일 종가 대비가 됩니다 |
| 오프닝 레인지 | 시작점이 가짜입니다 |
| AM 정산 계약 | 제 경우입니다 |
| 오버나잇 보유 | 밤 사이 움직임이 사라집니다 |
종가만 쓰는 백테스트는 대체로 안전합니다. 종가는 채워 넣을 이유가 없습니다.
7. 그리고 별개의 교훈 하나 — 정산가는 시가가 아닙니다
이건 데이터 문제와 무관하게, 제가 처음부터 잘못 알고 있던 것입니다.
월물 AM 정산은 지수의 시가로 하는 게 아닙니다. 만기일 아침에 구성 종목들의 첫 체결가를 따로 모아서 계산한 별도의 값으로 합니다. 지수 시가와 같은 값이 아닙니다.
2026-08-21 만기일
지수 시가 7,665.68
실제 정산가 7,687.93
────────────────────────
차이 22.25포인트
지수 시가로 봤으면 제 스프레드는 이익이었습니다. 실제 정산으로는 최대손실이었습니다. 같은 아침, 같은 포지션, 다른 숫자입니다.
이건 백테스트 전에 알았어야 하는 것이었습니다. 대용치를 쓸 때는 그 대용치가 얼마나 벗어나는지를 먼저 재야 하는데, 저는 «대충 비슷하겠지» 하고 넘어갔습니다.
📌 이 값이 무엇이고 왜 시가와 갈리는지는 따로 적었습니다 — AM 만기의 정산가는 세 번째 값입니다. 거래소 자료로 확인해 보니 22포인트는 오히려 평범한 크기였고, 이 값이 그날 지수가 지나가지 않은 가격일 수도 있다는 것도 거기서 알았습니다.
8. 남은 일
같은 데이터로 만든 다른 분석이 몇 개 더 있습니다. 전수 재검토가 필요합니다.
오늘 것만 고치면 같은 실수가 다른 이름으로 남습니다. 그리고 그때는 «이미 확인한 방식»이라고 생각해서 더 안 들여다볼 겁니다.
마치며
저는 무료 소스와 공식 데이터가 38% 차이 났던 것을 한 번 적었고, 승률 100%가 채점 코드 버그였던 것을 한 번 적었습니다. 이번이 세 번째인데, 앞의 둘과 종류가 다릅니다.
앞의 두 번은 값이 이상해서 들여다봤습니다. 38%는 눈에 띄고, 승률 100%도 눈에 띕니다.
이번엔 아무것도 이상하지 않았습니다. 갭 중앙값 0.113%는 그럴듯한 숫자입니다. 174회라는 표본도 충분해 보입니다. 유의성도 나왔습니다. 결과가 나온 뒤에 열어보지 않았으면 계속 그럴듯했을 겁니다.
그래서 이번에 배운 건 «데이터를 확인하라»가 아닙니다. «그럴듯한 결과일수록 원자료를 한 번 세어본다»입니다.
숫자가 이상할 때 확인하는 건 누구나 합니다. 숫자가 예쁠 때 확인하는 게 어렵습니다.
※ 이 글은 제가 만든 규칙의 검증 과정을 기록한 것이며, 특정 매매 기법이나 종목의 권유가 아닙니다. 모든 투자 판단과 그 결과는 투자자 본인에게 귀속됩니다.
이 글, 이해하기 어떠셨나요
어디가 막혔는지 알아야 다음 글을 고칠 수 있습니다. 이름도 메일도 받지 않습니다.
「옵션 실전 한 장 요약」 무료로 받기
강세장·약세장·횡보장 전략 선택표, 주문 전 체크리스트, 옵션 용어 한영 대조표를 보내드립니다.
이 글이 도움이 되셨다면
감마·콜월·풋월 같은 개념이 왜 그렇게 작동하는지는 결국 옵션 구조에서 나옵니다. 그 뿌리를 순서대로 정리한 책이 있습니다.
- 전략적 미국옵션트레이딩 I. 기본편 — 옵션이 처음이라면. 옵션체인 읽는 법부터
- 전략적 미국옵션트레이딩 II. 전략편 — 실제로 주문을 넣어보고 싶다면
- 전략적 미국옵션트레이딩 III. 고급전략편 — 횡보장에서 현금흐름을 만들고 싶다면
예전 글은 티스토리에 있습니다. 순차적으로 이곳으로 옮기고 있습니다. optiontrading.tistory.com
질문이 있으시면
댓글이나 방명록은 두지 않았습니다. 글에 대한 질문이나 오탈자 제보는 메일로 보내주세요. 읽고 답합니다. 다만 개별 투자 상담은 드리지 않습니다.
hello@optionphoenix.com