Todos os posts
Dados de mercadoMercados Up/DownBTCETH

Mercados Up/Down da Polymarket: slugs, resolução e o abismo do livro de ofertas

Os mercados cripto Up/Down da Polymarket são os instrumentos de maior frequência da plataforma, e estão entre os mais mal compreendidos. Veja como decodificar um slug, o que determina a resolução e exatamente o que a Polymarket guarda depois que um mercado fecha.

10 min de leituraAtualizado em 24 de setembro de 2026

Os mercados cripto Up/Down da Polymarket liquidam a cada cinco minutos, funcionam 24 horas por dia e movimentam um volume considerável — o mercado BTC de cinco minutos usado como exemplo abaixo negociou sozinho $638,615. Eles são o mais próximo que os mercados de previsão têm de um instrumento de alta frequência.

Também são os mercados mais difíceis de estudar na plataforma, por um motivo que não tem nada a ver com o seu design e tudo a ver com o que acontece com eles depois que fecham. Este post cobre as três partes: ler os slugs, entender a resolução e o que sobrevive a ela.

Decodificando o slug

Todo mercado Up/Down tem um slug em um formato fixo e totalmente previsível:

{coin}-updown-{timeframe}-{unix_start}

btc-updown-5m-1775181000
│   │      │   └── Unix timestamp: window START, in UTC
│   │      └────── Timeframe: 5m | 15m | 1h | 4h | 24h
│   └───────────── Always "updown"
└───────────────── Coin: btc | eth | sol | xrp | doge | bnb

Esse número inteiro no final é a parte útil. É o timestamp Unix do momento em que a janela de trading abre, em UTC. Decodifique-o e você sabe exatamente quais cinco minutos o mercado cobre:

from datetime import datetime, timezone

slug = "btc-updown-5m-1775181000"
coin, _, timeframe, ts = slug.split("-")

start = datetime.fromtimestamp(int(ts), tz=timezone.utc)
print(coin.upper(), timeframe, start)
# BTC 5m 2026-04-03 01:50:00+00:00

# The market's own title renders this in US Eastern:
# "Bitcoin Up or Down - April 2, 9:50PM-9:55PM ET"

Como o formato é determinístico, você pode montar slugs em vez de procurá-los. Todo mercado BTC de 5m começa em um limite de cinco minutos, então o slug de qualquer janela é btc-updown-5m- mais o timestamp Unix desse limite. Se você tem um slug em mãos e quer saber o resultado, cole-o na busca de mercados.

Não confie no campo startDate

Isso pega quase todo mundo que faz parsing desses mercados. O startDate da API em btc-updown-5m-1775181000 é 2026-04-02T01:58:12Z — 24 horas inteiras antes da janela de trading. Esse campo registra quando o objeto do mercado foi criado, não quando a janela abre. O timestamp do slug é o início real; endDate (2026-04-03T01:55:00Z) é o fechamento real. Note que endDate é exatamente o timestamp do slug mais 300 segundos.

Como funciona a resolução

A mecânica é simples de propósito. O mercado pergunta se o preço da moeda no fechamento da janela está mais alto do que na abertura. Dois resultados, Up e Down, e um deles liquida a $1.

CampoValor para btc-updown-5m-1775181000
questionBitcoin Up or Down - April 2, 9:50PM-9:55PM ET
outcomes["Up", "Down"]
outcomePrices["0", "1"] — Down venceu
endDate2026-04-03T01:55:00Z
volumeNum638,615
spread0.01
umaResolutionStatusresolved
Valores ao vivo obtidos da API Gamma. outcomePrices é como você lê o vencedor depois da liquidação.

