A decisão maker-taker: faixas de taxas, rebates e o custo real de cruzar o spread
Toda ordem que você envia toma uma decisão binária antes de qualquer outra: cruzar o spread e pagar a taxa de taker, ou ficar parada no book e pagar a taxa de maker — talvez até coletar um rebate. O mercado costuma enquadrar isso como uma otimização de taxas, e as tabelas de taxas fazem parecer exatamente isso: taker 5 bps, maker 2 bps, economia de 3 bps, flag post-only ligado, pronto. Esse enquadramento é uma fantasia. Por baixo dele, maker versus taker é uma operação sobre seleção adversa: se você paga um preço conhecido por imediatismo, ou vende ao mercado uma opção de te preencher a critério dele — uma opção que contrapartes informadas exercem justamente quando o preenchimento te prejudica. A tabela de taxas precifica essa opção para o participante médio. Você não é o participante médio, e o fluxo que atinge sua cotação também não.
Este artigo faz a conta que a tabela de taxas esconde: o break-even corrigido, por que Glosten-Milgrom (1985) implica que preenchimentos passivos são estruturalmente enviesados contra você, o que faixas de taxas reais em cripto e descontos por token fazem com os números, por que a mineração de rebates morreu nas ações e qual forma mutante sobrevive em cripto, como a posição na fila define o valor real de um rebate, e como modelar tudo isso em um backtest sem cometer o bug de taxas mais comum do setor.
O break-even ingênuo — e o termo que todo mundo esquece
Notação: spread cotado , taxa de taker , taxa de maker (negativa se for um rebate), tudo em pontos-base sobre o notional, com o mid como benchmark de preço. Cruzar custa metade do spread mais a taxa de taker; ficar parado ganha metade do spread e custa a taxa de maker:
Substituindo pelas taxas base dos futuros USDⓈ-M da Binance — maker 2 bps, taker 5 bps — em um perp cotado com 2 bps de largura: o taker custa bps, o maker "custa" bp. Economia aparente: 5 bps por trade, em todo trade. Para uma estratégia que faz 20 idas-e-voltas por dia, isso equivale a supostos 100 bps de edge diário vindos de uma caixinha marcada.
Repare em algo nesses números antes de mais nada: a taxa não é uma correção do spread — em pares líquidos de cripto ela é o custo. O perp de BTCUSDT frequentemente cota com menos de 1 bp de largura, enquanto um taker de varejo paga 5 bps. O meio-spread é um erro de arredondamento perto da taxa. Isso é o oposto da intuição de ações, onde spreads e taxas têm a mesma ordem de grandeza, e é por isso que em cripto toda comparação ingênua grita "sempre faça maker". É também por isso que todo primeiro backtest de market making é lucrativo e a maioria dos primeiros deployments não é.
O custo de maker ingênuo está sem três termos:
- Risco de não preenchimento. Uma ordem limitada não é um trade; é um bilhete de loteria para um trade. Quando não é preenchida, você ou perde o movimento ou cruza depois a um preço pior.
- Seleção adversa. Condicionado ao preenchimento, o preço tem mais chance de se mover contra você do que a distribuição incondicional sugere. Isso não é azar; é um teorema.
- Custo de recotação. Perseguir o mercado com cancelar/substituir reseta sua posição na fila para o final, o que silenciosamente converte sua distribuição de preenchimentos em majoritariamente preenchimentos do tipo 2.
O segundo termo é o que tem cinquenta anos de teoria por trás, então vamos fazer isso direito.
Glosten-Milgrom: o preenchimento é a má notícia
Glosten e Milgrom (1985), "Bid, Ask and Transaction Prices in a Specialist Market with Heterogeneously Informed Traders" (Journal of Financial Economics 14), é o modelo mais limpo de por que um spread existe. Um market maker neutro ao risco, competitivo e com custo zero cota um bid e um ask. Uma fração dos traders que chegam são informados — eles conhecem o valor verdadeiro do ativo — e o restante negocia por razões exógenas, comprando ou vendendo com probabilidade igual. O market maker não consegue distingui-los. A competição força cada cotação a ser uma expectativa condicional:
Números trabalhados. Seja igual a 101 ou 99 com probabilidade igual, e . Se , uma compra chega com probabilidade (todos os informados compram, metade dos não informados compra); se , com probabilidade . Então
O spread é — pura compensação por seleção adversa. Sem risco de inventário, sem taxas, sem renda de monopólio, e o spread continua ali, escalando com a fração de informados e com a magnitude do que eles sabem.
A consequência que importa para a decisão maker-taker: ser preenchido já é informação, e a informação está contra você. Seu bid parado compra mais vezes quando o valor verdadeiro é baixo, porque é justamente quando vendedores informados aparecem. Condicionar no seu próprio preenchimento desloca o valor esperado do que você acabou de comprar para baixo — por construção, não por azar. A forma padrão de medir isso é o markout: para uma compra preenchida ao preço , o markout no horizonte é . Markouts agregados em preenchimentos passivos são negativos para quase todo mundo, quase sempre; como calculá-los sem se enganar é abordado em Implementation shortfall e TCA.
Um enquadramento equivalente que generaliza melhor: uma ordem limitada parada é uma opção gratuita concedida ao mercado. A contraparte — não você — escolhe o momento do exercício, e ela exerce quando é do seu interesse. O rebate de maker é o prêmio que a exchange te paga por escrever essa opção. A pergunta nunca é "o prêmio é positivo", mas "o prêmio é maior do que o valor da opção para quem está exercendo".
O break-even corrigido
Seja a probabilidade de sua cotação ser preenchida dentro do seu horizonte de decisão, o custo de markout condicional em bps, e o custo extra que você paga quando não é preenchido (drift enquanto esperou mais cruzar ao novo preço). O custo de maker honesto é:
Fazer maker é preferível a fazer taker quando , o que se rearranja em uma desigualdade limpa:

