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

Arbitragem de notícias na Polymarket: como vencer o mercado em headlines, source feeds (RSS/Twitter/AP), latency budgets, filtros de falso positivo e quando a vantagem das notícias desaparece no preço de mercado.

O que este capítulo aborda

Arbitragem de notícias é a estratégia de negociar informações públicas mais rápido do que o mercado recalcula o preço. A vantagem é real, mas estreita - a maior parte das "news" já está no preço quando um humano consegue ler. Este capítulo cobre quais fontes realmente vencem o mercado, o latency budget que define a estratégia e o filtro de falso positivo sem o qual o bot opera em todo retweet.

  • Como é uma vantagem de informação
  • Fontes de notícias: RSS, Twitter, AP, official feeds
  • Latency budget: read-to-trade em menos de 2 segundos
  • Filtros de falso positivo
  • Quando a vantagem das notícias morre
  • Código: consultar news feed e colocar FOK em mercados relevantes
  • Risco: meias verdades e manchetes retratadas

Como é uma vantagem de informação

Arbitragem de notícias significa negociar informações públicas mais rápido do que o mercado recalcula o preço. A vantagem existe em uma janela estreita - normalmente 30 a 300 segundos - entre um fato se tornar público e a Polymarket refletir isso.

Para a vantagem ser real, três coisas precisam ser verdade. Primeiro, a fonte da notícia precisa ser mais rápida do que o trader mediano da Polymarket (Twitter é mais rápido do que a imprensa mainstream; o AP wire é mais rápido do que Twitter). Segundo, a notícia precisa ser inequívoca (um anúncio de lesão, uma decisão judicial) - interpretação consome latência. Terceiro, o mercado precisa ser amplo o suficiente para que o movimento de preço valha o spread tax.

Bots que caçam essa vantagem se dividem em dois grupos: os que assinam fontes diretas e fazem parsing, e os que observam um movimento incomum de preço na Polymarket e inferem que a notícia aconteceu. Ambos são válidos; o primeiro lidera, o segundo segue.

Fontes de notícias: RSS, Twitter, AP, official feeds

Fontes ranqueadas por latência até o status de informação pública, mais rápidas primeiro.

  • Fontes primárias diretas: registros judiciais, press releases governamentais, anúncios de bancos centrais. Muitas vezes têm RSS público ou API. Mais rápidas, menor taxa de falso positivo.
  • AP wire / Reuters Eikon (pago). O wire que traders tradicionais usam. ~5 a 30 segundos de vantagem sobre o Twitter do consumidor.
  • Twitter (X, API paga). Listas de contas verificadas: contas oficiais de organizações, repórteres setorialistas. APIs gratuitas têm rate limit muito baixo; pague o tier Pro ou use um relay service.
  • Newsletters / Discord especializados: Substacks pagos, feeds setoriais com embargo. Úteis para mercados de nicho (crypto, esports).
  • Sites de imprensa mainstream: lentos demais para a vantagem de news-arb.

Use RSS para tudo que publica RSS - é grátis, e os intervalos de polling são confiáveis. Twitter para o resto. AP para news desks com seriedade de produção.

Latency budget: read-to-trade em menos de 2 segundos

O bot precisa ingerir, classificar, decidir e enviar uma ordem em 1 a 2 segundos no total. Budget:

  • Ingest: 50 a 300ms (websocket feed, RSS poll, Twitter stream).
  • Classify: 50 a 200ms (regex / keyword match, opcionalmente LLM se você cachear o prompt).
  • Decide: 50ms (lookup em tabela de regras; mapeamento de news tag para market slug).
  • Place: 200 a 500ms (ordem FOK assinada para o CLOB).

O maior consumidor de budget é a classificação com LLM. Uma chamada GPT-4 de 500 tokens adiciona 1 a 3 segundos; isso é toda a janela de arbitragem perdida. Em produção, classifique com regras de keyword; use LLM apenas para calibração offline do conjunto de keywords.

Filtros de falso positivo

Bots de news-arb que não filtram falso positivo operam em todo retweet e sangram via spread tax. Três filtros.

  • Source whitelist: agir apenas em contas/feeds de uma lista pré-aprovada. A lista é pequena (10 a 30 sources).
  • Par keyword + confirmação: uma única correspondência de keyword é ruído; correspondências em duas fontes independentes dentro de 30s são sinal.
  • Guard de estado do mercado: pule mercados que já se moveram > 5% nos últimos 60 segundos - outra pessoa captou a notícia primeiro, a vantagem acabou.

Taxa de falso positivo de filtros bem ajustados: cerca de 1 em 5 a 10. Uma taxa de falso positivo de 90% destrói a estratégia; uma de 50% ainda é viável com posições pequenas.

Quando a vantagem das notícias morre

A janela entre "notícia pública" e "preço reflete a notícia" fecha mais rápido a cada ano. Em 2020, mercados políticos de preço médio levavam minutos para absorver uma headline. Em 2026, as mesmas headlines comprimem para 30 a 90 segundos antes de o preço se mover totalmente.

