Tutorial de Bot da Polymarket · Capítulo 23 de 32

Padrões de bot para mercados up-down de BTC/ETH de 5 minutos na Polymarket: 288 expirações por dia, execução crítica para latência, fontes de edge, por que a maioria dos bots de varejo perde e skeleton de código para a estratégia.

O que este capítulo cobre

Os mercados de BTC up/down de 5 minutos da Polymarket se resolvem 288 vezes por dia, acumulando qualquer edge ao longo de muitas repetições. A maioria dos bots de varejo perde aqui apesar do volume, porque a barra de latência e de edge é definida por firmas profissionais. Este capítulo trata do que sobrevive.

  • O que são os mercados cripto de 5 min
  • 288 expirações por dia = repetições compostas
  • Por que bots de varejo perdem aqui
  • Fontes de edge que sobrevivem
  • Orçamento de latência
  • Risco: pequeno por trade, grande por dia
  • Código: skeleton de estratégia de 5 min

O que são os mercados cripto de 5 min

Os mercados cripto de 5 minutos da Polymarket são perguntas binárias de alta/baixa sobre o preço do BTC (e ETH). Novos mercados abrem a cada 5 minutos; cada um se resolve no preço de fechamento 5 minutos após a abertura, com fonte em um oracle publicado.

Isso produz 288 mercados por ativo por dia. A oportunidade de compounding de qualquer edge é enorme: mesmo uma pequena vantagem por trade se torna significativa quando você pode aproveitá-la mais de 100 vezes por dia.

O outro lado: a barra é definida por firmas profissionais. O mid se move em sincronia apertada com o feed de preço do ativo subjacente, e os books geralmente são finos na perna do lado errado.

288 expirações por dia = repetições compostas

Se seu edge for de 0,5c por trade com taxa de acerto de 55% e você puder fazer 60 trades por dia, o PnL diário esperado é 60 × 0,5c = $0,30 em posições de 10 shares = $3/dia. Parece pouco, mas compõe: 252 dias de trading × $3 = $750/ano com exposição de capital quase zero (as posições se resolvem em até 5 minutos).

Para o mesmo edge produzir $750/ano em uma binary que se resolve uma vez por trimestre, você precisaria de um tamanho por trade muito maior e caudas de perda muito mais amplas.

Mercados de 5 min são o único segmento na Polymarket em que edges pequenos, porém frequentes, somam uma renda anual relevante.

Por que bots de varejo perdem aqui

Três modos de falha que consistentemente derrubam participantes de varejo.

  • Latência: firmas profissionais colocam ordens em 50-100ms; bots de varejo levam 1-3 segundos. Quando você dispara, o preço já está no novo mid.
  • Assimetria de informação: o CEX subjacente (Binance, Coinbase) imprime o trade tape mais rápido que o feed de preço da Polymarket. Bots sem assinaturas diretas de CEX estão operando com dados defasados.
  • Taxa do spread: em cadência de 5 min, até um spread de 0,5c × 60 trades = 30c por dia em custo inevitável. O edge precisa superar isso antes de ser lucrativo.

Bots de varejo normalmente empatam ou perdem porque não conseguem superar os profissionais e não conseguem escapar da taxa do spread. As estratégias que funcionam para varejo não são edge contra os profissionais; são estratégias de decisão lenta com vantagens específicas de informação.

Fontes de edge que sobrevivem

O que funciona para varejo em mercados de 5 min.

  • Viés direcional guiado por funding rate: funding positivo extremo em perp futures prevê mean reversion; opere contra o funding rate.
  • Janelas de liquidação de open interest: no início de cada hora, liquidações em perp futures são mais prováveis; fade movimentos extremos nessa janela.
  • Arbitragem de resolução na janela final: nos últimos 30 segundos de uma janela de 5 min, o preço de resolução fica cada vez mais previsível; o book frequentemente oferece liquidez rasa em probabilidades que não batem com o live tape.

O que não funciona: sinais puramente técnicos (RSI, moving averages), simples cópia de momentum, qualquer coisa que exija que o bot seja mais rápido que os profissionais.

Orçamento de latência

Para uma estratégia viável de 5 min, a divisão do orçamento é aproximadamente:

  • Ler a fonte do sinal (trade tape do CEX, funding rate): 100-300ms
  • Computar a decisão: 50ms
  • Enviar ordem FOK: 200-500ms
  • Receber confirmação de fill: 200ms

