← 기사 목록으로
July 21, 2026
5분 소요

메이커-테이커 의사결정: 수수료 티어, 리베이트, 그리고 스프레드를 건너는 진짜 비용

메이커-테이커 의사결정: 수수료 티어, 리베이트, 그리고 스프레드를 건너는 진짜 비용
#메이커 테이커
#거래 수수료
#리베이트
#역선택
#마켓 메이킹
#실행
#시장 미시구조
#백테스트

당신이 보내는 모든 주문은 다른 어떤 선택보다 먼저 하나의 이진 선택을 한다. 스프레드를 건너 테이커 수수료를 낼 것인가, 아니면 오더북에 대기해 메이커 수수료를 낼 것인가 — 어쩌면 리베이트까지 챙길 수 있다. 업계는 이것을 수수료 최적화로 포장하고, 수수료 표를 보면 정말 그렇게 보인다. 테이커 5 bps, 메이커 2 bps, 절감 3 bps, post-only 플래그 켜고, 끝. 그 포장은 위장이다. 그 밑에서 메이커 대 테이커는 역선택에 관한 거래다. 즉시성에 대해 알려진 가격을 낼 것인가, 아니면 시장에게 자신의 재량으로 당신을 체결시킬 옵션을 팔 것인가 — 그 옵션은 정보를 가진 상대방이 바로 그 체결이 당신에게 손해가 되는 순간에 정확히 행사한다. 수수료 스케줄은 평균적인 참여자에 대해 그 옵션의 가격을 매긴다. 당신은 평균적인 참여자가 아니며, 당신의 호가를 때리는 플로우도 마찬가지다.

이 글은 수수료 표가 감추는 수학을 한다. 보정된 손익분기, Glosten-Milgrom(1985)이 왜 수동적 체결이 구조적으로 당신에게 불리하게 편향되어 있음을 함의하는지, 실제 크립토 수수료 티어와 토큰 할인이 숫자에 무엇을 하는지, 왜 리베이트 마이닝이 주식시장에서 죽었고 크립토에서는 어떤 변종 형태로 살아남았는지, 큐 위치가 어떻게 리베이트의 진짜 가치를 정하는지, 그리고 업계에서 가장 흔한 단 하나의 수수료 버그를 저지르지 않고 이 모든 것을 백테스트에서 모델링하는 법.

단순한 손익분기 — 그리고 모두가 잊는 항

표기법: 호가 스프레드 ss, 테이커 수수료 ftf_t, 메이커 수수료 fmf_m(리베이트면 음수), 모두 명목가치의 베이시스 포인트 단위, 벤치마크 가격은 미드. 스프레드를 건너면 스프레드의 절반에 테이커 수수료를 더한 비용이 들고, 대기하면 스프레드의 절반을 벌고 메이커 수수료가 든다.

Ctaker=s2+ft,Cmakernaive=fms2C_{\text{taker}} = \frac{s}{2} + f_t, \qquad C_{\text{maker}}^{\text{naive}} = f_m - \frac{s}{2}

Binance USDⓈ-M 선물 기본 요율 — 메이커 2 bps, 테이커 5 bps — 를 스프레드 2 bps인 무기한 선물에 대입해 보자. 테이커 비용은 1+5=61 + 5 = 6 bps, 메이커 "비용"은 21=12 - 1 = 1 bps. 겉보기 절감: 거래당 5 bps, 매 거래마다. 하루 20회 왕복하는 전략이라면, 이것은 체크박스 하나에서 나오는 하루 100 bps의 엣지라고 주장된다.

먼저 이 숫자들에 관해 한 가지를 눈여겨보라. 수수료는 스프레드에 대한 보정이 아니다 — 유동성 좋은 크립토 페어에서는 그것이 비용이다. BTCUSDT 무기한 선물은 스프레드가 1 bps 미만으로 호가되는 경우가 잦은데, 리테일 테이커는 5 bps를 낸다. 반쪽 스프레드는 수수료 옆에서 반올림 오차에 불과하다. 이것은 스프레드와 수수료가 같은 자릿수인 주식시장의 직관과는 정반대이며, 크립토에서는 모든 단순 비교가 "무조건 메이커"라고 외치는 이유다. 또한 모든 첫 마켓 메이킹 백테스트는 수익이 나고 대부분의 첫 실전 배포는 그렇지 않은 이유이기도 하다.

