해외 퀀트 커뮤니티 글 하나를 읽었는데, 너무 공감돼서 정리해둔다. 제목은 대충 이랬다.
“내 백테스트와 실제 수익의 가장 큰 차이는 결국 이거 하나였다.”
그리고 그 글을 읽고 “그럼 내 봇은 괜찮은가?”가 궁금해서 실제로 검증해봤다.
결론: 다행히 내 봇은 멀쩡했고, 덤으로 좋은 점검 도구 하나를 얻었다.
1. 무슨 이야기였나
글쓴이는 1년 동안 고민했다고 한다. 과거 데이터로 돌려보면(이걸 백테스트라고 한다) 분명히 돈을 버는 전략인데, 실제로 돌리면 수익이 -20~50%씩 깎여 나가더라는 거다.
범인은 의외로 단순했다.
“스프레드” 라는 보이지 않는 비용이었다.
쉽게 환전소를 생각하면 된다. 같은 달러인데도 내가 살 때 환율과 내가 팔 때 환율이 다르다.
그 차이가 환전소가 먹는 몫이다.
주식이든 코인이든 똑같다. 시장에는 늘 두 개의 가격이 있다.
- 내가 사려면 조금 비싼 값(파는 사람이 부르는 값)을 줘야 하고
- 내가 팔려면 조금 싼 값(사는 사람이 부르는 값)을 받아야 한다
이 둘 사이의 gap이 스프레드다. 그런데 많은 백테스트 프로그램이 이 둘의 딱 중간 값으로 사고팔았다고 계산해버린다. 문제는, 그 중간 값은 현실에 존재하지 않는 가격이라는 거다. 그래서 백테스트에선 안 내던 비용을, 실전에선 거래할 때마다 꼬박꼬박 내게 된다.
이게 무서운 건 거래가 잦을수록, 그리고 거래가 잘 안 되는(=사겠다는 사람이 적은) 종목일수록 이 틈이 커진다는 점이다.
큰 회사 주식은 틈이 아주 좁지만, 듣보잡 소형 코인은 틈이 훨씬 넓다. 작은 수익을 노리는 전략이라면, 이 틈 하나가 전략을 통째로 잡아먹을 수 있다.
2. 그래서, 내 봇은 괜찮나? — 직접 검증
내 코인 봇은 5개의 세부 전략이 동시에 돌아간다.
대부분은 비트코인이나 대형 코인처럼 잘 팔리는 것만 거래해서 이 틈이 거의 없다. 딱 하나, “추세에서 너무 벗어난 코인은 제자리로 돌아온다”에 베팅하는 평균회귀 전략 layer만 거래가 뜸한 중소형 코인 60개를 건드린다. 그러니 스프레드 함정에 걸린다면 바로 이 녀석이다.
그래서 이 전략 하나만 콕 집어, 거래비용을 일부러 뻥튀기해서 다시 돌려봤다.
“현실에선 이 gap이 내 가정보다 훨씬 넓다면?”
- 원래 가정한 비용에서 → 4배까지 올려서 (가장 거래 안 되는 코인의 최악 상황을 통째로 적용)
- 그래도 전략이 살아남는지 확인
3. 결과

비용을 4배로 올려도 여전히 돈을 벌었다. 전략이 완전히 망가지려면 비용을 거의 6배까지 올려야 했다. 즉, 내가 걱정하던 “보이지 않는 비용”을 최악으로 가정해도 이 전략은 견딘다는 뜻이다.
합격.
(+)
그리고 재미있는 반전이 하나 있었다.
“그럼 아예 거래 안 되는 잡코인들을 빼버리면 더 안전하지 않을까?”
싶어서 빼봤더니, 오히려 수익은 줄고 위험(낙폭)은 커졌다.
알고 보니 그 거래 뜸한 중소형 코인들이 사실은 수익의 원천이자 위험 분산 장치였던 거다. 그래서 “위험해 보이니 빼자”가 아니라 “끼고 가되, 비용을 보수적으로 잡고 그래도 버티는지 확인하자”가 정답이었다.
4. 뭘 얻었나
사실 이 글의 진짜 교훈은 결과보다 습관이다.
- 숫자가 예쁠 때일수록 “이 수익에 숨은 비용이 빠져 있진 않나?”를 먼저 의심한다. 백테스트가 너무 잘 나오면, 대개는 현실의 비용 한두 개를 빼먹은 경우다.
- 새 전략을 진짜로 쓰기 전에 “비용을 몇 배 올려도 살아남나”를 반드시 돌려본다. 이번에 그 점검용 도구를 하나 만들어뒀으니, 앞으로 거래 뜸한 종목을 건드리는 전략이 나오면 무조건 이 관문을 통과시킬 거다.
사업도 똑같은 것 같다. 매출만 보면 남는 장사 같은데, 카드 수수료·배송비·반품처럼 눈에 잘 안 띄는 비용을 다 넣고 나면 실제로 남는 게 얼마 없는 경우가 많으니까. 결국 “진짜 비용을 다 넣고도 남는가” 를 묻는 게 핵심이다. 퀀트든 장사든.
오늘도 하나 배웠다. 보이지 않는 비용을 먼저 의심하는 습관. 이게 사실 가장 비싼 교훈이다.
댓글