Total: 550-1050ms. Alcançável em uma VPS com RPC pago e assinatura direta de WebSocket do CEX. Não é alcançável em um laptop doméstico ou com APIs de free-tier.

Estratégias que precisam de < 500ms no total são território de profissionais; varejo não deve competir aí.

Risco: pequeno por trade, grande por dia

Dimensionamento para mercados de 5 min: pequeno por trade, com limite diário.

  • Por trade: 5-15 shares ($1-6) por mercado. Abaixo de 5, vendas GTC ficam impossíveis; acima de 15, você varre o book na entrada.
  • Total diário: 50-100 trades. Mais do que isso cria exposição correlacionada a uma única peculiaridade do oracle.
  • Kill switch de PnL diário: interrompa se o PnL acumulado cair > $10 (ou 5% do capital alocado). Dias ruins em mercados de 5 min normalmente acontecem porque uma hipótese da estratégia quebrou; sobreviva ao dia, debuge e faça deploy novamente.

A assimetria entre o tamanho por trade e a contagem diária é intencional. Você está jogando amplitude, não profundidade.

Código: skeleton de estratégia de 5 min

Referência: o loop de trading para um bot de 5 min guiado por funding rate.

def five_min_loop():
    while True:
        wait_for_next_window_open()  # blocks until xx:x0:00 or xx:x5:00
        markets = find_open_5min_markets("btc")
        if not markets: continue

        funding = fetch_perp_funding_rate("BTCUSDT")
        bias = "DOWN" if funding > 0.001 else "UP" if funding < -0.001 else None
        if bias is None: continue

        market = markets[0]
        token = market["clobTokenIds"][0 if bias == "UP" else 1]
        book = fetch_book(token)
        if not book.best_ask or book.best_ask > 0.55: continue

        place_fok(token, "BUY", book.best_ask + 0.01, 10)

Adições da versão de produção: rastrear posições ao longo da janela de 5 min para timing de saída preciso, fazer paper-trade por 30 janelas antes de ir ao vivo, interromper após perdas consecutivas.

Perguntas frequentes

O que é um mercado cripto de 5 minutos da Polymarket?
Um mercado binário que se resolve a cada 5 minutos sobre se BTC, ETH ou SOL estarão mais altos ou mais baixos em 5 minutos. Cerca de 288 expirações por dia por par. Feito para traders rápidos dispostos a fazer muitas apostas pequenas.
Mercados cripto de 5 minutos são lucrativos para bots de varejo?
Difícil. Os spreads são apertados, bots mais rápidos dominam e o edge é pequeno por aposta. A matemática: 0,5% de edge esperado por aposta * 288 apostas/dia = 144% bruto por dia, mas a variância é brutal e o slippage consome a maior parte disso. A maioria dos bots de varejo que vimos perde dinheiro aqui.
Que edge pode sobreviver em mercados cripto de 5 minutos?
Feeds de preço mais rápidos do que o orderbook está usando (por exemplo, desequilíbrio no order book da Binance antecipando o spot da Polymarket). Arbitragem estatística entre os 5 min da Polymarket e funding rates de crypto perp. Qualquer coisa de puro reconhecimento de padrão já foi arbitrada para fora.
Qual é o requisito de latência?
Sub-200ms do sinal à execução para qualquer estratégia standalone. Sub-50ms se estiver competindo pelos melhores fills. A estratégia é melhor executada de uma VPS co-localizada (NY4) com rede de baixo jitter - um dos poucos casos em que hosts ajustados para trading se pagam no varejo.
Quanto capital eu preciso para bots cripto de 5 minutos?
Comece do zero e faça paper-trade por mais de 1000 posições fechadas para entender a variância. Ao vivo: bankroll de 500-1000 USD, 1-3 USD por trade, aumente apenas se os resultados ao vivo de 30 dias baterem com o paper. Abaixo de um cap de bankroll de 500 USD, o tamanho por trade fica tão pequeno que as fees dominam.
Posso rodar múltiplas estratégias de 5 minutos em paralelo?
Sim - e você não deveria. Em 3 pares (BTC, ETH, SOL) os mercados são altamente correlacionados, então posições simultâneas não são diversificação de verdade. Escolha um par, domine-o e depois talvez adicione um segundo.