Arquitetura de um bot de apostas com odds da Pinnacle
Resposta: a maioria dos bots de apostas ou trading tem cinco partes: (1) um feed de dados, (2) um estado local de eventos e mercados, (3) regras de sinal, (4) controles de risco e (5) a execução na conta em que você aposta. O PinnFeed cobre a parte 1 e ajuda nas partes 2 e 3: um WebSocket (Builder) que envia um snapshot completo e depois frames delta com cada mudança de preço da Pinnacle, incluindo fair, margin e maxStake. Ele não faz apostas: a execução é sua, numa casa que permita isso e onde apostar seja legal para você.
O pipeline#
| Parte | O que faz | Com o PinnFeed |
|---|---|---|
| Ingestão | Manter uma conexão aberta, responder ping com pong, reconectar com backoff | wss://pinnfeed.io/v1/stream (Python, Node) |
| Estado | Mapa de market.id → último mercado; remover com op: "remove" | snapshot/delta |
| Sinais | Queda de preço, oferta acima de fair, mudança de linha | steam, filtro de EV |
| Risco | Limites de stake, maxStake >= 100, exposição máxima por evento, botão de parada | Seu código |
| Execução | Fazer a aposta, registrar preço e resultado | Sua casa de apostas ou exchange |
Loop mínimo de sinais (Python)#
book = {} # market id -> market
def on_frame(msg, alert):
if msg["type"] == "snapshot":
for m in msg["markets"]:
book[m["id"]] = m
elif msg["type"] == "delta":
for ch in msg["changes"]:
if ch["kind"] != "market":
continue
if ch["op"] == "remove":
book.pop(ch["id"], None)
continue
new, old = ch["market"], book.get(ch["market"]["id"])
book[new["id"]] = new
if not old or (new["maxStake"] or 0) < 100:
continue
for o_new, o_old in zip(new["outcomes"], old["outcomes"]):
if o_old["decimal"] and o_new["decimal"] / o_old["decimal"] - 1 <= -0.04:
alert(new["eventId"], o_new["name"], o_old["decimal"], o_new["decimal"])
Ligue on_frame a qualquer cliente das páginas por linguagem (Go, Rust, Kotlin). Registre cada sinal e cada decisão para medir depois contra o fechamento: planilha de apostas com CLV.
Dicas de design#
- Rode a ingestão num host sempre ligado, não numa função serverless.
- Tenha um modo
paperque registra o que o bot faria antes de apostar qualquer coisa. - Use um WebSocket por processo e distribua internamente; o Builder permite 3 conexões e o Pro, 10.
- Trate
4008 slow_consumertirando o trabalho do loop de recepção.
Planos#
Builder (€99/mês): WebSocket, os 13 esportes e todos os mercados. Pro (€199/mês): 10 conexões e frames brutos. Teste de 3 dias; cartão obrigatório, cobrado após o dia 3 a menos que você cancele. Faça o protótipo antes com REST grátis: cadastro.
Conteúdo educativo para maiores de 18 anos. Apostas automáticas podem perder dinheiro rápido; sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.
Perguntas frequentes#
O PinnFeed pode fazer apostas pelo meu bot?#
Não. São dados somente leitura. A execução acontece na sua própria conta de casa de apostas ou exchange.
As casas permitem bots?#
Muitas restringem apostas automatizadas nos termos. Confira antes de automatizar a execução.