← Voltar aos artigos
July 21, 2026
5 min read

A decisão maker-taker: faixas de taxas, rebates e o custo real de cruzar o spread

A decisão maker-taker: faixas de taxas, rebates e o custo real de cruzar o spread
#maker taker
#taxas de trading
#rebates
#seleção adversa
#market making
#execução
#microestrutura de mercado
#backtest

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 ss, taxa de taker ftf_t, taxa de maker fmf_m (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:

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

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 1+5=61 + 5 = 6 bps, o maker "custa" 21=12 - 1 = 1 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:

  1. 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.
  2. 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.
  3. 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 μ\mu dos traders que chegam são informados — eles conhecem o valor verdadeiro do ativo VV — 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:

ask=E[Vproˊximo trader compra],bid=E[Vproˊximo trader vende]\text{ask} = \mathbb{E}[V \mid \text{próximo trader compra}], \qquad \text{bid} = \mathbb{E}[V \mid \text{próximo trader vende}]

Números trabalhados. Seja VV igual a 101 ou 99 com probabilidade igual, e μ=0.2\mu = 0.2. Se V=101V = 101, uma compra chega com probabilidade μ+(1μ)/2=0.6\mu + (1-\mu)/2 = 0.6 (todos os informados compram, metade dos não informados compra); se V=99V = 99, com probabilidade 0.40.4. Então

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

O spread é μ(VHVL)=0.4\mu(V_H - V_L) = 0.4 — 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 pp, o markout no horizonte τ\tau é m(τ)=mid(tfill+τ)pm(\tau) = \text{mid}(t_{\text{fill}} + \tau) - p. 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 pp a probabilidade de sua cotação ser preenchida dentro do seu horizonte de decisão, A=E[movimento adversopreenchimento]A = \mathbb{E}[\text{movimento adverso} \mid \text{preenchimento}] o custo de markout condicional em bps, e DD o custo extra que você paga quando não é preenchido (drift enquanto esperou mais cruzar ao novo preço). O custo de maker honesto é:

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)

Fazer maker é preferível a fazer taker quando E[Cmaker]<s/2+ft\mathbb{E}[C_{\text{maker}}] < s/2 + f_t, o que se rearranja em uma desigualdade limpa:

s+ftfmeconomia aparente  >  Aselec¸a˜o adversa  +  1ppDcusto de perda ponderado pela chance\underbrace{s + f_t - f_m}_{\text{economia aparente}} \;>\; \underbrace{A}_{\text{seleção adversa}} \;+\; \underbrace{\frac{1-p}{p}\,D}_{\text{custo de perda ponderado pela chance}}

Decomposição do custo de taker versus o custo honesto de maker

Mesmo exemplo trabalhado, agora com fricções realistas: s=2s = 2, ft=5f_t = 5, fm=2f_m = 2, então a economia aparente é 5 bps. Tome p=0.6p = 0.6, A=3A = 3 bps, D=2D = 2 bps. O lado direito é 3+0.40.62=4.333 + \frac{0.4}{0.6} \cdot 2 = 4.33 bps. Fazer maker ainda vence — por uma margem de 0.67 bps, não 5. Em expectativa: 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 contra um custo de taker de 6.0. A caixinha marcada valia 0.4 bps, não 5, e um erro modesto em AA ou pp inverte o sinal.

Pior: AA, pp e DD 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, p1p \to 1 e AA 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 \600ecomprae compra1,\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:

  1. 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.
  2. 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.)
  3. 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 é:

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}}

onde rr é o rebate (ou menos a taxa de maker), e — o detalhe que carrega o peso — tanto a probabilidade de preenchimento pp quanto a seleção adversa condicional AA são funções da sua posição na fila qq. 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á.

Probabilidade de preenchimento e markout condicional versus posição na fila, e o valor de cotação resultante

Números. Nível cotado a s/2=1s/2 = 1 bp do mid, rebate r=0.5r = 0.5 bps, custo de perda Cmiss=1.5C_{\text{miss}} = 1.5 bps:

Posição na fila pp AA (bps) VquoteV_{\text{quote}} (bps)
Decil da frente 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
Decil do fundo 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

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(q)A(q) 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 Vquote>CtakerV_{\text{quote}} > -C_{\text{taker}} 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:

  1. 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.
  2. 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.
  3. 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é.
  4. 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.
  5. Use o spread cum-fee para comparação entre venues. Seguindo Colliard-Foucault e Angel-Harris-Spatt: a quantidade comparável entre venues é s+ft(1)+ft(2)s + f_t^{(1)} + f_t^{(2)} para uma ida-e-volta de taker (ou com fmf_m 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 AA não está na documentação de ninguém. Precifique cada cotação parada com p(q)(s/2+rA(q))(1p(q))Cmissp(q)\,(s/2 + r - A(q)) - (1-p(q))\,C_{\text{miss}} 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.

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

Fique à frente do mercado

Assine nossa newsletter para insights exclusivos sobre trading com IA, análises de mercado e atualizações da plataforma.

Respeitamos sua privacidade. Cancele a inscrição a qualquer momento.