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

Bots de mercados esportivos na Polymarket: jogos semanais da NFL, microestrutura da NBA (tag 745), futebol (Premier League, Bundesliga, Champions League), tênis (864) - liquidez, fontes de edge, padrões de código.

O que este capítulo cobre

NFL, NBA, Soccer e Tennis são os maiores volumes esportivos da Polymarket por categoria. Cada um tem sua própria disponibilidade de dados, cadência e perfil de edge. Este capítulo cobre os padrões de bot específicos de cada liga e os IDs de tag que você vai filtrar.

  • NFL: cadência semanal, liquidez máxima no domingo
  • NBA (tag 745): microestrutura intra-jogo
  • Futebol: ligas internacionais vs ligas de clubes
  • Tênis (tag 864): cadência de torneios
  • Fontes de edge que resistem
  • Dados ao vivo: ESPN, APIs oficiais
  • Bot de exemplo: capturador de linha pré-jogo

NFL: cadência semanal, liquidez máxima no domingo

A NFL tem o ritmo semanal mais forte de qualquer esporte na Polymarket. Os mercados abrem na terça-feira após os jogos da semana anterior, a busca por linhas acontece de quarta a sexta, e o volume de apostas atinge o pico no sábado e no domingo. A resolução costuma ocorrer no domingo à noite para os jogos mais cedo, e na segunda à noite para o jogo da noite.

Padrão de bot: capturador de linha na terça e na quarta, quando a linha de abertura é definida, e in-play no domingo durante o pico de volume. Bots diferentes para cada janela. O mercado do Monday Night Football costuma ter volume mais raso do que os outros jogos - tenha em mente que ele tem maior risco de slippage em entradas de pequeno porte.

O pico de volume é o Super Bowl: mais de $50M negociados em todos os mercados do SB na semana do jogo. Até mesmo um bot de $100 nessa semana é ruído irrelevante; o mercado é eficiente nessa escala.

NBA (tag 745): microestrutura intra-jogo

A NBA é o esporte de maior frequência na Polymarket - 25 a 30 jogos por semana durante a temporada regular, 5 a 15 nos playoffs. O ID de tag 745 filtra eventos somente da NBA.

A microestrutura intra-jogo funciona na NBA porque: (1) a ESPN atualiza os placares a cada ~10s, (2) os jogos têm 2,5 horas de ação contínua, (3) os books da Polymarket para os jogos principais permanecem profundos até o 4º quarto.

A estratégia que funciona: assinar o book WS de um jogo + feed da ESPN, reagir a desequilíbrio + eventos de pontuação em 10 a 15 segundos. Estratégias que não funcionam: capturar linha pré-jogo (já é eficiente o suficiente para o varejo não capturar muito), arbitragem de certeza no fim do jogo (território da armadilha de 0,99).

Futebol: ligas internacionais vs ligas de clubes

O futebol se divide em três níveis gerais na Polymarket.

  • Principais ligas europeias (EPL tag 739, La Liga, Bundesliga, Serie A) - volume moderado, books profundos em jogos grandes. Estratégias de bot semelhantes às da NBA.
  • Champions League / Europa League (UCL tag 2186) - volume máximo nas fases eliminatórias. Os books são mais profundos a partir das oitavas de final.
  • Ligas internacionais / menores (Saudi Pro League, MLS, J-League) - books rasos, spreads grandes. Geralmente não são território para bot.

O placar discreto do futebol (0-1 gols são eventos enormes) o torna diferente do fluxo contínuo da NBA. O padrão de bot para futebol é: estar do lado certo antes de sair um gol, sair rápido depois que ele acontece.

Tênis (tag 864): cadência de torneios

Tag de tênis 864. Os circuitos ATP e WTA jogam 11 meses por ano, com os Grand Slams em jan (Australian Open), maio-jun (French Open), jul (Wimbledon) e ago-set (US Open). O volume se concentra nessas quatro semanas, além da série Masters 1000.

O tênis tem as escadas de preço in-play mais limpas de qualquer esporte (capítulo 15). Os preços no meio da partida seguem curvas previsíveis, ancoradas em estados de set e break. Um bot com um modelo de escada de preço específico para tênis consegue detectar precificação incorreta em tempo real.

Janelas silenciosas: entre Grand Slams, em semanas com apenas torneios ATP 250 / ATP 500, os books ficam muito rasos. Pause o bot ou mude para outro esporte durante esses períodos.

Fontes de edge que resistem

Em todos os quatro esportes, os edges que resistem ao longo do tempo são:

  • Busca de linha pré-jogo contra o número de uma casa mais sharp (Pinnacle, Betfair). Quando a Polymarket discorda de uma casa sharp por mais de 3c, faça fade na Polymarket.
  • Overreaction in-play a uma única jogada (interception, injury, momentum shift). Espere 30 a 60 segundos após a jogada, e faça fade se o mercado exagerou.
  • Favoritos fortes no fim do jogo em 0,85-0,92 com sizing gerenciado por risco. Abaixo de 0,85 = risco real; acima de 0,92 = a armadilha de 0,99.

