- 계좌에 +0.5%로 떠 있어도 팔면 손해입니다. 앱의 평가손익은 «살 때 낸 수수료»까지만 반영하고, 팔 때 나갈 수수료와 거래세는 안 들어가 있습니다.
- 2026년 1월에 증권거래세가 올랐습니다 — 코스피·코스닥 모두 0.15% → 0.20%. 금융투자소득세 폐지에 따른 환원입니다.
- 진짜 범인은 슬리피지입니다. 제가 잰 값으로 지정가 매도 0.195% 대 시장가 매도 1.0% — 다섯 배입니다. 소형주는 더합니다.
- 산 값 그대로 되팔기만 해도 1년이면 원금의 79%가 사라집니다. 매일 한 번 사고팔고, 주가는 하나도 안 움직였다는 가정에서 그렇습니다. 시장가로 던지면 97%가 사라집니다.
증권사 앱을 열면 보유 종목 옆에 +0.5%가 떠 있습니다. 조금이지만 벌었으니 팔아도 되겠다 싶습니다.
그런데 팔면 손해입니다. 계좌에 뜨는 숫자와 실제로 손에 쥐는 돈이 다르기 때문입니다.
이걸 자동매매를 만들면서 알았습니다. 그리고 이 차이가 제 첫 단타 모델을 죽인 이유이기도 했습니다. 숫자를 그대로 적어두겠습니다.
나가는 돈은 세 갈래입니다

① 위탁수수료. 증권사가 가져가는 몫입니다. 요즘은 비대면 계좌 기준 편도 0.015% 안팎으로 아주 작습니다. 사고팔아도 0.03%입니다.
여기까지만 보면 «수수료 무료 이벤트»라는 말에 마음이 놓입니다. 그게 함정입니다. 셋 중 가장 작은 것만 없애준 것이니까요.
② 증권거래세. 팔 때만 나갑니다. 그리고 이게 2026년 1월에 올랐습니다.
| 시장 | 2025년 | 2026년 (지금) |
|---|---|---|
| 코스피 | 거래세 0% + 농특세 0.15% = 0.15% | 거래세 0.05% + 농특세 0.15% = 0.20% |
| 코스닥 | 0.15% (농특세 없음) | 0.20% (농특세 없음) |
금융투자소득세가 폐지되면서, 그걸 전제로 내려뒀던 거래세를 되돌린 것입니다. 작년까지의 감각으로 계산하면 어긋납니다. 저도 백테스트에 옛 세율을 박아둔 채 돌리고 있었습니다.
③ 슬리피지. 셋 중 가장 크고, 가장 안 보이고, 유일하게 내가 줄일 수 있는 것입니다.
진짜 범인은 슬리피지입니다
슬리피지는 «이 값에 사겠다»고 생각한 가격과 실제로 체결된 가격의 차이입니다. 수수료처럼 명세서에 찍히지 않아서, 대부분 있는 줄도 모릅니다.
왜 생기냐면, 호가창에 걸린 물량이 유한하기 때문입니다. 시장가로 주문하면 «지금 있는 물량을 위에서부터 쓸어 담습니다». 100주만 걸려 있는데 500주를 사면, 나머지 400주는 더 비싼 값에 체결됩니다.
제가 실제로 잰 값입니다.
| 주문 방식 | 슬리피지 |
|---|---|
| 지정가 매도 | 0.195% |
| 시장가 매도 | 1.0% — 다섯 배 |
소형주는 더합니다. 호가창이 얇아서 몇 백만원어치만 시장가로 던져도 1%를 훌쩍 넘길 수 있습니다.
그래서 본전 매도가는 얼마인가
셋을 다 넣으면 «손해 안 보고 팔려면 최소 얼마에 팔아야 하는가»가 나옵니다.
| 사고파는 방식 | 왕복 비용 | 1%를 남기려면 |
|---|---|---|
| 지정가로 사고 지정가로 팔기 | 0.62% | 1.63% 올라야 |
| 지정가로 사고 시장가로 팔기 | 1.44% | 2.46% 올라야 |
| 둘 다 시장가 (소형주) | 2.26% | 3.28% 올라야 |
맨 위 줄이 답입니다. 계좌에 +0.5%로 떠 있어도 본전이 +0.62%라 팔면 손해입니다. 아껴서 지정가로만 거래해도 그렇습니다.
계좌 화면은 왜 그걸 안 알려주나 하면, 앱이 보여주는 평가손익은 «살 때 낸 수수료»까지만 반영하기 때문입니다. 팔 때 나갈 수수료와 거래세는 아직 안 낸 돈이라 안 들어가 있습니다. 앱이 틀린 게 아니라, 그 숫자의 뜻이 «지금 팔면 얼마»가 아닌 것입니다.
단타의 현실 — 산 값 그대로 팔기만 해도 원금이 녹습니다
여기서부터가 제가 하고 싶은 이야기입니다.
주가가 하나도 안 움직여서, 산 값 그대로 되팔았다고 칩시다. 매일 한 번 그렇게 하면 1년(250거래일) 뒤에 원금이 얼마 남을까요.

