OptiNod 아카데미
슬리피지·수수료·유동성 — 백테스트가 숨긴 거래비용
수수료만 빼면 실전 수익이 나온다는 계산은 거래비용의 한 조각만 본 것입니다. 슬리피지와 유동성이 성과를 더 크게 깎습니다.
> 수수료는 거래소 화면에 *미리* 적혀 있지만, 실전 성과를 더 크게 깎는 슬리피지와 유동성은 주문을 넣는 순간에야 확정됩니다.
거래비용은 세 가지로 나뉩니다. 거래소에 내는 수수료(Fees), 표시 가격과 실제 체결 가격의 차이인 슬리피지(Slippage), 그리고 그 슬리피지를 좌우하는 호가창의 유동성(Liquidity)입니다. 수수료는 거래소 화면에 메이커 0.02%, 테이커 0.04% 같은 숫자로 명시되어 있어 누구나 미리 계산할 수 있습니다. 나머지 두 가지는 주문을 넣는 순간에야 확정되고, 화면 어디에도 미리 표시되지 않습니다.
대부분의 트레이더는 백테스트 결과에서 수수료만 빼고 실전 기대값을 추정합니다. 한 번에 0.04%, 왕복 0.08%를 빼면 충분히 현실적인 계산이라고 봅니다. 그러나 이 계산은 거래비용의 한 조각만 반영한 것입니다. 거래소 수수료는 보통 회당 0.02%에서 0.1% 사이로 고정되어 있는 반면, 슬리피지는 종목과 주문 크기와 시장 상태에 따라 0bp에서 수백 bp까지 크게 변동합니다.
핵심은 단순합니다. 수수료보다 슬리피지와 유동성이 성과를 더 크게 깎고, 거래량이 작은 종목과 거래 빈도가 높은 전략에서 그 비용이 쌓여 기대값을 음수로 만든다는 것입니다. 특히 시장가 진입은 호가창의 깊이를 차례로 소진하므로, 큰 주문일수록 표시 가격과 평균 체결 가격이 벌어집니다. 같은 전략을 BTC에서 돌릴 때와 일 거래대금 수백만 달러짜리 알트에서 돌릴 때, 수수료는 동일하지만 슬리피지는 수십 배 차이가 납니다.

수수료는 고정이고 슬리피지는 출렁입니다
수수료는 미리 계산할 수 있는 유일한 거래비용입니다. 거래소가 메이커와 테이커 요율을 공개하고, 거래량 등급이 정해지면 회당 비용이 확정됩니다. 업계 통상 수준으로 보면 테이커 한 번에 0.04% 안팎, 왕복으로 0.08% 정도입니다. 이 숫자는 종목이 BTC든 소형 알트든 같습니다.
슬리피지는 다릅니다. 표시 가격은 호가창 맨 위의 가격이지만, 시장가 주문은 그 가격에서 살 수 있는 수량만큼만 채우고 나머지는 그 위 호가로 올라가 채웁니다. 주문이 클수록 더 높은 호가까지 소진하므로 평균 체결 가격이 표시 가격보다 위로 벌어집니다. 이 차이가 슬리피지이고, 호가창에 쌓인 물량이 얇을수록 같은 주문 크기에도 더 크게 발생합니다.
규모를 비교하면 차이가 분명해집니다. 거래소 수수료는 왕복 8bp 안팎에서 그치지만, 슬리피지는 종목과 주문 크기에 따라 0bp에서 100bp 넘게까지 벌어집니다. 평균 손익이 회당 0.15%인 단기 전략이 있다고 가정하면, 왕복 수수료 0.08%를 빼고 남는 엣지는 0.07%입니다. 여기에 회당 슬리피지가 0.1%만 붙어도 기대값은 마이너스가 됩니다. 수수료만 보고 짠 손익 계산이 실전에서 어긋나는 지점이 바로 여기입니다.
시장가 진입은 호가창 깊이를 소진합니다
호가창은 가격대별로 쌓인 매수·매도 주문의 목록입니다. 시장가 매수는 가장 낮은 매도 호가부터 위로 올라가며 필요한 수량을 채웁니다. 맨 위 호가의 물량이 주문 크기보다 작으면 그 위 호가로 넘어가고, 평균 체결 가격은 표시 가격보다 위에서 확정됩니다.
BTCUSDT 호가창을 현재 시점으로 들여다보면 깊이가 두껍습니다. 맨 위 매도 호가 한 줄에만 약 2.18 BTC, 금액으로 16만 달러어치가 거의 같은 가격에 쌓여 있습니다. 이 경우 5만 달러짜리 시장가 매수는 맨 위 호가 안에서 전부 채워져 슬리피지가 0bp에 가깝습니다. 표시 가격과 체결 가격이 사실상 같습니다.
같은 시점의 소형 알트 호가창은 모양이 다릅니다. 일 거래대금이 20만 달러 수준인 ZILUSDT의 호가창을 보면, 맨 위 호가에 쌓인 물량은 약 5,800달러어치뿐입니다. 여기에 2만 5천 달러짜리 시장가 매수를 넣으면 호가창 여러 줄을 차례로 소진하며 올라가 평균 체결 가격이 표시 가격보다 130bp(1.3%) 위에서 확정됩니다. 10만 달러를 넣으면 호가창 상단 20줄을 전부 소진하고도 약 3만 달러어치밖에 채우지 못합니다. 같은 주문 크기, 같은 시장가 방식인데 BTC에서는 0bp, ZIL에서는 130bp가 나옵니다. 이 차이는 수수료 8bp와는 비교가 안 됩니다.

