실험 설계
백테스트 가이드의 '백테스트 거래 비용' 글에서 거래가 잦은 규칙일수록 비용의 영향이 크다고 설명했습니다. 이 노트는 그 설명을 실제 계산으로 확인한 기록입니다. 매매 규칙과 기간, 유니버스는 고정하고 슬리피지 값만 바꿨습니다.
- 기간: 2020-01-02 ~ 2025-12-30(약 6년), 날짜를 고정해 계산했습니다.
- 유니버스: KOSPI200 구성 종목. 일별 시가총액 상위 200개를 그 시점의 구성으로 보는 방식이며 실제 KOSPI200의 편입·편출 규칙과는 다를 수 있습니다.
- 규칙 A(느린 규칙): 20일 이동평균이 60일 이동평균을 상향 돌파하면 매수, 하향 돌파하면 매도합니다.
- 규칙 B(빠른 규칙): 5일 이동평균이 20일 이동평균을 상향 돌파하면 매수, 하향 돌파하면 매도합니다.
- 자금과 보유: 초기 자본 1,000만 원, 종목당 자본의 10%, 최대 10종목 동시 보유. 손절·익절·트레일링 스톱과 리밸런싱은 쓰지 않았습니다.
- 체결: 신호가 나온 다음 거래일 시가에 체결합니다.
- 비용: 수수료는 매수·매도 각각 0.015%로 고정했고, 매도 증권거래세는 시행일 기준 법정 세율이 적용됩니다. 바꾼 값은 슬리피지뿐이며 0%, 0.05%, 0.1%, 0.2%, 0.4%의 다섯 단계입니다.
- 그 밖의 엔진 기본 동작: 배당은 배당소득세 15.4%를 뺀 세후 금액을 재투자하고, 매수 신호가 빈 자리보다 많은 날에는 최근 60거래일 수익률이 높은 종목부터 담습니다.
결과 1 — 느린 규칙(20/60 이동평균 교차)
거래 수는 슬리피지와 관계없이 292~294건으로 거의 같았고, 평균 보유 기간은 약 48일이었습니다. 슬리피지를 0%에서 0.4%로 올리자 CAGR은 16.8%에서 13.8%로 3.0%p 낮아졌고 최대 낙폭은 −35.0%에서 −38.4%로 깊어졌습니다.
20/60 이동평균 교차 규칙 — 슬리피지별 결과| 슬리피지 | CAGR | 총수익률 | 최대 낙폭 | 거래 수 | 샤프 비율 |
|---|
| 0% | 16.8% | 153.6% | −35.0% | 293 | 0.66 |
| 0.05% | 16.0% | 143.7% | −35.5% | 294 | 0.64 |
| 0.1% | 15.7% | 140.1% | −35.1% | 293 | 0.63 |
| 0.2% | 15.0% | 130.8% | −36.4% | 293 | 0.60 |
| 0.4% | 13.8% | 116.9% | −38.4% | 292 | 0.56 |
KOSPI200 구성 종목, 2020-01-02~2025-12-30, 수수료 0.015%, 다음 거래일 시가 체결. 널스탁 백테스트 엔진 v16.41.0으로 2026-10-21에 계산했습니다.
결과 2 — 빠른 규칙(5/20 이동평균 교차)
같은 조건에서 5/20 규칙은 거래가 929~940건으로 규칙 A의 약 3.2배였고, 평균 보유 기간은 약 15일이었습니다. 슬리피지를 0%에서 0.4%로 올리자 CAGR은 6.2%에서 −5.4%로 11.6%p 낮아졌고 최대 낙폭은 −44.6%에서 −61.1%로 깊어졌습니다.
5/20 이동평균 교차 규칙 — 슬리피지별 결과| 슬리피지 | CAGR | 총수익률 | 최대 낙폭 | 거래 수 | 샤프 비율 |
|---|
| 0% | 6.2% | 43.4% | −44.6% | 940 | 0.27 |
| 0.05% | 3.9% | 25.5% | −47.1% | 936 | 0.18 |
| 0.1% | 2.5% | 16.0% | −50.0% | 935 | 0.13 |
| 0.2% | 0.0% | 0.0% | −53.2% | 933 | 0.03 |
| 0.4% | −5.4% | −28.3% | −61.1% | 929 | −0.21 |
KOSPI200 구성 종목, 2020-01-02~2025-12-30, 수수료 0.015%, 다음 거래일 시가 체결. 널스탁 백테스트 엔진 v16.41.0으로 2026-10-21에 계산했습니다.
두 결과를 나란히 읽으면
슬리피지가 0.1%p 오를 때마다 CAGR이 줄어드는 폭은 규칙 A가 평균 약 0.75%p, 규칙 B가 약 2.9%p였습니다(0%~0.4% 구간의 감소분을 4로 나눈 값). 거래 수 차이는 약 3.2배인데 비용에 대한 민감도 차이는 약 3.9배로, 거래 수 비율보다 더 크게 벌어졌습니다.
슬리피지를 0%에서 0.4%로 올리는 동안 승률(이익으로 끝난 거래의 비율)도 규칙 A는 34.1%에서 32.2%로, 규칙 B는 32.1%에서 27.1%로 내려갔습니다.
이 노트는 어느 규칙이 더 낫다는 비교가 아닙니다. 비용을 0%로 둔 첫 줄에서도 두 규칙의 결과는 서로 다르며, 여기서 본 것은 같은 규칙 안에서 비용 가정이 바뀔 때 결과가 얼마나 움직이는가입니다.
이 실험이 말해 주지 않는 것
- 하나의 기간, 하나의 유니버스, 두 개의 규칙만 시험했습니다. 다른 기간이나 다른 규칙에서도 같은 크기로 나타난다는 뜻이 아닙니다.
- 0%~0.4%는 민감도를 보기 위해 고른 구간이며 실제 체결 비용 수준을 뜻하지 않습니다. 슬리피지 0%는 실제로는 성립하기 어려운 가정입니다.
- KOSPI200 구성은 시가총액 순위로 근사한 것이라 실제 지수 구성과 다를 수 있습니다.
- 주문 금액이 시장 가격에 주는 영향(시장충격)과 거래대금이 적은 종목의 체결 문제는 슬리피지 한 숫자로 요약한 것 이상으로 반영하지 않았습니다.
- 엔진 버전이나 데이터가 갱신되면 값이 달라질 수 있어 엔진 버전과 계산 날짜를 표 아래에 적었습니다. 모든 값은 과거 데이터 기반 시뮬레이션이며 미래 수익은 보장되지 않습니다.
연구노트는 과거 데이터에서 관측된 계산 결과를 기준일과 설정값과 함께 기록한 자료입니다. 특정 종목·전략의 매수·매도를 권유하거나 우열을 판단하지 않으며, 모든 결과는 과거 데이터 기반 시뮬레이션이므로 미래 수익은 보장되지 않습니다.