Sinais de que a vantagem morreu: o PnL por trade em operações sinalizadas cai de +3c para zerado em uma janela de 30 trades; a taxa de falso positivo que acaba já tendo sido precificada sobe acima de 70%; o mercado atinge seu ask FOK em 200ms porque outra pessoa chegou primeiro.

O pivô honesto quando a vantagem morre: migrar para news mais lentas e mais interpretativas (decisões judiciais, atas de reunião de banco central), em que o parsing do significado leva mais tempo do que a corrida de latência. Ou parar de rodar a estratégia.

Código: consultar news feed e colocar FOK em mercados relevantes

Estrutura de produção: consulte uma fonte de notícias, execute match de regras, dispare ordens FOK nos acertos.

import feedparser, time, re
from py_clob_client.client import ClobClient

RULES = [
  {"regex": re.compile(r"out for season|torn ACL", re.I), "tag":"injury-fade"},
  {"regex": re.compile(r"federal reserve.*(rate cut|rate hike)", re.I), "tag":"fed-move"},
]

seen = set()
while True:
    feed = feedparser.parse("https://example.com/news.rss")
    for entry in feed.entries[:20]:
        if entry.id in seen: continue
        seen.add(entry.id)
        for rule in RULES:
            if rule["regex"].search(entry.title + " " + entry.summary):
                # Look up relevant Polymarket markets, place FOK
                fire(rule["tag"], entry)
                break
    time.sleep(15)

Intervalos de polling: 5 a 15 segundos para RSS. WebSocket onde disponível (Twitter, AP wire). Sempre faça dedup por ID fornecido pela source; nunca assuma que polling é exatamente uma vez.

Risco: meias verdades e manchetes retratadas

O pior dia de um bot de news-arb é quando uma headline acaba estando errada. Exemplos: um tweet da Reuters diz "Trump fires Yellen", o mercado sobe 8 centavos, 12 minutos depois o tweet é apagado e corrigido. Um bot que comprou a +8c agora está segurando inventory em -3c sem recurso.

Defesas:

  • Confirmação de duas fontes: nunca opere com um único tweet; exija sinal corroborador de uma segunda fonte independente em 60 a 180 segundos.
  • Tamanho de posição escalonado pela confiança da source: AP wire = tamanho cheio; Twitter de repórter setorial verificado = 50%; source de rumor = 25%.
  • Saída automática em sinal de retratação: se uma source que você usou emitir uma correção em até 30 minutos, saia no mercado independentemente do PnL.

O problema da retratação é um teto duro para o position sizing em news-arb. Operar $50 por sinal permite sobreviver a uma taxa de falso positivo de 30%; operar $500, não.

Perguntas frequentes

Um bot de varejo realmente consegue vencer o mercado com notícias?
Sim - mas apenas se você tiver uma fonte de notícias rápida e confiável e um caminho de execução de baixa latência. Twitter (agora X) era o padrão ouro até as restrições de API; RSS da Reuters/AP/Bloomberg é a melhor alternativa. A vantagem do varejo encolheu conforme mais bots competem; espere 200 a 1000ms no total de read-to-trade, não 50ms.
Em quais fontes de notícias devo me inscrever?
Feeds RSS da AP (apnews.com), Reuters (reuters.com) e BBC oferecem cobertura ampla. Específico da Polymarket: os próprios canais de Twitter e Discord das plataformas muitas vezes anunciam mudanças de mercado com antecedência. Para tópicos específicos: press releases governamentais (PDFs do Federal Reserve, CFTC, WHO).
Quão rápido meu bot precisa reagir às notícias?
Para uma vantagem de varejo: menos de 2 segundos desde a notícia aparecer até sua ordem ser enviada. Para uma vantagem em nível HFT (vs outros bots): menos de 200ms. A maioria do varejo consegue competir na janela de 1 a 3 segundos porque a maior parte dos outros bots de varejo é ainda mais lenta ou está ausente em certos tipos de feed.
Como evito gatilhos de notícias com falso positivo?
Faça o match da notícia com o mercado específico com cuidado. "Ceasefire" pode aparecer em 100 contextos; só alguns importam para o seu mercado específico. Use filtros de keyword AND market-tag: keyword "ceasefire" AND market-tag "Israel-Hezbollah" antes de disparar. Melhor ainda - faça LLM classify da notícia como relevante antes de negociar.
O que acontece quando a notícia depois é retratada?
Sua posição pode passar de vencedora para perdedora em segundos. Bots de news-arb precisam de uma política de saída rápida: se uma source de follow-up contradizer a headline em N minutos, feche a posição imediatamente, mesmo com prejuízo. Nossa regra: feche em -3% a -5% se qualquer follow-up reduzir a confiança no sinal original.
Arbitragem de notícias é legal?
Negociar com notícias públicas é legal em todos os lugares de que temos conhecimento. Negociar com material non-public information (dicas de insider, vazamentos antes da divulgação oficial) não é. Fique nas fontes públicas e a operação é válida.