Polymarket Bot Tutorial · Capítulo 13 de 32

Market making na Polymarket: como cotar bid e ask, capturar o spread, ganhar maker rebates (20-25% das taker fees), matemática de inventory risk e quando MM funciona em prediction markets.

O que este capítulo cobre

Market making na Polymarket significa cotar continuamente os dois lados de um order book e ganhar o spread em cada round trip. A estratégia é bem conhecida nas finanças tradicionais; as particularidades da Polymarket são o programa de maker rebate e o perfil de adverse selection dos prediction markets, que é maior do que em venues de CFD. Este capítulo mostra a matemática real.

  • Market making em português claro
  • A vantagem do spread + rebate
  • Inventory risk e skew
  • Quando MM funciona na Polymarket (e quando não)
  • Esqueleto de código: cotar os dois lados em +/- N cents
  • Ajustando cotações com o fluxo de notícias
  • Desligando o bot quando o adverse selection dispara

Market making em português claro

Um market maker cotará continuamente tanto um preço de compra (bid) quanto um preço de venda (ask), em uma faixa mais larga que o mid por um spread fixo. Quando alguém aceita o bid, o maker compra barato; quando alguém aceita o ask, o maker vende caro; a diferença entre bid e ask é a receita do maker por round trip.

A estratégia é guiada por order flow, não por direção. O maker não assume posição sobre se o YES vai ganhar; ele assume que o fluxo vai continuar e que o spread vai continuar sendo pago.

O risco é adverse selection: as pessoas que atingem seu bid podem ter informação que você não tem. Com o tempo, os lucros de MM dependem de o spread ser largo o suficiente para cobrir o slippage causado por traders informados.

A vantagem do spread + rebate

Dois fluxos de receita para um maker na Polymarket.

Captura do spread: cotar bid 0.45 e ask 0.47 em torno de um mid de 0.46. Cada fill no bid que você conseguir depois sair no ask rende 2 cents. A vantagem líquida depende do desequilíbrio entre fills e da deriva do preço.

Maker rebate: o programa de liquidity rewards da Polymarket paga um rebate por share nos fills de maker em mercados elegíveis. Os números mudam; confira a página oficial de rewards para os valores atuais. O rebate é pago em pUSD periodicamente, separado da própria operação.

Na maioria dos mercados, a captura do spread é o maior fluxo de receita. O rebate é relevante quando você consegue cotar mercados amplos (ano de eleição, playoffs importantes de esportes), nos quais a Polymarket aumenta os rebates para atrair liquidez.

Inventory risk e skew

Um MM que é repetidamente executado no bid acumula uma posição comprada. O risco é o mid cair enquanto o inventory está longo; o maker realiza prejuízo na posição mesmo depois da receita do spread.

Defesas: quote skew (mover o bid para baixo quando o inventory está comprado, e o ask para cima quando está vendido, para desincentivar fills unilaterais); inventory cap (parar de cotar no lado em que você já está comprado demais); active rebalancing (às vezes cruzar o spread para reduzir posição quando o inventory atinge o limite).

A matemática: se 60% dos fills no bid nunca são revertidos antes de o preço andar 2 cents contra você, a estratégia está perdendo dinheiro só nesses fills. Faça skew agressivo quando o desequilíbrio de fills for maior que 65/35.

Quando MM funciona na Polymarket (e quando não)

MM funciona na Polymarket quando três condições se mantêm.

  • Livro líquido: competição de quotes suficiente para que seu spread seja competitivo, mas não zero. Os mercados da eleição de 2024, grandes jogos da NFL/NBA, BTC up/down 5m tudo isso se qualifica.
  • Fluxo em dois lados: compradores e vendedores ativos. Mercados de um lado só (quase resolvidos em 0.95+) não têm nada para o maker capturar.
  • Movimentos de preço limitados: a captura do spread é consumida por saltos de 5 cents. Mercados estáveis em faixa intermediária (0.40-0.60) são os mais favoráveis.

MM falha em: mercados movidos a notícia, nos quais o mid salta mais rápido do que você consegue recotar; books ilíquidos em que você é o único quote e a próxima operação percorre 5 níveis; mercados próximos da resolução, em que um lado está convergindo para 0 ou 1.

Esqueleto de código: cotar os dois lados em +/- N cents

Pseudocódigo para o maker mais simples viável.

SPREAD_CENTS = 2
INVENTORY_CAP_SHARES = 50

def make_loop(token_id):
    while True:
        book = fetch_book(token_id)
        mid = (book.best_bid + book.best_ask) / 2
        inv = chain_balance(token_id)

        # Skew: pull the side we are too long on
        bid_px = mid - SPREAD_CENTS/200 - (0.005 if inv > INVENTORY_CAP_SHARES * 0.6 else 0)
        ask_px = mid + SPREAD_CENTS/200 + (0.005 if inv < -INVENTORY_CAP_SHARES * 0.6 else 0)

        cancel_my_existing_quotes(token_id)
        if inv < INVENTORY_CAP_SHARES:
            place_gtc(token_id, side="BUY", price=bid_px, size=5)
        if inv > -INVENTORY_CAP_SHARES:
            place_gtc(token_id, side="SELL", price=ask_px, size=min(5, inv))
        time.sleep(2)