단순 메이커 비용에는 세 개의 항이 빠져 있다.

  1. 미체결 위험. 지정가 주문은 거래가 아니다. 거래에 대한 복권이다. 체결되지 않으면 당신은 그 움직임을 놓치거나 나중에 더 나쁜 가격에 건너게 된다.
  2. 역선택. 체결을 조건으로 하면, 가격은 무조건적 분포가 시사하는 것보다 당신에게 불리하게 움직일 가능성이 더 크다. 이것은 불운이 아니다. 정리(theorem)다.
  3. 재호가 비용. 취소/재입력으로 시장을 쫓으면 당신의 큐 위치가 맨 뒤로 리셋되고, 이는 당신의 체결 분포를 조용히 대부분 2번 유형의 체결로 바꿔버린다.

두 번째 항은 50년의 이론이 뒷받침하는 것이니, 제대로 해보자.

Glosten-Milgrom: 체결 자체가 나쁜 소식이다

Glosten과 Milgrom(1985), "Bid, Ask and Transaction Prices in a Specialist Market with Heterogeneously Informed Traders"(Journal of Financial Economics 14)는 애초에 스프레드가 왜 존재하는지에 대한 가장 깔끔한 모형이다. 위험 중립적이고 경쟁적이며 비용이 0인 마켓 메이커가 매수 호가와 매도 호가를 낸다. 들어오는 트레이더의 일정 비율 μ\mu는 정보를 가진 자다 — 그들은 자산의 진정한 가치 VV를 안다 — 나머지는 외생적 이유로 거래하며 같은 확률로 사거나 판다. 마켓 메이커는 이들을 구별할 수 없다. 경쟁은 각 호가를 조건부 기댓값이 되게 강제한다.

ask=E[Vnext trader buys],bid=E[Vnext trader sells]\text{ask} = \mathbb{E}[V \mid \text{next trader buys}], \qquad \text{bid} = \mathbb{E}[V \mid \text{next trader sells}]

숫자로 풀어보자. VV를 같은 확률로 101 또는 99라 하고, μ=0.2\mu = 0.2라 하자. V=101V = 101이면 매수는 확률 μ+(1μ)/2=0.6\mu + (1-\mu)/2 = 0.6으로 도착하고(모든 정보 트레이더가 사고, 정보 없는 트레이더의 절반이 산다), V=99V = 99면 확률 0.40.4로 도착한다. 그러면

ask=0.50.6101+0.50.4990.5=100.2,bid=99.8\text{ask} = \frac{0.5 \cdot 0.6 \cdot 101 + 0.5 \cdot 0.4 \cdot 99}{0.5} = 100.2, \qquad \text{bid} = 99.8

스프레드는 μ(VHVL)=0.4\mu(V_H - V_L) = 0.4 — 순수하게 역선택 보상이다. 재고 위험도, 수수료도, 독점 지대도 없는데 스프레드는 여전히 거기 있으며, 정보 트레이더의 비율과 그들이 아는 것의 크기에 따라 스케일링된다.

메이커-테이커 의사결정에 중요한 결론은 이것이다. 체결되었다는 것 자체가 정보이며, 그 정보는 당신에게 불리하다. 당신의 대기 매수 호가는 진정한 가치가 낮을 때 더 자주 체결되는데, 바로 그때 정보를 가진 매도자가 나타나기 때문이다. 당신 자신의 체결을 조건으로 두면 방금 산 것의 기댓값이 아래로 이동한다 — 불운 때문이 아니라 구조적으로. 이것을 측정하는 표준 방법은 마크아웃이다. 가격 pp에 체결된 매수의 경우, 시점 τ\tau에서의 마크아웃은 m(τ)=mid(tfill+τ)pm(\tau) = \text{mid}(t_{\text{fill}} + \tau) - p이다. 수동적 체결에 대한 집계 마크아웃은 거의 모든 사람에게 거의 모든 곳에서 음수이며, 자신을 속이지 않고 이를 계산하는 법은 실행 부족과 TCA에서 다룬다.