Mesmo exemplo trabalhado, agora com fricções realistas: , , , então a economia aparente é 5 bps. Tome , bps, bps. O lado direito é bps. Fazer maker ainda vence — por uma margem de 0.67 bps, não 5. Em expectativa: bps contra um custo de taker de 6.0. A caixinha marcada valia 0.4 bps, não 5, e um erro modesto em ou inverte o sinal.
Pior: , e não são variáveis independentes — elas são conjuntamente determinadas por por que você está negociando. Se seu sinal é correlacionado com fluxo de curto prazo (toda entrada de momentum é), então exatamente durante as rajadas em que você quer entrar, e explode: você é preenchido instantaneamente, pelo movimento que você previu, no preço antigo, do lado errado dele. O desconto de maker é maior na tabela de taxas justamente para os trades em que ele é mais negativo na realidade. É nesse sentido que a escolha maker-taker é uma operação de seleção adversa disfarçada de tabela de taxas.
Tabelas de taxas reais: faixas, descontos por token e a armadilha da taxa marginal
Tabelas representativas em grandes exchanges em meados de 2026 (faixa base → faixa pública máxima; confira as páginas das exchanges, isso muda):
| Exchange | Maker / taker base | Maker / taker faixa máxima | Mecânica de desconto |
|---|---|---|---|
| Binance spot | 10 / 10 bps | cai com VIP 1-9 | pagar taxas em BNB: −25% |
| Binance USDⓈ-M perp | 2 / 5 bps | 0 / 1.7 bps (VIP 9) | BNB: −10%; VIP exige volume + saldo em BNB |
| Bybit perp | 2 / 5.5 bps | 0 / 3 bps | programa de MM até −1.5 bps maker, com obrigações |
| OKX perp | 2 / 5 bps | até cerca de −0.5 / 1.5-2 bps | posições em OKB definem a faixa de varejo |
| Hyperliquid perp | 1.5 / 4.5 bps | rebates de maker até −0.3 bps | rebate atrelado à fatia do volume de maker; descontos por staking |
| Coinbase Advanced | 40 / 60 bps | 0 / 5 bps | apenas faixas por volume |
| Kraken Pro | 25 / 40 bps | 0 / 10 bps | apenas faixas por volume |
Três observações estruturais.
Taxas de maker no varejo são positivas em quase todo lugar. O padrão do estilo ações de "makers são pagos" simplesmente não vale para você até faixas VIP profundas ou um acordo assinado de market maker. Na faixa base, a decisão maker-taker é "pagar 2 ou pagar 5", não "ganhar ou pagar".
Descontos por token são uma posição, não um cupom. Pagar taxas em BNB corta as taxas spot da Binance em 25% — 2.5 bps por lado na faixa base, dinheiro real em volume. Mas o desconto exige manter um inventário do token da exchange, então sua otimização de taxas é financiada por exposição beta ao ativo tipo-equity da própria exchange. Uma mesa pagando $30 mil/mês em taxas e economizando $7.5 mil via BNB, enquanto mantém um float de $200 mil em BNB, tem todo o seu trimestre de economia de taxas apagado por uma queda de 10% no BNB. Trate o float como uma posição de book: dimensione-a, faça hedge dela, ou aceite que você vendeu volatilidade para comprar um desconto. (Várias escadas VIP também tornam o saldo de token um requisito de faixa, o que converte a posição de opcional em estrutural.)
Taxa marginal ≠ taxa média. As faixas são calculadas sobre o volume dos últimos 30 dias, então a taxa de hoje foi definida pelo trading do mês passado — mas cruzar uma fronteira reprecifica todo o seu volume enquanto você mantiver a faixa. Isso cria uma quebra no custo marginal do volume. Suponha que a próxima faixa em $15M/30d corte sua taxa de taker de 5 para 4 bps. Com $14M de volume orgânico, $1M de churn artificial custa cerca de 1\text{M} \times (s/2 + f_t) \approx \6001,\text{bps} \times $14\text{M} = $1.400/mês de economia — a taxa marginal desse último milhão é *negativa*. Com \8M orgânicos, a mesma lógica exige $7M de churn custando $4.200 para economizar $800 — uma aposta alavancada que queima spread e taxas reais em volume falso para ganhar descontos hipotéticos, renováveis mensalmente. Perseguir faixas só é racional dentro de distância de ataque de uma fronteira, e mesas que modelam sua taxa como um único escalar nem conseguem enxergar a quebra.
Mineração de rebates: ascensão, morte e a vida após a morte em cripto
O rebate de maker é uma invenção das ações. A Island ECN o introduziu em 1997 para bootstrapar liquidez contra as exchanges estabelecidas, e funcionou tão bem que o modelo conquistou a estrutura do mercado de ações dos EUA; o Reg NMS (2005) então limitou a taxa de acesso do taker a $0.003/ação (Regra 610), e o negócio padrão das exchanges virou: cobrar dos takers ~30 mils, dar rebate aos makers de ~20-30 mils, ficar com a diferença.
Essa aritmética criou brevemente uma estratégia pura: captura de rebate. Postar dos dois lados de uma large-cap com spread de um centavo. Uma ida-e-volta que empata — compra e vende ao mesmo preço — ainda coleta dois rebates, cerca de meio centavo por ação em PnL de preço zero. Capturar o spread do centavo também e você triplica isso. Em meados dos anos 2000 isso era um negócio industrial genuíno.
Morreu por três causas, e cada uma é uma lição:
- O rebate é público, então ele é competido para dentro da fila. Um rebate anunciado atrai cotações até que o rebate esperado do cotador marginal, líquido de seleção adversa, seja zero. Em uma ação restrita por tick, o preço não pode melhorar, então a competição acontece na prioridade de tempo — e a renda flui para quem chegar primeiro à frente da fila. O rebate financiou a corrida armamentista de velocidade; colocation e torres de micro-ondas comeram a margem. Os sobreviventes que ganhavam rebate eram as firmas que já estariam cotando de qualquer forma.
- Onde o tick não trava, o rebate nem é real. Colliard e Foucault (2012), "Trading Fees and Efficiency in Limit Order Markets" (Review of Financial Studies 25), provam o resultado de neutralidade: com uma grade fina de preços, só a taxa total da exchange importa — qualquer divisão entre maker e taker é desfeita pelo ajuste de cotação. Dê aos makers um rebate e eles cotam correspondentemente mais apertado, repassando-o diretamente aos takers através do spread cum-fee. A divisão só tem efeito real quando o tick impede esse ajuste — o que te leva de volta à causa #1. O rebate é dissipado ou pelo preço ou pela fila; escolha seu veneno. (Foucault, Kadan e Kandel 2013 dão a visão complementar: a divisão de taxas é a ferramenta da exchange para equilibrar a participação de makers e takers, não um presente para nenhum dos dois lados.)
- As distorções atraíram reguladores. Angel, Harris e Spatt, "Equity Trading in the 21st Century" (2011, e a atualização de 2015 no Quarterly Journal of Finance), catalogaram o dano: spreads cotados param de medir o custo real porque taxas e rebates não estão na cotação, estatísticas de best-execution viram ficção, e corretoras enfrentam um conflito entre o preenchimento do cliente e seu próprio rebate. Battalio, Corwin e Jennings (2016, Journal of Finance) mostraram que o conflito não era hipotético: rotear para venues de alto rebate piorava mensuravelmente a qualidade de execução de ordens limitadas. A SEC rondou o tema por uma década — o Transaction Fee Pilot de 2018 morreu na justiça — e finalmente adotou emendas em setembro de 2024 cortando o teto da taxa de acesso de 30 para 10 mils (conformidade agora adiada para novembro de 2026). A era dos rebates gordos nas ações está terminando por decreto administrativo.
O que sobrevive em cripto é instrutivo justamente porque não é um revival. Três formas:
- Rebates VIP públicos (a faixa máxima de maker de −0.5 bps da OKX e similares): disponíveis apenas em níveis de volume que já selecionam firmas que já venceram a corrida da fila. A circularidade é o desfecho das ações repetido: o rebate existe para atrair makers, e os makers que o capturam são aqueles que cotariam de qualquer forma.
- Programas negociados de market maker (a Bybit anuncia até −1.5 bps): vêm com tetos de spread, tamanho mínimo e obrigações de uptime. Isso não é dinheiro grátis; é um contrato de serviço em que você é pago para escrever a opção de seleção adversa continuamente — inclusive durante notícias, cascatas e os minutos em que todo maker discricionário retirou suas cotações. O rebate é o salário por manter o livro de opções que ninguém quer.
- Incentivos guiados por fórmula (a Hyperliquid paga até −0.3 bps atrelado à sua fatia do volume total de maker): um torneio explícito, que ao menos precifica a corrida da fila com honestidade.
A captura pura por empate para rebate majoritariamente não pode existir em cripto porque as taxas de maker no varejo são positivas: com 2 bps de maker, uma ida-e-volta de empate perde 4 bps. A estratégia só existe dentro de faixas de maker negativo, e as faixas são o fosso.
Valor de fila: o que um rebate realmente vale
Tudo acima se comprime em uma equação de precificação. O valor esperado de uma cotação parada é:
onde é o rebate (ou menos a taxa de maker), e — o detalhe que carrega o peso — tanto a probabilidade de preenchimento quanto a seleção adversa condicional são funções da sua posição na fila . Elas se movem juntas da pior forma possível. Uma ordem na frente da fila é preenchida contra fluxo benigno: takers pequenos, ruído, os prints de toque-e-repique. Uma ordem no fundo da fila só é preenchida quando o nível inteiro é varrido — ou seja, apenas nos estados do mundo em que o preço está passando por cima de você. Posições profundas na fila não apenas preenchem menos vezes; elas preenchem pior. A fila é um filtro de seleção adversa, e sua posição nela decide de que lado do filtro você está.