Os makers em produção adicionam: tracking de inventory por lado, ordem de cancelar antes de colocar, jitter no intervalo de recotação para evitar previsibilidade, kill-switch para adverse selection (próxima seção).

Ajustando cotações com o fluxo de notícias

Quando um evento de notícia acontece, o fair value muda antes das suas cotações. Um MM que não retira as cotações durante o news flow acaba sendo passado para trás.

O sinal: a taxa de cancelamento de fills recebidos saltando para acima de ~3x a base em 30 segundos, ou uma checagem cruzada mais ampla no event-stream (Polymarket Twitter/Discord, Bloomberg headline feed). Quando detectado, o maker retira todas as cotações por 60-120 segundos, deixa o novo mid estabilizar e depois recota em torno do novo centro.

A implementação mais simples monitora o stream de last-trade-price do token. Um salto de mais de 2 desvios padrão em relação à média da janela rolante dispara uma pausa. O bot volta a operar quando o preço estiver estabilizado por 30+ segundos.

Desligando o bot quando o adverse selection dispara

A saída dura. Se o fill PnL do bot nas últimas 50 execuções ficar fortemente negativo, algo está errado: ou o mercado agora é movido a notícia e você não deveria estar fazendo market making, ou seu spread está apertado demais para o nível atual de adverse selection.

Condições de desligamento para codificar:

  • 5 fills consecutivos no bid sem nenhum fill no ask, com o mid caindo > 1c desde o primeiro fill.
  • Realized PnL nas últimas 25 round-trip fills abaixo de -25% do esperado.
  • WebSocket desconectado ou stale book detectado.
  • Inventory no limite de qualquer lado por > 5 minutos.

Quando disparado, cancele tudo, zere o inventory a mercado, e pause por 15+ minutos. Um market maker que não tem kill switch vai perder dinheiro durante períodos voláteis até o trader perceber manualmente - e isso sempre leva mais tempo do que você imagina.

Perguntas frequentes

Um bot de varejo realmente consegue ganhar dinheiro fazendo market making na Polymarket?
Às vezes, em mercados selecionados. O maker rebate (20-25% das taker fees) mais um spread de 1-3 cents por round trip pode se acumular em um retorno real. Mas na Polymarket, o news flow pode mover um mercado 20+ cents em segundos - um market maker sem um feed de notícias rápido sofre adverse selection. Funciona melhor em mercados líquidos de esportes antes do jogo e durante períodos com poucas notícias.
Quão largo eu devo cotar na Polymarket?
No mínimo, o spread necessário para cobrir o pior adverse selection esperado. Para esportes/política líquidos: 1-3 cents por lado a partir do mid. Para mercados finos: 5+ cents. Se você não conseguir cotar apertado o suficiente para competir com outros makers, mas largo o suficiente para sobreviver aos movimentos, o mercado não é market-makeable para você.
Quais limites de inventory eu devo definir?
Defina um hard cap de inventory por mercado entre 50-200 USD até provar lucratividade por meses. Faça skew das cotações para levar o inventory em direção ao neutro - se você acumular Yes, reduza seu bid de Yes e reduza seu ask de No para incentivar recompras de No. Nunca deixe um único mercado segurar mais de 20% do seu bankroll.
Eu preciso de um VPS rápido para fazer market making na Polymarket?
Sim. Market making é a estratégia da Polymarket mais sensível à latência. Um VPS com jitter alto gera cotações obsoletas que serão passadas para trás. Nós usamos TradingVPS para nossos MM bots especificamente porque o jitter é consistentemente baixo. Cloud comum (DO/Vultr) funciona para paper trading de MM, mas não para live.
Como o MM da Polymarket é diferente do MM em crypto?
Duas diferenças grandes: (1) a Polymarket tem eventos de outcome hard (notícias, finais de esportes) que podem mover o preço 30-100 cents instantaneamente - muito mais brusco do que crypto. (2) Os mercados da Polymarket eventualmente são resolvidos, então, ao contrário de pares de crypto, posições de MM têm uma expiração dura. Ambos os fatores empurram você para holds mais curtos e limites de risco mais apertados.
Posso fazer market making em mercados de crypto de 5 minutos na Polymarket?
É possível, mas muito difícil. Os mercados de 5 minutos têm ~288 expirações por dia por par, são dominados por bots mais rápidos e têm spreads mais apertados. A maioria dos bots de MM de varejo perde dinheiro ali por causa de adverse selection. Cobrimos corretamente a estratégia de crypto de 5 minutos no capítulo 23 desta série.