더 일반적으로 확장되는 등가 표현은 이렇다. 대기 지정가 주문은 시장에게 부여된 공짜 옵션이다. 행사 시점을 고르는 것은 당신이 아니라 상대방이며, 그들은 자신에게 이익이 될 때 행사한다. 메이커 리베이트는 그 옵션을 발행한 대가로 거래소가 당신에게 지불하는 프리미엄이다. 문제는 결코 "프리미엄이 양수인가"가 아니라 "프리미엄이 그것을 행사하는 사람들에게 옵션이 갖는 가치보다 큰가"이다.

보정된 손익분기

pp를 당신의 의사결정 지평 내에서 호가가 체결될 확률, A=E[adverse movefill]A = \mathbb{E}[\text{adverse move} \mid \text{fill}]를 체결 조건부 마크아웃 비용(bps), DD를 미체결 시 당신이 추가로 내는 비용(대기하는 동안의 드리프트에 새 가격으로 건너는 비용을 더한 것)이라 하자. 정직한 메이커 비용은 이렇다.

E[Cmaker]=p(fms2+A)+(1p)(s2+ft+D)\mathbb{E}[C_{\text{maker}}] = p\left(f_m - \frac{s}{2} + A\right) + (1-p)\left(\frac{s}{2} + f_t + D\right)

메이커가 테이커보다 선호되는 것은 E[Cmaker]<s/2+ft\mathbb{E}[C_{\text{maker}}] < s/2 + f_t일 때이며, 이는 깔끔한 부등식으로 정리된다.

s+ftfmapparent saving  >  Aadverse selection  +  1ppDodds-weighted miss cost\underbrace{s + f_t - f_m}_{\text{apparent saving}} \;>\; \underbrace{A}_{\text{adverse selection}} \;+\; \underbrace{\frac{1-p}{p}\,D}_{\text{odds-weighted miss cost}}

테이커 비용 대 정직한 메이커 비용 분해

같은 예제를, 이번에는 현실적인 마찰을 넣어서. s=2s = 2, ft=5f_t = 5, fm=2f_m = 2이므로 겉보기 절감은 5 bps다. p=0.6p = 0.6, A=3A = 3 bps, D=2D = 2 bps라 하자. 우변은 3+0.40.62=4.333 + \frac{0.4}{0.6} \cdot 2 = 4.33 bps다. 메이커가 여전히 이긴다 — 하지만 5 bps가 아니라 0.67 bps의 마진으로. 기댓값으로: E[Cmaker]=0.6(21+3)+0.4(1+5+2)=5.6\mathbb{E}[C_{\text{maker}}] = 0.6(2 - 1 + 3) + 0.4(1 + 5 + 2) = 5.6 bps로, 테이커 비용 6.0 bps에 대비된다. 그 체크박스는 5 bps가 아니라 0.4 bps짜리였고, AApp의 작은 오차만으로 부호가 뒤집힌다.

더 나쁜 것은, AA, pp, DD가 독립적인 손잡이가 아니라는 점이다 — 이들은 당신이 거래하는가에 의해 공동으로 결정된다. 당신의 시그널이 단기 플로우와 상관되어 있다면(모든 모멘텀 진입이 그렇다), 당신이 진입하고 싶은 바로 그 급등 구간에 p1p \to 1이 되고 AA가 폭발한다. 당신은 즉시 체결된다 — 당신이 예측한 그 움직임에 의해, 옛 가격에, 그것의 잘못된 쪽에서. 메이커 할인이 수수료 표에서 가장 큰 거래가, 현실에서는 정확히 가장 음수가 되는 거래다. 그것이 메이커-테이커 선택이 수수료 스케줄로 위장한 역선택 거래라는 말의 의미다.

실제 수수료 스케줄: 티어, 토큰 할인, 그리고 한계 수수료 함정

2026년 중반 기준 주요 거래소의 대표적 스케줄(기본 티어 → 최상위 공개 티어; 거래소 페이지를 확인하라, 이 값들은 변한다):