거래량이 작을수록 스프레드가 넓어집니다
매수-매도 스프레드(Spread)는 맨 위 매수 호가와 맨 위 매도 호가의 차이입니다. 이 차이는 그 종목에 들어오는 주문이 얼마나 촘촘하게 쌓이는지에 따라 정해지고, 거래량이 많을수록 좁고 적을수록 넓어집니다. 스프레드는 시장가로 진입할 때마다 그대로 비용으로 붙습니다. 사자마자 팔면 스프레드만큼 손실인 상태에서 시작합니다.
현재 호가 기준으로 종목별 스프레드를 대조하면 거래량과의 관계가 그대로 보입니다. 일 거래대금 10억 달러 수준인 BTCUSDT는 스프레드가 거의 0bp, 5억 달러 수준인 ETHUSDT도 0.05bp 부근입니다. 반면 일 거래대금 200만 달러 아래인 ALGOUSDT는 9bp, 20만 달러 수준인 ZILUSDT는 25bp까지 벌어집니다. ZIL을 시장가로 사서 바로 시장가로 팔면 진입과 청산 양쪽에서 스프레드와 슬리피지를 합쳐 왕복 50bp 넘는 비용이 먼저 발생합니다.
거래량과 거래대금은 구분해야 합니다. 거래량은 거래된 코인의 수량이고, 거래대금은 그 수량에 가격을 곱한 금액입니다. 호가 깊이와 슬리피지를 좌우하는 것은 거래대금입니다. 코인 수량 기준 거래량이 수억으로 커 보여도, 단가가 0.004달러면 실제 거래대금은 수십만 달러 수준일 때가 많습니다. 종목을 고를 때는 USDT 기준 거래대금을 봅니다. 코인 수량 기준 거래량은 실제 규모를 가립니다.

거래 빈도에 회당 비용을 곱하면 누적 비용이 됩니다
거래비용은 회당으로 보면 작아 보입니다. 왕복 0.1%는 한 번이면 무시할 만합니다. 그러나 전략의 기대값은 거래가 누적되며 결정됩니다. 회당 비용에 거래 빈도를 곱한 값이 전체 비용이고, 거래 빈도가 높을수록 이 곱이 빠르게 불어납니다.
하루 10회 거래하는 스캘핑 전략을 가정하겠습니다. 왕복 비용을 0.1%로 잡으면 하루에 1%, 한 달 22거래일이면 약 22%가 거래비용으로 빠져나갑니다. 같은 비용 가정에서 한 달에 두 번 거래하는 스윙 전략은 한 달 비용이 0.2%밖에 안 됩니다. 회당 비용이 같아도 빈도가 100배 차이 나면 누적 비용도 100배 차이 납니다. ...쌓이기 때문이지, 신호의 질과는 상관이 없습니다.
이 곱셈은 백테스트에서 가장 자주 빠지는 항목입니다. 슬리피지를 0으로 두고 수수료만 반영한 백테스트는 회당 비용을 실제의 절반에도 못 미치게 잡은 셈입니다. 그 오차가 회당으로는 작아도, 거래 빈도가 높은 전략에서는 누적되어 손익 곡선의 기울기를 통째로 뒤집습니다. 백테스트에서 가파르게 우상향하던 고빈도 전략이 실전에서는 계좌가 천천히 줄어드는 흐름으로 바뀌는데, 그 원인이 바로 이 누적 비용입니다.