Edges que não resistem: análise técnica pura sobre preços, scraping de sentimento do Twitter, efeitos sazonais baseados em calendário.

Dados ao vivo: ESPN, APIs oficiais

Matriz de fontes de dados para os quatro esportes.

EsportePrimáriaBackupCadência de atualização
NFLscoreboard da ESPNfeed da NFL.com~10s durante a jogada
NBAscoreboard da ESPNstats.nba.com~10s durante a jogada
Futebol (EPL/UCL)scoreboard da ESPNSofaScore~15-30s
Tênis (ATP/WTA)scoreboard da ESPNtennis.com ao vivo~30s (nível de ponto)

A ESPN é gratuita e confiável para todos os quatro. Para atualizações abaixo de 10s, pague por um feed especializado (StatsPerform, GeniusSports) - mas a melhoria marginal de latência raramente justifica o custo para o varejo.

Bot de exemplo: capturador de linha pré-jogo

Referência: pseudocódigo de capturador de linha pré-jogo.

def line_catcher():
    # Find games starting in the next 2-12 hours
    events = gamma_events(tag_id=745, hours_ahead=12)
    for ev in events:
        for m in ev["markets"]:
            polymarket_prob = float(json.loads(m["outcomePrices"])[0])
            sharp_prob = fetch_pinnacle_implied(ev["slug"])  # 3rd-party feed
            if sharp_prob - polymarket_prob > 0.04:
                # Polymarket has the YES side cheap vs sharp
                tok = json.loads(m["clobTokenIds"])[0]
                place_fok(tok, "BUY", polymarket_prob + 0.01, size=10)
            elif polymarket_prob - sharp_prob > 0.04:
                # Polymarket has the NO side cheap vs sharp
                tok = json.loads(m["clobTokenIds"])[1]
                place_fok(tok, "BUY", 1 - polymarket_prob + 0.01, size=10)

Observações: as APIs da Pinnacle / Betfair exigem contas; não são gratuitas. Sem uma referência sharp, capturar linha vira opinião contra opinião, o que não é território para bot.

Perguntas frequentes

Qual esporte tem mais volume na Polymarket?
Varia conforme a temporada. A NFL lidera nos domingos de jogo. A NBA (tag_id verificado 745) lidera durante as noites da temporada regular. O futebol (sem uma única tag) lidera durante as semanas da Champions League e da Copa do Mundo. O tênis (tag_id verificado 864) dispara durante as quinzenas dos Grand Slams. Bots multiesporte se beneficiam da rotação constante.
Mercados pré-jogo ou in-play são mais lucrativos?
Pré-jogo: mais fácil de precificar (mais tempo para pesquisa, menos variância de ruído in-game), mas com spreads mais apertados e competição contra odds de sportsbook. In-play: mais difícil, exige dados em tempo real, mas tem mais precificações erradas durante oscilações emocionais (após touchdown, depois de um arremesso perdido).
Onde consigo dados esportivos ao vivo rápido o suficiente para um bot?
Endpoints JSON não oficiais da ESPN.com para os principais esportes dos EUA. The-odds-api.com agrega várias casas de apostas, mas com rate limits. Sofascore.com cobre futebol + tênis. Para dados abaixo de 1 segundo: feeds pagos da Sportradar ou BetGenius são de nível profissional, mas caros. A maioria dos bots de varejo sobrevive com ESPN + repórteres do Twitter que cobrem a equipe.
Devo confiar no Twitter de beat reporter para notícias ao vivo?
Na maior parte, sim, com ressalvas. Os beat reporters divulgam lesões/alinhamentos mais rápido que a ESPN. Mas rate limits do Twitter e suspensões de contas criam lacunas de confiabilidade. A melhor prática: assine de 5 a 10 contas de repórteres, faça deduplicação e exija 2 fontes antes de disparar em caso de lesões.
Como a Polymarket sports se compara a sportsbooks tradicionais?
Sem vig (vs ~5-10% na FanDuel/DraftKings), mas com liquidez menor e spreads mais largos em mercados menores. Para NFL/NBA mainstream, os books tradicionais geralmente têm melhor qualidade de execução. Para esportes de nicho (cricket, rugby, esports), a Polymarket frequentemente tem edge porque os books tradicionais os precificam abaixo do valor.
Posso rodar bots de sports + crypto + politics ao mesmo tempo?
Sim, e isso é uma boa construção de portfólio. Sports, politics e crypto têm baixa correlação - diversificar entre eles suaviza a variância diária de PnL. Observação: cada estratégia precisa do seu próprio orçamento de risco, não de um compartilhado.