Algumas consequências desse design que importam para quem modela esses mercados:

  • Empates resolvem Down. A pergunta é se o fechamento está mais alto que a abertura. Não estar mais alto — incluindo estar exatamente igual — é Down. Em uma janela de 5 minutos isso é raro, mas não desprezível, e introduz uma pequena assimetria estrutural que um modelo ingênuo de cara ou coroa deixa passar.
  • A resolução usa um TWAP da Chainlink, não um snapshot. Desde 7 de agosto de 2026, os mercados cripto Up/Down liquidam por uma média ponderada pelo tempo em vez de um único preço no sinal de fechamento, e desde 14 de agosto todos os mercados de 5 minutos usam uma janela de 60 segundos (foi de 30 segundos na semana entre as duas datas). Tanto o preço a superar quanto o preço de liquidação vêm desse TWAP. Isso muda bastante o final: um pico nos últimos dez segundos mal mexe em uma média de 60 segundos, então as reversões tardias são bem mais fracas do que parecem em um gráfico de spot.
  • A probabilidade se comprime muito à medida que o vencimento se aproxima. Com sessenta segundos restantes e a moeda estável, os dois lados convergem para 50¢ e o spread decide. Com dez segundos restantes depois de um movimento decisivo, um lado fica preso em 97–99¢ e não sobra quase nada para negociar.
  • O spread é o jogo inteiro. Um spread cotado de 0.01 em um mercado que paga $1 é um custo de ida e volta de 1% em um resultado binário. A maioria das estratégias que parecem lucrativas com o preço médio deixa de ser lucrativa depois de cruzá-lo — veja abaixo.

Se você construiu algo antes de agosto, verifique de novo

Três mudanças na liquidação chegaram em cinco semanas: resolução por TWAP em 7 de agosto (janela de 30s para mercados de 5m), mudança para uma janela de 60 segundos em 14 de agosto e o atraso do taker nos mercados cripto indo de 250ms → 50ms em 17 de agosto e depois de 50ms → 150ms em 4 de setembro. Qualquer modelo calibrado no comportamento anterior a agosto está calibrado em outro instrumento.

Por que os mercados de 5m são estruturalmente diferentes

Em um mercado BTC de 24 horas, fundamentos e fluxo importam. Em um mercado de 5 minutos, você está negociando microestrutura: fluxo de ordens, o tick do feed de referência e o formato do livro nos últimos segundos. As estratégias não se transferem entre timeframes, e testar com dados de 24h não diz nada sobre o comportamento de 5m. Trate-os como instrumentos diferentes que por acaso compartilham uma convenção de nomes.

O que a Polymarket guarda depois que um mercado é resolvido

Isso decide se você consegue pesquisar esses mercados. A Polymarket guarda o registro do mercado e uma série de preços esparsa depois da resolução. Ela não guarda o livro de ofertas. Verificamos seis mercados BTC de 5 minutos resolvidos em 29 de setembro de 2026, de 4 dias a cerca de seis meses de idade.

Correção, 29 de setembro de 2026

Uma versão anterior deste post dizia que prices-history retorna um array vazio depois da resolução. Isso era verdade para a única requisição que fizemos (interval=max em um mercado de seis meses) e errado como afirmação geral. Com um início e um fim explícitos, ele retorna os pontos que a Polymarket guarda. A afirmação sobre o livro de ofertas não mudou e se confirmou em todos os mercados que testamos.

TOK=<token_id_of_a_resolved_market>
START=1790466900          # the number at the end of btc-updown-5m-1790466900
END=$((START + 300))

# 1. The order book: gone, at every age we tried.
curl -s "https://clob.polymarket.com/book?token_id=$TOK"
# {"error":"No orderbook exists for the requested token id"}     HTTP 404

# 2. The price series: thin, but there if you give it a window.
curl -s "https://clob.polymarket.com/prices-history?market=$TOK&startTs=$START&endTs=$END&fidelity=1"
# {"history":[{"t":...,"p":0.365}, ...]}          6 points for this 5-minute market

# 3. The same call with interval=max: empty for the six-month-old market we tried.
curl -s "https://clob.polymarket.com/prices-history?market=$TOK&interval=max&fidelity=1"
# {"history":[]}                                                  HTTP 200

