비용 민감도 분석 — 수수료를 조금만 올려도 살아남는 전략이 몇 개인가
백테스트를 돌릴 때 비용은 보통 숫자 하나로 들어갑니다. 왕복 0.1%, 이렇게요. 그 한 줄이 결과 전체를 떠받치고 있는데도 대부분 한 번 정해 놓고 다시 건드리지 않습니다. 문제는 그 숫자가 실제보다 조금만 작아도 성적표가 통째로 뒤집힌다는 것입니다. 얼마나 조금인지를 숫자로 보겠습니다.
비용은 가정이지 측정값이 아니다
백테스트에 넣는 비용은 대개 거래소 수수료표에서 가져온 값입니다. 그런데 실제로 계좌에서 빠져나가는 돈은 그것보다 큽니다. 수수료는 비용의 일부일 뿐이고, 호가 스프레드와 체결이 밀린 폭이 거기에 더 붙기 때문입니다.
그러면 정확한 값을 넣으면 되지 않느냐고 할 수 있는데, 정확한 값은 돌려보기 전에는 모릅니다. 얼마나 밀릴지는 그때의 호가 두께와 주문 크기에 따라 달라지고, 과거 봉 데이터에는 호가가 들어 있지 않습니다. 즉 비용은 끝까지 추정치로 남습니다.
추정치라면 할 일은 하나입니다. 그 추정치를 흔들어 보고 결론이 버티는지 확인하는 것. 이게 비용 민감도 분석입니다. 한 줄로 말하면 "수수료를 얼마까지 올려도 이 전략이 흑자인가"를 묻는 절차입니다.
건당 얼마를 버는지부터 센다
민감도를 보려면 먼저 비교 대상을 맞춰야 합니다. 총 수익이 아니라 거래 한 건당 비용 차감 전 수익(gross)이 기준입니다. 비용은 건당으로 붙기 때문에 총액끼리 비교하면 아무것도 안 보입니다.
거래 수 1,200건
gross 합 +$1,200
건당 노셔널 $800
건당 gross
$1,200 ÷ 1,200 = $1.00
노셔널 대비
$1.00 ÷ $800 = 0.125%
─────────────
이 전략이 한 건에서 만들어 내는 폭 = 0.125%
0.125%라는 숫자를 잡아 두면 이제 비교가 됩니다. 왕복비용이 0.125%보다 작으면 흑자, 크면 적자입니다. 즉 0.125%가 이 전략의 손익분기 비용입니다. 다른 지표를 볼 필요도 없이 이 한 줄에서 갈립니다.
0.06%p 차이로 부호가 바뀐다
이제 비용을 바꿔 가며 같은 거래 목록을 다시 정산해 봅니다. 거래 자체는 하나도 안 바꾸고 비용만 바꿉니다.
왕복 0.06% 건당 −$0.48
net/건 +$0.52 → 합 +$624
왕복 0.10% 건당 −$0.80
net/건 +$0.20 → 합 +$240
왕복 0.125% 건당 −$1.00
net/건 $0.00 → 합 $0
왕복 0.16% 건당 −$1.28
net/건 −$0.28 → 합 −$336
왕복 0.24% 건당 −$1.92
net/건 −$0.92 → 합 −$1,104
─────────────
0.10% → 0.16%, 단 0.06%p에 +$240이 −$336
여기서 중요한 건 금액이 아니라 부호가 바뀌었다는 사실입니다. 0.10%로 돌린 백테스트는 "쓸 만한 전략"이라고 말하고, 0.16%로 돌린 백테스트는 "쓰면 안 되는 전략"이라고 말합니다. 같은 거래 목록인데요. 0.06%p는 거래소 등급이 한 칸 다르거나 지정가로 들어갈 줄 알았던 주문이 시장가로 나간 정도의 차이입니다.
그래서 백테스트 결과를 볼 때 "이 전략은 +$240이다"가 아니라 "이 전략은 왕복 0.125%까지 버틴다"로 읽는 습관이 필요합니다. 앞의 문장은 비용 가정을 숨기고, 뒤의 문장은 드러냅니다.
회전율이 높을수록 비용에 먼저 죽는다
같은 gross를 벌어도 몇 건으로 벌었느냐에 따라 결과가 완전히 달라집니다. 비용은 거래 건수에 비례해서 붙기 때문입니다.
전략 A 1,200건 × 건당 $1.00
비용 0.10% $0.80 × 1,200 = $960
net +$240
전략 B 120건 × 건당 $10.00
비용 0.10% $0.80 × 120 = $96
net +$1,104
비용을 0.16%로 올리면
A $1.28 × 1,200 = $1,536 → −$336
B $1.28 × 120 = $154 → +$1,046
─────────────
같은 gross인데 A만 죽는다
전략 B의 손익분기 비용은 $10.00 ÷ $800 = 1.25%입니다. A의 열 배입니다. 비용이 두 배로 잘못 잡혀 있어도 B는 거의 그대로인데 A는 적자로 넘어갑니다.
이게 단타 전략이 백테스트에서만 잘 나오는 흔한 이유입니다. 건당 먹는 폭이 얇은데 건수가 많으면 비용 추정 오차가 그대로 증폭됩니다. 왕복 거래비용을 한 번 계산해 두면 이 전략이 애초에 가능한 폭을 노리고 있는지가 먼저 걸러집니다.
수수료만 넣으면 절반만 넣은 것이다
앞의 표에서 0.10%를 쓴 건 taker 수수료 0.05%를 왕복으로 두 번 낸 값입니다. 그런데 실제로 빠지는 건 그것만이 아닙니다.
수수료 0.05% × 2 = 0.10% $0.80
스프레드 0.02% × 2 = 0.04% $0.32
슬리피지 0.03% × 2 = 0.06% $0.48
─────
합 0.20% $1.60
펀딩 (8시간 보유 · 0.01%)
$0.08
실제 왕복비용 $1.68
처음 가정 $0.80의 2.1배
건당 gross $1.00 전략은
$1.00 − $1.68 = −$0.68
─────────────
수수료만 넣으면 절반 남짓만 넣은 셈
세 줄을 따로 봐야 하는 이유가 있습니다. 성격이 다르기 때문입니다. 수수료는 고정이고 등급으로 줄일 수 있지만, 스프레드는 종목과 시간대에 따라 달라지고, 슬리피지는 주문 크기에 비례해서 커집니다. 주문을 두 배로 키우면 수수료는 두 배지만 슬리피지는 두 배보다 더 붙습니다. 이 부분은 주문 크기와 시장 충격 쪽에 따로 정리돼 있습니다.
펀딩은 보유 시간이 긴 전략에서만 의미가 있습니다. 몇 분 들고 있다 나오는 전략이면 무시해도 되고, 며칠 들고 가는 전략이면 오히려 수수료보다 커집니다. 펀딩비가 방향까지 뒤집어 놓는 구간도 있습니다.
지정가로 넣으면 수수료가 싸지 않느냐는 생각도 여기서 확인해야 합니다. 지정가는 안 채워질 수 있고, 안 채워지는 주문은 불리하게 움직일 때만 채워지는 경향이 있습니다. 이 문제는 체결률과 역선택에서 다룹니다.
여유 배수로 판정한다
정리하면 필요한 건 "흑자냐"가 아니라 "얼마나 여유 있게 흑자냐"입니다. 비용 추정이 틀릴 것을 전제로 하니까요. 한 줄로 쓸 수 있습니다.
여유 배수 = 건당 gross ÷ 실제 왕복비용
앞의 전략 A
$1.00 ÷ $1.68 = 0.60배 (적자)
3배를 기준으로 삼으면
필요 건당 gross
$1.68 × 3 = $5.04
= 노셔널의 0.63%
─────────────
비용이 세 배 틀려 있어도 흑자인 폭
3배라는 숫자 자체에 근거가 있는 건 아닙니다. 다만 비용 추정이 두 배쯤 틀리는 일은 드물지 않고, 실전에서는 거기에 표본이 모자란 데서 오는 오차까지 겹칩니다. 여유를 크게 잡을수록 살아남는 전략 수는 줄지만, 살아남은 것이 진짜일 확률은 올라갑니다.
이 절차를 홀드아웃 검증보다 먼저 하는 편이 낫습니다. 계산이 훨씬 싸기 때문입니다. 건당 gross가 왕복비용에도 못 미치는 전략은 홀드아웃을 열어 볼 필요가 없습니다. 그 단계에서 걸러 두면 아껴 둔 데이터를 낭비하지 않습니다.
흔히 하는 실수
첫째, 비용을 바꾸고 파라미터를 다시 최적화하는 것입니다. 그러면 민감도를 잰 게 아니라 새 비용에 맞춰 다시 맞춘 것이 됩니다. 민감도 분석에서는 거래 목록을 고정해 놓고 비용만 바꿉니다. 다시 최적화하면 과최적화를 한 겹 더 쌓는 셈입니다.
둘째, 평균 수익률로 계산하는 것입니다. 건마다 노셔널이 다르면 퍼센트 평균은 실제 금액과 어긋납니다. 큰 거래에서 잃고 작은 거래에서 벌어도 퍼센트 평균은 멀쩡해 보입니다. 금액으로 합산해야 합니다.
셋째, 비용을 넣은 뒤의 프로핏 팩터만 보고 넘어가는 것입니다. 비용을 한 값으로만 넣었으면 그 지표도 가정 하나에 매달려 있는 숫자입니다. 표를 만들어 두면 지표가 어느 구간에서 무너지는지가 같이 보입니다.
넷째, 실전 체결 기록으로 되돌아가 확인하지 않는 것입니다. 실제로 돌리기 시작했으면 결정 시점 기준가와 체결가가 남아 있으니 슬리피지를 실측할 수 있습니다. 추정으로 시작했더라도 나중에는 실측으로 바꿔 넣어야 합니다. 매매 로그에 기준가를 안 남겼으면 그 실측이 불가능합니다.
정리
② 과거 봉에는 호가가 없어 정확한 값은 못 구한다
③ 그래서 하나의 값이 아니라 범위로 돌린다
④ 기준은 총수익이 아니라 건당 gross다
⑤ 건당 gross ÷ 노셔널 = 손익분기 비용
⑥ 예시에서는 0.125%가 그 선이었다
⑦ 0.10%→0.16%, 0.06%p에 +$240이 −$336이 된다
⑧ 결과는 "+$240"이 아니라 "0.125%까지 버틴다"로 읽는다
⑨ 같은 gross라도 1,200건과 120건은 다르다
⑩ 회전율이 높을수록 비용 오차가 증폭된다
⑪ 수수료 0.10%에 스프레드·슬리피지를 더하면 0.20%
⑫ 보유가 길면 펀딩까지 더한다
⑬ 슬리피지는 주문 크기에 비례해 더 커진다
⑭ 여유 배수 = 건당 gross ÷ 왕복비용
⑮ 비용만 바꾼다, 파라미터를 다시 맞추지 않는다
한 줄로 줄이면 이렇습니다. 비용 가정 하나를 흔들어서 무너지는 전략은 이미 무너진 전략입니다. 흔들어 보는 데는 몇 분이면 충분합니다.
주의
본문의 거래 수 1,200건과 gross 합 +$1,200, 건당 노셔널 $800과 건당 gross $1.00 및 0.125%, 왕복비용 0.06%·0.10%·0.125%·0.16%·0.24%에 대응하는 건당 −$0.48·−$0.80·−$1.00·−$1.28·−$1.92와 합계 +$624·+$240·$0·−$336·−$1,104, 전략 A 1,200건과 전략 B 120건·건당 $10.00·손익분기 1.25%의 비교, 수수료 0.05%×2·스프레드 0.02%×2·슬리피지 0.03%×2의 합 0.20%와 $1.60, 8시간 보유 펀딩 0.01%와 $0.08, 실제 왕복비용 $1.68과 2.1배, 여유 배수 0.60배와 기준 3배 및 필요 건당 gross $5.04·0.63% 같은 수치는 계산 구조를 보여주기 위한 가정 예시이며 실측이 아닙니다. 실제 수수료율은 거래소·등급·지정가 여부에 따라 다르고, 스프레드와 슬리피지는 종목·시간대·호가 두께·주문 크기에 따라 크게 달라지며, 펀딩비는 구간마다 부호까지 바뀝니다. 여유 배수 3배는 임의로 정한 기준이므로 매매 빈도와 표본 수에 맞춰 다시 잡아야 합니다. 비용 민감도 분석을 통과한 전략이 수익을 낸다는 뜻도 아닙니다. 이 글은 백테스트 검증 절차에 대한 설명이며 특정 종목·방향이나 진입·청산 시점을 권유하지 않습니다. 암호화폐 거래는 원금 전액을 잃을 수 있고 레버리지를 쓰면 손실이 증거금을 넘을 수도 있습니다. 투자 판단과 그 결과는 본인 책임입니다.
NOONOO TRADING 무료 채팅방에서 실시간 트레이딩을 같이 보세요.
봇에서 시작하기📈 OKX 신규 가입 시 거래 수수료 할인
OKX 수수료 할인 가입 →