거래소 기본 메이커 / 테이커 최상위 티어 메이커 / 테이커 할인 메커니즘
Binance 현물 10 / 10 bps VIP 1-9으로 하락 BNB로 수수료 지불: −25%
Binance USDⓈ-M 무기한 2 / 5 bps 0 / 1.7 bps (VIP 9) BNB: −10%; VIP는 거래량 + BNB 잔고 필요
Bybit 무기한 2 / 5.5 bps 0 / 3 bps MM 프로그램으로 메이커 −1.5 bps, 의무 수반
OKX 무기한 2 / 5 bps 약 −0.5 / 1.5-2 bps까지 OKB 보유량이 리테일 밴드를 티어화
Hyperliquid 무기한 1.5 / 4.5 bps 메이커 리베이트 −0.3 bps까지 리베이트가 메이커 거래량 점유율에 연동; 스테이킹 할인
Coinbase Advanced 40 / 60 bps 0 / 5 bps 거래량 티어만
Kraken Pro 25 / 40 bps 0 / 10 bps 거래량 티어만

세 가지 구조적 관찰.

리테일 메이커 수수료는 거의 어디서나 양수다. "메이커는 돈을 받는다"는 주식시장식 기본값은 깊은 VIP 영역이나 서명된 마켓 메이커 계약에 이르기 전까지는 당신에게 통하지 않는다. 기본 티어에서 메이커-테이커 의사결정은 "벌거나 내거나"가 아니라 "2를 내거나 5를 내거나"이다.

토큰 할인은 쿠폰이 아니라 포지션이다. BNB로 수수료를 내면 Binance 현물 수수료가 25% 깎인다 — 기본 티어에서 한쪽당 2.5 bps로, 거래량이 붙으면 진짜 돈이다. 하지만 그 할인은 거래소 토큰을 재고로 보유할 것을 요구하므로, 당신의 수수료 최적화는 거래소 자체의 주식 같은 자산에 대한 베타 익스포저로 자금이 조달된다. 월 3만 달러의 수수료를 내고 BNB로 7.5천 달러를 절약하면서 20만 달러의 BNB 플로트를 보유하는 데스크는, BNB가 10% 하락하면 분기 전체의 수수료 절감이 통째로 날아간다. 그 플로트를 북 포지션으로 다루라 — 사이징하고, 헤지하거나, 아니면 할인을 사기 위해 변동성을 팔았다는 사실을 받아들여라. (여러 VIP 사다리는 토큰 잔고 자체를 티어 요건으로 두어, 그 포지션을 선택적인 것에서 구조적인 것으로 바꾸기도 한다.)

한계 수수료 ≠ 평균 수수료. 티어는 직전 30일 거래량으로 계산되므로, 오늘의 수수료는 지난달의 거래로 정해졌다 — 하지만 경계를 넘으면 그 티어를 유지하는 동안 당신의 모든 거래량이 재가격화된다. 이는 거래량의 한계 비용에 꺾임(kink)을 만든다. 다음 티어가 $15M/30d에서 테이커 수수료를 5에서 4 bps로 낮춘다고 하자. 자연 거래량 $14M에서 $1M의 채우기용 회전 거래는 약 1\text{M} \times (s/2 + f_t) \approx \600의비용이들고의 비용이 들고 1,\text{bps} \times $14\text{M} = $1{,}400/월의 절감을 산다 — 그 마지막 100만 달러의 한계 수수료는 *음수*다. 자연 거래량 \8M에서는 같은 논리가 $4,200이 드는 $7M의 회전 거래로 $800을 절약할 것을 요구한다 — 가상의 할인을 벌기 위해 가짜 거래량에 진짜 스프레드와 수수료를 태우는 레버리지 베팅이며, 매달 갱신된다. 티어 쫓기는 오직 경계에서 사정거리 안에 있을 때만 합리적이며, 자신의 수수료를 단일 스칼라로 모델링하는 데스크는 그 꺾임을 아예 볼 수조차 없다.

리베이트 마이닝: 부상, 죽음, 그리고 크립토의 사후 세계