Então a série de preços não sumiu, mas é esparsa. Para btc-updown-5m-1790466900, a Polymarket retornou seis pontos, de 11 a 316 segundos depois da abertura da janela, e o último minuto ficou com um deles. A PolyTest guarda 2,552 snapshots do mesmo mercado, cerca de um a cada 0.12 segundo, cada um com o livro dos dois lados. Um preço por minuto basta para ver quem ganhou e mais ou menos quando o preço se moveu. Não diz a que preço uma ordem de 500 cotas teria sido executada, e mal cobre o último minuto, que é onde esses mercados são decididos.

A Data API mais nova da Polymarket tem uma segunda rota, GET /v2/prices-history, que retorna faixas de 60 segundos. No nosso teste, ela tinha dados de mercados com até 8 dias e nada de mercados com 15 dias ou mais, então não substitui um arquivo.

O que você querDisponível depois da resolução?
Metadados do mercado (pergunta, resultado, volume)Sim, via ?closed=true
Qual lado ganhouSim, outcomePrices
Série de preços ao longo da janelaSim, cerca de um ponto por minuto, com início e fim explícitos
Profundidade do livro de ofertas em qualquer momentoNão, 404 em todas as idades que testamos
A que preço sua ordem teria sido executadaNão

Um preço por minuto não é um livro

Você consegue descobrir que Down ganhou e, mais ou menos, como o preço se moveu minuto a minuto. Não consegue descobrir o que estava no livro de cada lado em qualquer momento, e toda questão de execução depende disso. Uma série de preços basta para taxas-base e um gráfico aproximado. Não basta para fazer backtest de uma estratégia que paga spread.

Por que taxas-base não bastam

Um instinto comum neste ponto: se os resultados podem ser obtidos, por que não estudar só as frequências de resolução? Contar quantas vezes o BTC 5m resolveu Up nos últimos mil mercados, achar um viés e operá-lo.

O problema é que qualquer viés desse tipo entra no preço muito antes de você vê-lo. Se os mercados SOL 5m resolveram Up 52% das vezes no mês passado, os market makers sabem disso, e Up abre a 52¢. A taxa-base não é uma vantagem; ela já está no preço. O que você precisaria para encontrar uma vantagem é justamente o que a Polymarket não guarda: como estava o livro quando o preço estava errado.

Esse é o motivo honesto pelo qual estratégias Up/Down são difíceis de validar. Não é que os mercados sejam eficientes — é que as evidências necessárias para testar essa afirmação, para um lado ou para o outro, não estão na API.

Gravando o que a Polymarket não guarda

O único jeito de contornar um livro de ofertas ausente é tê-lo gravado enquanto o mercado estava ativo. É isso que a PolyTest faz: snapshots pontuais e contínuos dos mercados cripto Up/Down da Polymarket, capturados enquanto estão ativos e mantidos depois da resolução: mais de 240M de snapshots com 8 níveis de profundidade do livro por lado e timestamps abaixo de um segundo.

MoedaTimeframes
BTC5m · 15m · 1h · 4h · 24h
ETH5m · 15m · 1h
SOL5m · 15m · 1h
XRP · DOGE · BNBColetando agora — em breve
import os, requests

BASE = "https://api.polytest.io/api/v1"
H = {"X-API-Key": os.environ["POLYTEST_KEY"]}

# Resolved markets are still here — that is the whole point.
markets = requests.get(f"{BASE}/markets",
                       params={"coin": "sol", "market_type": "5m", "limit": 50},
                       headers=H).json()["markets"]

for m in markets:
    snaps = requests.get(f"{BASE}/markets/{m['id']}/snapshots",
                         params={"include_orderbook": "true"},
                         headers=H).json()["snapshots"]

    # The final minute is where 5m markets are actually decided.
    endgame = snaps[-12:]
    for s in endgame:
        print(m["slug"], s["timestamp"], s["midPrice"], s["spread"])