표의 숫자는 「남은 원금」입니다 — 작을수록 많이 잃은 것입니다.
| 방식 | 왕복 비용 | 20회 뒤 남은 원금 |
100회 뒤 | 250회(1년) 뒤 |
|---|---|---|---|---|
| 지정가 · 지정가 | 0.62% | 88.3% | 53.8% | 21.2% (−78.8%) |
| 지정가 · 시장가 | 1.44% | 75.1% | 23.9% | 2.8% (−97.2%) |
| 시장가 · 시장가 | 2.26% | 64.0% | 10.7% | 0.4% (−99.6%) |
비용이 클수록 남는 돈이 적습니다. 시장가로 사고팔면 왕복 2.26%인데, 그게 250번 곱해지면 원금이 사실상 전액 사라집니다.
다시 말하지만 이건 주가를 한 번도 못 맞히지 «않은» 사람의 결과입니다. 매번 산 값 그대로 팔았을 뿐 잘못 판단한 적이 없습니다. 그런데 아무리 아껴도 1년에 원금의 79%가 사라지고, 급하게 던지는 습관이 붙으면 97%가 사라집니다.
실제로는 손실 나는 거래도 섞이니 더 빠릅니다. «산 값에 팔았으니 본전»이라는 말이 성립하지 않는 이유가 이것입니다. 산 값에 파는 건 본전이 아니라 왕복 비용만큼의 확정 손실입니다.
그리고 이 표는 하루 한 번 기준입니다. 하루에 서너 번 사고파는 사람이라면 250회는 두 달 만에 채웁니다.
제 첫 단타 모델이 실패한 이유 세 가지
처음 만든 자동매매는 짧게 사고파는 방식이었습니다. 급하게 오르기 시작하는 종목을 잡아 짧게 먹고 나오는 것이었고, 백테스트에서는 잘 나왔습니다. 실제로는 안 됐습니다. 왜 안 됐는지가 셋으로 정리됩니다.
① 비용을 실제보다 적게 잡았습니다. 백테스트에서 슬리피지를 0.2%로 뒀는데, 실제 시장가 매도는 1.0%였습니다. 왕복으로 치면 0.63%로 계산하던 것이 실제로는 1.44%였습니다. 거래를 한 번 할 때마다 0.8%p씩 계산에 없던 돈이 나갔습니다.
단타는 거래 횟수가 많아서 이 차이가 그대로 곱해집니다. 한 달에 20번이면 16%p입니다. 전략이 아무리 좋아도 이걸 이길 수 없습니다.
② 급등을 쫓는 방향 자체가 마이너스였습니다. «오늘 많이 오른 종목을 사면 더 오른다»를 검증해봤더니, 상관관계가 음수로 단단하게 나왔습니다. 많이 오른 종목일수록 그 다음이 나빴습니다.
이건 비용 문제가 아니라 방향 문제입니다. 비용을 0으로 만들어도 안 되는 것이었습니다. 백테스트에서 잘 나왔던 건 계산이 미래를 훔쳐보고 있었기 때문이었고요.
③ 설계 자체가 비싼 쪽으로 되어 있었습니다. 짧게 먹고 나오려면 정해둔 조건에 걸리는 순간 즉시 팔아야 합니다. 그래서 청산이 대부분 시장가였습니다.
이게 구조적인 문제였습니다. 시장가로 나가는 설계는 시작부터 0.8%p를 지고 출발합니다. 반대로 «이 값에 오면 판다»고 미리 걸어두는 방식은 그 비용을 대부분 피합니다. 다만 그러려면 급하게 팔지 않아도 되는 전략이어야 하고, 그건 단타가 아닙니다.
그래서 바꾼 것
급하게 팔지 않아도 되는 구조로 옮겼습니다. 미리 «이 값에 판다»를 걸어두고 기다립니다. 슬리피지가 1.0%에서 0.195%로 내려가고, 거래 횟수도 줄어듭니다. 같은 전략이라도 이것만으로 결과가 달라집니다.
그리고 백테스트의 비용 설정을 실제로 잰 값으로 바꿨습니다. 이게 더 중요했습니다. 비용을 낮게 잡으면 안 되는 전략이 되는 것처럼 보이고, 그 착각 위에 몇 달을 씁니다.
혹시 자동매매나 백테스트를 만들고 계시다면 이것부터 확인해보시기 바랍니다 — 비용을 얼마로 넣었는지, 그리고 그 값을 어디서 가져왔는지. 어디서 본 숫자라면 다시 재보셔야 합니다.
'자동매매 일지 > 개발 이야기' 카테고리의 다른 글
| 백테스트 수익률이 비현실적으로 높을 때 — 연 1억%의 정체 (1) | 2026.08.20 |
|---|---|
| 자동매매 백테스트 첫 결과 — 연 1억%가 나왔습니다 (0) | 2026.08.20 |
| 파이썬 자동매매 시작하기 — 코딩의 '코'도 모르던 직장인의 첫걸음 (0) | 2026.08.19 |