메이커 리베이트는 주식시장의 발명품이다. Island ECN이 기존 거래소들에 맞서 유동성을 부트스트랩하려고 1997년에 도입했는데, 너무 잘 작동해서 그 모형이 미국 주식 시장 구조를 정복했다. 이어 Reg NMS(2005)가 테이커 접근 수수료를 $0.003/주로 상한을 걸었고(Rule 610), 표준 거래소 비즈니스는 이렇게 되었다: 테이커에게 ~30밀을 부과하고, 메이커에게 ~20-30밀을 리베이트하고, 차액을 챙긴다.

그 산수는 잠깐 순수한 전략을 만들어냈다: 리베이트 캡처. 페니 스프레드 대형주의 양쪽을 모두 호가한다. 스크래치되는 왕복 — 같은 가격에 사고 파는 것 — 도 리베이트 두 개를 챙기며, 가격 PnL이 0인데도 주당 약 반 센트를 번다. 페니 스프레드까지 잡으면 세 배가 된다. 2000년대 중반에 이것은 진짜 산업 규모의 사업이었다.

그것은 세 가지 원인으로 죽었고, 각각이 교훈이다.

  1. 리베이트는 공개되어 있으므로 큐 안으로 경쟁이 몰린다. 게시된 리베이트는 한계 호가자의 역선택 차감 후 기대 리베이트가 0이 될 때까지 호가를 끌어들인다. 틱 제약이 있는 주식에서는 가격이 개선될 수 없으므로 경쟁은 시간 우선순위에서 일어나고 — 지대는 큐 맨 앞에 가장 먼저 도달하는 자에게 흐른다. 리베이트가 속도 군비 경쟁에 자금을 댔고, 코로케이션과 마이크로파 타워가 마진을 먹어치웠다. 살아남은 리베이트 수취자는 어차피 호가하고 있었을 회사들이었다.
  2. 틱이 구속하지 않는 곳에서는 리베이트가 실재하지도 않는다. Colliard와 Foucault(2012), "Trading Fees and Efficiency in Limit Order Markets"(Review of Financial Studies 25)는 중립성 결과를 증명한다: 촘촘한 가격 격자에서는 오직 전체 거래소 수수료만 중요하며 — 메이커와 테이커 사이의 어떤 분할이든 호가 조정으로 상쇄된다. 메이커에게 리베이트를 주면 그들은 그만큼 더 좁게 호가하여, 수수료 포함 스프레드를 통해 그것을 곧장 테이커에게 넘긴다. 그 분할은 오직 틱이 그 조정을 막을 때만 효력을 갖는데 — 그것은 다시 원인 #1로 되돌아간다. 리베이트는 가격을 통해서든 큐를 통해서든 소산된다. 어느 독약을 고를지 정하라. (Foucault, Kadan, Kandel 2013은 보완적 관점을 준다: 수수료 분할은 어느 한쪽에 주는 선물이 아니라, 메이커와 테이커 참여의 균형을 맞추기 위한 거래소의 도구다.)
  3. 왜곡이 규제 당국을 끌어들였다. Angel, Harris, Spatt, "Equity Trading in the 21st Century"(2011, 그리고 2015년 Quarterly Journal of Finance 개정판)는 그 피해를 목록화했다: 수수료와 리베이트가 호가에 들어있지 않으니 호가 스프레드가 진짜 비용을 측정하지 못하게 되고, 최선 실행 통계가 허구가 되며, 브로커는 고객의 체결과 자신의 리베이트 사이에서 이해상충에 직면한다. Battalio, Corwin, Jennings(2016, Journal of Finance)는 그 상충이 가설이 아님을 보였다: 고리베이트 거래소로 라우팅하는 것은 지정가 주문 실행 품질을 측정 가능한 수준으로 악화시켰다. SEC는 10년간 주위를 맴돌았고 — 2018년 Transaction Fee Pilot은 법정에서 죽었다 — 마침내 2024년 9월 개정안을 채택하여 접근 수수료 상한을 30밀에서 10밀로 낮췄다(준수 시점은 이후 2026년 11월로 미뤄졌다). 주식시장의 두둑한 리베이트 시대는 행정 명령으로 끝나가고 있다.