Três coisas que vale testar

  1. Sua vantagem sobrevive ao spread? Rode de novo qualquer resultado promissor usando o ask real que você teria tomado em vez do preço médio. Com um spread de 1¢ em um mercado de $1, isso frequentemente transforma uma estratégia vencedora em perdedora. Faça isso primeiro — mata a maioria das ideias de forma barata.
  2. Como a profundidade se comporta nos últimos 60 segundos? Os mercados Up/Down ficam muito mais rasos perto do vencimento. Um tamanho que é executado faltando 3 minutos pode não ser executado faltando 30 segundos, e isso é invisível em qualquer série de preço médio.
  3. Alguma coisa se transfere entre moedas? Os mercados de 5m de BTC, ETH e SOL compartilham o design, mas não o perfil de liquidez. Uma estratégia ajustada no livro do BTC frequentemente desmorona no livro mais raso do SOL — o que vale saber antes de colocar dinheiro, não depois.

O guia de backtesting trata da simulação de execuções com mais profundidade, e há um teste grátis de 3 dias se você quiser conferir os dados antes de se comprometer com qualquer coisa.

Perguntas frequentes

O que significa o formato de slug btc-updown-5m?
Os slugs Up/Down da Polymarket seguem o padrão {coin}-updown-{timeframe}-{unix_start}. Em btc-updown-5m-1775181000, btc é a moeda, 5m é a duração da janela e 1775181000 é o timestamp Unix do momento em que a janela de trading abre, em UTC — neste caso, 2026-04-03 01:50:00 UTC, exibido no título do mercado como April 2, 9:50PM-9:55PM ET. O formato é determinístico, então os slugs podem ser montados em vez de procurados.
Como os mercados Up/Down da Polymarket são resolvidos?
O mercado resolve Up se o preço de referência da moeda no fechamento da janela estiver mais alto do que na abertura, e Down caso contrário. Como o teste é estritamente mais alto, um fechamento exatamente igual resolve Down. Desde 7 de agosto de 2026, os preços de abertura e fechamento vêm de uma média ponderada pelo tempo da Chainlink em vez de um único preço, e desde 14 de agosto os mercados de 5 minutos usam uma janela de 60 segundos. A diferença entre o seu próprio feed de dados e essa média importa perto do limite.
Por que o startDate de um mercado Up/Down da Polymarket está errado?
Ele não está errado, mas não significa o que as pessoas supõem. O campo startDate registra quando o objeto do mercado foi criado, o que pode ser um dia ou mais antes do início do trading. Para btc-updown-5m-1775181000, o startDate é 2026-04-02T01:58:12Z, enquanto a janela de fato abre em 2026-04-03T01:50:00Z. Use o timestamp Unix do slug para o início da janela e o endDate para o fechamento.
Consigo dados históricos de mercados Up/Down da Polymarket já resolvidos?
Não pela API da Polymarket. Só em parte. A Polymarket retorna 404 para o livro de ofertas de um mercado resolvido. Ela guarda o registro do mercado (resultado e volume, com closed=true) e uma série de preços de cerca de um ponto por minuto, que você obtém com um início e um fim explícitos; interval=max retorna uma lista vazia para mercados mais antigos. Não há profundidade do livro, então você não consegue simular execuções. Fazer backtest da execução exige snapshots gravados enquanto o mercado estava ativo.
Quais moedas têm mercados Up/Down na Polymarket?
O BTC tem a cobertura mais completa, com janelas de 5m, 15m, 1h, 4h e 24h. ETH e SOL funcionam em 5m, 15m e 1h. XRP, DOGE e BNB são adições mais recentes, com cobertura mais restrita. A liquidez varia bastante entre as moedas, então uma estratégia calibrada no livro do BTC muitas vezes não se transfere para o livro mais raso do SOL.

Tenha os dados históricos que a Polymarket não guarda

A PolyTest registra os mercados cripto Up/Down da Polymarket enquanto estão ativos — mais de 240M de snapshots com 8 níveis de profundidade do livro de ofertas, timestamps abaixo de um segundo e mercados resolvidos preservados. Comece com um teste grátis de 3 dias.

Continue lendo