Números. Nível cotado a bp do mid, rebate bps, custo de perda bps:
| Posição na fila | (bps) | (bps) | |
|---|---|---|---|
| Decil da frente | 0.85 | 0.8 | |
| Decil do fundo | 0.35 | 3.5 |
Mesma exchange, mesmo nível de preço, mesma linha de rebate na tabela de taxas — uma oscilação de dois pontos-base no valor esperado, sinal incluso, causada inteiramente pela posição na fila. Moallemi e Yuan (2016), "A Model for Queue Position Valuation in a Limit Order Book," quantificam o resultado geral: em instrumentos de tick grande, o valor da prioridade de fila é comparável ao meio-spread, ou seja, da mesma ordem de grandeza que todo o edge teórico de uma estratégia de cotação. Estimar onde você realmente está na fila — e o que cancelar/substituir faz com ela — é a maquinaria de Fila dentro do muro; calibrar a partir dos seus próprios preenchimentos, agrupados por decil de fila no momento do preenchimento, é um exercício de markout do kit de ferramentas de TCA.
A regra operacional decorre diretamente: cote enquanto em relação à sua alternativa, e cruze quando não for o caso — quando a fila está longa, o fluxo é tóxico, ou seu sinal diz que o preço está indo embora. "Quando exatamente parar de ser paciente" é uma questão de tática — cadência de pegging, escadas de escalonamento, gatilhos de cruzamento — que recebe seu próprio tratamento em Táticas de execução de child orders. O ponto aqui é que o insumo dessa decisão é o valor condicional à fila, não a tabela de taxas.
Backtesting de taxas escalonadas: o bug do VIP-9
O bug de taxas mais comum em backtesting é embaraçosamente simples: a configuração diz maker_fee=0.0, taker_fee=0.00017 porque alguém copiou a linha do topo da tabela VIP da exchange — ou a faixa anterior da mesa, ou a faixa que a estratégia teria "em escala" — e a estratégia opera ao vivo em 2/5. Chame de bug do VIP-9.
Não é uma distorção pequena. Pegue uma estratégia de cotação com captura bruta (spread menos seleção adversa) de 2.6 bps por ida-e-volta, duas pernas de maker cada:
| Faixa de taxa | Taxa de maker | Líquido por ida-e-volta |
|---|---|---|
| VIP 9 | 0.0 bps | +2.6 bps |
| Faixa intermediária | 1.0 bp | +0.6 bps |
| Base (VIP 0) | 2.0 bps | −1.4 bps |
A estratégia idêntica é uma máquina de imprimir dinheiro na faixa que você backtestou e uma trituradora na faixa em que você opera. Não há bug de alfa para encontrar, nenhuma sutileza no modelo de preenchimento — apenas um escalar num arquivo de configuração separando a curva de patrimônio da sua imagem espelhada. E porque os edges de estratégias de maker rotineiramente ficam entre 1-3 bps por ida-e-volta, erros de faixa de taxa são sempre da mesma ordem de grandeza que o próprio edge.
Fazer isso corretamente significa reconhecer que sua taxa é uma variável de estado dependente de trajetória, não uma constante:
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
Cinco regras tornam a contabilidade honesta:
- Taxas incidem por evento de preenchimento, por lado, sobre o notional preenchido — não por ordem e não por ida-e-volta. Uma ordem parcialmente preenchida paga taxas apenas sobre o fragmento preenchido; a interação entre preenchimentos parciais, cancelamentos e a incidência de taxas é exatamente a máquina de estados de Simulação de preenchimento, que também fornece as probabilidades de não preenchimento que o break-even corrigido exige.
- A faixa é endógena. Seu volume simulado determina sua faixa simulada; aumentar o tamanho da estratégia muda sua própria taxa. Um backtest que escala o notional 10x precisa deixar a escada de faixas responder, nas duas direções.
- Comece a simulação na faixa que você realmente vai manter no primeiro dia — geralmente a base. Se a tese é "lucrativa no VIP 4", rode a escada como cenários e reporte a faixa de break-even. Essa faixa é um requisito de lançamento com um pré-requisito de volume anexado, não uma nota de rodapé.
- Modele descontos denominados em token como posições. Se as taxas são pagas em BNB ou descontadas por staking, o mark-to-market do float pertence ao PnL da estratégia, não a uma planilha diferente.
- Use o spread cum-fee para comparação entre venues. Seguindo Colliard-Foucault e Angel-Harris-Spatt: a quantidade comparável entre venues é para uma ida-e-volta de taker (ou com para pernas de maker), nunca o spread cotado bruto. Uma venue cotando 1 bp de largura a 5 bps de taker é quatro vezes mais cara para cruzar do que uma cotando 4 bps de largura a 1 bp de taker — e rankings de spread de tela vão classificá-las ao contrário.
A decisão, resumida
Tire a fantasia e a decisão maker-taker é uma checklist pequena. Conheça sua linha de taxa real — faixa atual, descontos atuais, marginal, não aspiracional. Calcule o spread cum-fee por venue e pare de confiar nas telas. Meça markouts condicionais a partir dos seus próprios preenchimentos, agrupados por posição na fila no momento do preenchimento, porque não está na documentação de ninguém. Precifique cada cotação parada com e cruze sem sentimentalismo quando isso ficar negativo. Trate rebates como salário por escrever opções e pergunte quem está exercendo. E no backtest, faça da taxa uma máquina de estados, não um escalar.
A tabela de taxas diz o que a contraparte média paga à exchange por imediatismo. Seus markouts dizem o que o mercado realmente te paga por fornecê-lo. Só um desses números é sobre você — opere com base nesse.
Authors
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.