크립토에서 살아남은 것은 교훈적인데, 그것이 부활이 아니기 때문이다. 세 가지 형태.

  • 공개 VIP 리베이트(OKX의 −0.5 bps 최상위 메이커 티어 등): 이미 큐 경쟁에서 승리한 회사들을 선별하는 거래량 수준에서만 이용 가능하다. 그 순환성은 주식시장의 결말을 재현한 것이다: 리베이트는 메이커를 끌어들이려 존재하고, 그것을 캡처하는 메이커는 어차피 호가했을 자들이다.
  • 협상된 마켓 메이커 프로그램(Bybit은 −1.5 bps까지 광고): 여기엔 스프레드 상한, 최소 크기, 가동시간 의무가 따라온다. 그것은 공짜 돈이 아니다. 당신이 역선택 옵션을 연속적으로 발행하는 대가로 지불받는 서비스 계약이다 — 뉴스, 연쇄 청산, 그리고 모든 재량적 메이커가 호가를 거둬들인 그 순간들까지 포함해서. 리베이트는 아무도 원하지 않는 옵션 북을 떠맡는 임금이다.
  • 공식 기반 인센티브(Hyperliquid는 총 메이커 거래량 점유율에 연동해 −0.3 bps까지 지불): 명시적 토너먼트로, 최소한 큐 경쟁을 정직하게 가격화한다.

순수한 스크래치-대가-리베이트는 크립토에서 대부분 존재할 수 없는데, 리테일 메이커 수수료가 양수이기 때문이다: 메이커 2 bps에서 스크래치 왕복은 4 bps를 잃는다. 그 전략은 오직 음(−)의 메이커 티어 안에서만 존재하며, 그 티어들이 해자다.

큐 가치: 리베이트가 실제로 얼마짜리인가

위의 모든 것이 하나의 가격 방정식으로 압축된다. 대기 호가의 기댓값은 이렇다.

Vquote=p(q)(s2+rA(q))(1p(q))CmissV_{\text{quote}} = p(q)\left(\frac{s}{2} + r - A(q)\right) - \big(1 - p(q)\big)\,C_{\text{miss}}

여기서 rr은 리베이트(또는 메이커 수수료의 음수)이며 — 그리고 핵심적인 세부사항으로 — 체결 확률 pp와 조건부 역선택 AA 둘 다 당신의 큐 위치 qq의 함수다. 이들은 가능한 최악의 방식으로 함께 움직인다. 큐 앞쪽 주문은 양성 플로우에 대해 체결된다: 작은 테이커, 노이즈, 터치 후 반등하는 프린트. 큐 뒤쪽 주문은 오직 그 레벨 전체가 쓸려나갈 때만 체결된다 — 즉, 가격이 당신을 관통해 가는 세계의 상태에서만. 깊은 큐 위치는 그저 덜 자주 체결되는 것이 아니다. 더 나쁘게 체결된다. 큐는 역선택 필터이며, 그 안에서의 당신의 위치가 당신이 필터의 어느 쪽에 있는지를 결정한다.

큐 위치에 따른 체결 확률과 조건부 마크아웃, 그리고 그로 인한 호가 가치

숫자로. 레벨은 미드로부터 s/2=1s/2 = 1 bps에 호가되고, 리베이트 r=0.5r = 0.5 bps, 미체결 비용 Cmiss=1.5C_{\text{miss}} = 1.5 bps:

큐 위치 pp AA (bps) VquoteV_{\text{quote}} (bps)
앞쪽 10분위 0.85 0.8 0.85(1+0.50.8)0.151.5=+0.370.85(1 + 0.5 - 0.8) - 0.15 \cdot 1.5 = +0.37
뒤쪽 10분위 0.35 3.5 0.35(1+0.53.5)0.651.5=1.680.35(1 + 0.5 - 3.5) - 0.65 \cdot 1.5 = -1.68