엣지가 비용보다 작으면 기대값은 음수입니다
전략이 쓸 만한지는 손익분기 거래비용을 기준으로 판단합니다. 한 거래의 평균 손익에서 왕복 거래비용을 뺀 값이 기대값이고, 이 값이 양수일 때만 전략이 돈을 법니다. 거래비용이 평균 손익을 넘어서는 순간 기대값은 음수로 돌아서고, 신호가 아무리 정확해도 계좌는 줄어듭니다.
구체적인 숫자로 보겠습니다. 승률 60%에 익절과 손절이 각각 평균 0.3%인 전략의 회당 평균 손익은 0.06%입니다. 여기서 왕복 수수료 0.08%만 빼도 이미 음수입니다. 수수료만 반영한 백테스트에서 이 전략이 양수로 나왔다면, 그 결과는 슬리피지를 0으로 잡았기 때문에 나온 것입니다. 실전에서 슬리피지가 회당 0.05%만 붙어도 기대값은 더 큰 마이너스로 떨어집니다. 평균 손익이 회당 0.06%인 전략은 거래비용이 그보다 작은 종목과 시장 상태에서만 의미가 있습니다.
손익분기 거래비용을 먼저 계산하면 어떤 전략이 어떤 종목에서 기대값이 양수로 남는지 미리 따져 볼 수 있습니다. 평균 손익이 회당 0.06%인 스캘핑 전략은 왕복 비용이 0.06% 아래인 BTC·ETH 같은 고유동성 종목에서만 후보가 됩니다. 같은 전략을 왕복 비용 50bp인 소형 알트에 적용하면 신호의 정확도와 무관하게 기대값이 음수입니다. 반대로 평균 손익이 회당 3%인 스윙 전략은 왕복 비용 50bp를 빼도 여유가 남으므로 소형 알트에서도 후보가 됩니다. 전략의 엣지가 클수록 더 낮은 유동성 종목까지 들어갈 수 있습니다.
변동성 급변 구간에서는 슬리피지가 커지고 유동성이 사라집니다
평소 호가가 두꺼운 종목도 변동성이 급변하는 구간에서는 호가창의 물량이 빠르게 빠집니다. 가격이 한 방향으로 빠르게 움직이면 호가에 미리 걸려 있던 지정가 주문이 체결되거나 취소되고, 새로 채워지는 속도가 주문이 빠지는 속도를 따라가지 못합니다. 이 순간 같은 크기의 시장가 주문이 평소보다 훨씬 깊은 호가까지 소진하며 슬리피지가 커집니다.
2024년 8월 5일 BTC 급락이 이 상황을 보여줍니다. BTCUSDT 일봉은 58,161달러로 시작해 49,000달러까지 빠졌습니다. 하루 안에 약 16% 하락입니다. 같은 날 거래대금은 85.8억 달러로, 직전 8월 4일의 18.7억 달러보다 네 배 넘게 늘었습니다. 거래대금이 급증했다는 것은 그만큼 시장가 주문이 호가창을 빠르게 소진하며 가격을 밀어내렸다는 뜻입니다. 이런 구간에서 손절을 시장가로 걸어 두면 표시했던 손절 가격보다 한참 아래에서 체결됩니다.
급변 구간의 슬리피지는 평소 가정으로 잡을 수 없습니다. 평소 0bp이던 BTC가 급락 한복판에서는 수십 bp씩 벌어지고, 평소 스프레드가 좁던 종목도 호가가 텅 비어 시장가 주문이 예상 밖의 가격에 체결됩니다. 변동성이 큰 구간을 거래하는 전략일수록 백테스트의 슬리피지 가정을 평소보다 몇 배 보수적으로 잡아야 실전과 어긋나지 않습니다. 갭이 자주 발생하는 종목이나 주말·새벽처럼 유동성이 얇아지는 시간대도 같은 이유로 슬리피지가 커집니다.
거래비용 필터로 후보 종목과 전략을 미리 거릅니다
종목과 전략을 고를 때 거래비용 필터를 먼저 통과시키면 기대값이 음수인 조합을 진입 전에 추려낼 수 있습니다. 일 거래대금 하한과 스프레드 상한, 그리고 회당 비용 가정을 숫자로 정해 두면 슬리피지가 엣지를 잡아먹는 종목을 사전에 배제합니다.
- [ ] 거래대금 하한: 진입할 종목의 일 거래대금(USDT 기준)이 1,000만 달러 이상인지 확인합니다. 거래대금으로 봅니다. 코인 수량 거래량은 실제 규모를 가립니다.
- [ ] 스프레드 상한: 진입 직전 호가 스프레드가 10bp 이하인지 확인합니다. 10bp를 넘으면 왕복 진입·청산만으로 20bp 이상이 비용으로 발생합니다.
- [ ] 회당 비용 가정: 백테스트에 왕복 수수료 0.08%에 슬리피지 0.05% 이상을 더한 비용을 반영합니다. 고빈도 전략이면 슬리피지를 0.1% 이상으로 잡습니다.
- [ ] 손익분기 점검: 전략의 회당 평균 손익이 위에서 잡은 왕복 비용보다 큰지 확인합니다. 평균 손익이 비용보다 작으면 그 종목에서는 진입하지 않습니다.
- [ ] 주문 크기 점검: 진입 주문 크기가 맨 위 호가 물량을 넘지 않는지 확인합니다. 넘으면 지정가로 나눠 진입하거나 사이즈를 줄입니다. 그 경우 시장가는 피합니다.
거래 빈도가 높은 전략일수록 이 필터의 기준을 더 엄격하게 잡습니다. 하루 여러 번 거래하는 전략은 회당 비용 가정을 키우고 거래대금 하한도 높여야 누적 비용이 엣지를 넘지 않습니다. 스윙처럼 회당 엣지가 큰 전략은 거래대금 하한을 조금 낮춰도 되지만, 그 경우에도 주문 크기가 호가 깊이를 넘지 않는지는 반드시 확인합니다.
현실적 비용 가정으로 백테스트를 다시 돌립니다
거래비용 필터를 통과한 전략이라도 백테스트의 비용 가정이 현실과 맞는지 다시 점검해야 합니다. 슬리피지 0 백테스트, 소형 알트에서 종가 체결 가정, 회전율 높은 전략을 비용 없이 검증한 결과는 모두 실전 기대값을 과대평가합니다. 같은 전략을 보수적인 비용 가정으로 다시 돌려 보면 손익 곡선이 어디서 무너지는지 미리 보입니다.
가장 흔한 오용은 종가 체결 가정입니다. 백테스트 엔진이 신호가 뜬 봉의 종가에 정확히 체결됐다고 가정하면, 그 종가에 실제로 쌓여 있던 호가 물량을 무시한 것입니다. BTC처럼 호가가 두꺼운 종목은 이 오차가 작지만, 일 거래대금 수백만 달러짜리 알트에서는 종가에 그 수량을 채울 물량 자체가 없는 경우가 많습니다. 종가 체결 가정으로 검증한 알트 전략의 백테스트 수익은 실전에서 재현되지 않습니다.
회전율이 높은 전략은 비용 가정 하나만 바꿔도 결과가 통째로 뒤집힙니다. 슬리피지를 0에서 0.05%로만 올려도 하루 10회 거래하는 전략은 한 달 비용이 22%에서 33%로 뛰고, 백테스트의 우상향 곡선이 실전에서 우하향으로 꺾입니다. 백테스트를 신뢰하려면 슬리피지를 0으로 둔 결과를 믿어서는 안 됩니다. 진입할 종목의 실제 호가 깊이와 변동성 급변 구간을 반영한 보수적 비용 가정으로 검증한 결과를 봐야 합니다. 수수료만 빼고 계산한 기대값은 거래비용의 한 조각만 본 숫자이고, 실전에서 계좌를 좌우하는 것은 나머지 두 조각입니다.