같은 거래소, 같은 가격 레벨, 수수료 스케줄의 같은 리베이트 줄 — 기댓값에 부호까지 포함해 2 베이시스 포인트의 스윙이 오로지 큐 위치에 의해 좌우된다. Moallemi와 Yuan(2016), "A Model for Queue Position Valuation in a Limit Order Book"은 일반적 결과를 정량화한다: 큰 틱 상품에서 큐 우선순위의 가치는 반쪽 스프레드에 필적한다, 즉 호가 전략의 이론적 엣지 전체와 같은 자릿수다. 당신이 큐에서 실제로 어디에 있는지 — 그리고 취소/재입력이 그것에 무엇을 하는지 — 추정하는 것은 벽 안의 큐의 기계장치이며, 체결 시점의 큐 10분위로 버킷화한 자신의 체결로부터 A(q)A(q)를 캘리브레이션하는 것은 TCA 툴킷의 마크아웃 연습이다.

운영 규칙은 곧바로 도출된다: Vquote>CtakerV_{\text{quote}} > -C_{\text{taker}}인 동안(당신의 대안에 상대적으로) 호가하고, 그렇지 않을 때는 건너라 — 큐가 길거나, 플로우가 유독하거나, 당신의 시그널이 가격이 떠나고 있다고 말할 때. "정확히 언제 인내심을 멈출 것인가"는 전술의 문제 — 페깅 케이던스, 에스컬레이션 사다리, 크로싱 트리거 — 이며 차일드 주문 실행 전술에서 별도로 다룬다. 여기서의 요점은 그 의사결정의 입력이 수수료 표가 아니라 큐 조건부 가치라는 것이다.

티어 수수료 백테스트: VIP-9 버그

백테스트에서 가장 흔한 수수료 버그는 부끄러울 만큼 단순하다: 설정 파일에 maker_fee=0.0, taker_fee=0.00017이라고 적혀 있는데, 누군가가 거래소 VIP 표의 맨 윗줄을 복사했거나 — 아니면 데스크의 이전 티어를, 아니면 전략이 "규모가 커지면" 갖게 될 티어를 — 복사했고, 정작 전략은 실전에서 2/5로 거래한다. 이것을 VIP-9 버그라 부르자.

이것은 작은 왜곡이 아니다. 왕복당 총 캡처(스프레드 빼기 역선택)가 2.6 bps이고 메이커 레그가 두 개인 호가 전략을 보자.

수수료 티어 메이커 수수료 왕복당 순이익
VIP 9 0.0 bps +2.6 bps
중간 티어 1.0 bps +0.6 bps
기본 (VIP 0) 2.0 bps −1.4 bps

동일한 전략이 당신이 백테스트한 티어에서는 조폐기이고 당신이 거래하는 티어에서는 파쇄기다. 찾아야 할 알파 버그도, 체결 모델의 미묘함도 없다 — 그저 설정 파일 안의 스칼라 하나가 자산 곡선을 그 거울상으로부터 갈라놓을 뿐이다. 그리고 메이커 전략의 엣지는 통상 왕복당 1-3 bps이므로, 수수료 티어 오차는 언제나 엣지 자체와 같은 자릿수다.

이것을 올바르게 하려면 당신의 수수료가 상수가 아니라 경로 의존적 상태 변수임을 인식해야 한다.

from bisect import bisect_right

class FeeEngine:
    """Tiered fees driven by simulated rolling 30d volume. All rates in bps."""
    TIERS = [(0e6, 2.0, 5.0), (15e6, 1.6, 4.5), (50e6, 1.2, 4.0),
             (100e6, 0.8, 3.5), (600e6, 0.4, 2.5), (4e9, 0.0, 1.7)]
    token_discount = 0.90          # e.g. BNB payment: multiply fees by 0.9

    def __init__(self):
        self.fills = []            # (timestamp, notional)

    def _rolling_volume(self, ts):
        cutoff = ts - 30 * 86_400
        self.fills = [(t, n) for t, n in self.fills if t >= cutoff]
        return sum(n for _, n in self.fills)

    def fee(self, ts, notional, is_maker):
        vol = self._rolling_volume(ts)          # tier from PAST volume
        i = bisect_right([v for v, _, _ in self.TIERS], vol) - 1
        rate = self.TIERS[i][1] if is_maker else self.TIERS[i][2]
        self.fills.append((ts, notional))       # this fill counts toward FUTURE tiers
        return notional * rate * 1e-4 * self.token_discount

다섯 가지 규칙이 회계를 정직하게 만든다.

  1. 수수료는 체결 이벤트마다, 레그마다, 체결된 명목가치에 대해 발생한다 — 주문마다가 아니고 왕복마다도 아니다. 부분 체결된 주문은 체결된 조각에 대해서만 수수료를 낸다. 부분 체결, 취소, 수수료 발생 사이의 상호작용은 정확히 체결 시뮬레이션의 상태 기계이며, 이는 보정된 손익분기가 필요로 하는 미체결 확률도 공급한다.
  2. 티어는 내생적이다. 당신의 시뮬레이션 거래량이 당신의 시뮬레이션 티어를 결정한다; 전략을 키우면 자신의 수수료가 바뀐다. 명목가치를 10배로 스케일하는 백테스트는 티어 사다리가 양방향으로 반응하도록 허용해야 한다.
  3. 첫날 실제로 유지하게 될 티어에서 시뮬레이션을 시작하라 — 보통은 기본 티어. 논지가 "VIP 4에서 수익이 난다"라면, 사다리를 시나리오로 돌리고 손익분기 티어를 보고하라. 그 티어는 각주가 아니라 거래량 전제조건이 붙은 출시 요건이다.
  4. 토큰 표시 할인을 포지션으로 모델링하라. 수수료를 BNB로 내거나 스테이킹으로 할인받는다면, 그 플로트의 시가평가는 다른 스프레드시트가 아니라 전략 PnL에 속한다.
  5. 거래소 비교에는 수수료 포함 스프레드를 쓰라. Colliard-Foucault와 Angel-Harris-Spatt를 따라: 거래소 간 비교 가능한 양은 테이커 왕복의 경우 s+ft(1)+ft(2)s + f_t^{(1)} + f_t^{(2)}(메이커 레그면 fmf_m으로)이며, 결코 원시 호가 스프레드가 아니다. 테이커 5 bps에 스프레드 1 bps로 호가하는 거래소는 테이커 1 bps에 스프레드 4 bps로 호가하는 거래소보다 건너기에 네 배 더 비싸다 — 그리고 화면 스프레드 리그 테이블은 이들을 거꾸로 순위 매길 것이다.

의사결정, 다시 정리하면

위장을 벗겨내면 메이커-테이커 의사결정은 작은 체크리스트다. 당신의 진짜 수수료 줄을 알라 — 현재 티어, 현재 할인, 열망이 아니라 한계. 거래소별 수수료 포함 스프레드를 계산하고 화면을 믿는 것을 멈춰라. 자신의 체결로부터 체결 시점의 큐 위치로 버킷화한 조건부 마크아웃을 측정하라, 왜냐하면 AA는 그 누구의 문서에도 없기 때문이다. 모든 대기 호가를 p(q)(s/2+rA(q))(1p(q))Cmissp(q)\,(s/2 + r - A(q)) - (1-p(q))\,C_{\text{miss}}로 가격화하고, 그것이 음수가 되면 감정 없이 건너라. 리베이트를 옵션 발행의 임금으로 다루고 누가 행사하고 있는지 물어라. 그리고 백테스트에서는 수수료를 스칼라가 아니라 상태 기계로 만들라.

수수료 스케줄은 평균적인 상대방이 즉시성의 대가로 거래소에 무엇을 내는지 알려준다. 당신의 마크아웃은 유동성을 제공한 대가로 시장이 실제로 당신에게 무엇을 지불하는지 알려준다. 그 두 숫자 중 하나만이 당신에 관한 것이다 — 그 숫자로 거래하라.

blog.disclaimer

Authors

Eugen Soloviov
Eugen Soloviov

Trading-systems engineer

Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.

Newsletter

시장에서 앞서 나가세요

뉴스레터를 구독하여 독점적인 AI 트레이딩 통찰력, 시장 분석 및 플랫폼 업데이트를 받아보세요.

귀하의 개인정보를 존중합니다. 언제든지 구독을 취소할 수 있습니다.