apinn.io
Todos os artigos
Risco9 min de leitura

Quantas apostas até saberes que o teu edge é real?

Com um edge de 2% a 1.95, um em cada três apostadores ainda está no vermelho ao fim de 500 apostas. Aqui está a matemática, e o que isso significa para a forma como acompanhas os resultados.

"Estou a -4% de ROI ao fim de 400 apostas, o meu modelo não funciona." Esta frase é dita todos os dias, e na maioria das vezes está errada — não porque o modelo seja bom, mas porque 400 apostas simplesmente não chegam para resolver a questão.

As apostas desportivas têm uma relação sinal-ruído lamentável. Um edge de 2% vive dentro de dezenas de pontos percentuais de variância. Antes de interpretares um resultado, precisas de saber o que uma amostra desse tamanho é capaz de mostrar.

A matemática, em três linhas

Para apostas com stake fixo a uma odd c com probabilidade de ganhar p, o lucro por aposta tem uma esperança e um desvio-padrão que podes escrever diretamente. A incerteza sobre o ROI observado encolhe com a raiz quadrada de n — é aí que tudo se decide.

import math

def roi_noise(odds=1.95, edge=0.02, n=400):
    p = (1 + edge) / odds                 # probabilidade de ganhar implícita no edge alvo
    gain, loss = odds - 1, -1.0
    mean = p * gain + (1 - p) * loss      # = edge
    var = p * (gain - mean) ** 2 + (1 - p) * (loss - mean) ** 2
    return mean, math.sqrt(var / n)       # esperança, desvio-padrão do ROI observado

mean, se = roi_noise(n=400)
print(f"true edge {mean:.2%} | noise at 400 bets ±{se:.2%}")
# true edge 2.00 % | noise at 400 bets ±4.87 %

Por outras palavras: com um edge genuíno de 2%, o teu ROI observado ao fim de 400 apostas oscila num intervalo de cerca de ±10 pontos (dois desvios-padrão). Qualquer valor entre -8% e +12% é perfeitamente compatível com o mesmo modelo vencedor.

A probabilidade de mostrares uma perda quando está tudo bem

Inverte a pergunta: qual é a probabilidade de apresentares um ROI negativo ao fim de n apostas, sabendo que o edge é real? A resposta é brutal.

from statistics import NormalDist

def p_losing(odds=1.95, edge=0.02, n=400):
    mean, se = roi_noise(odds, edge, n)
    return NormalDist(mean, se).cdf(0)    # P(ROI observado < 0)

for n in (200, 500, 1000, 2000, 5000):
    print(f"{n:>5} bets → {p_losing(n=n):.0%} chance of being down")
#   200 bets → 39 %
#   500 bets → 32 %
#  1000 bets → 26 %
#  2000 bets → 18 %
#  5000 bets → 7 %

Um em cada três apostadores com um edge real de 2% ainda está no vermelho ao fim de 500 apostas. Estatisticamente não há nada para corrigir: simplesmente ainda não jogaram o suficiente para o sinal emergir.

Estes números assumem apostas independentes a um preço constante. Se fizeres várias seleções correlacionadas no mesmo dia, ou os teus preços variarem entre 1.3 e 5.0, a variância real é superior — logo precisas de ainda mais apostas.

Então quantas apostas são precisas?

Para separar um edge de zero com confiança razoável, o edge tem de valer pelo menos o dobro do ruído. Num edge de 2% a 1.95, esse rácio só atinge 1.6 às 6.000 apostas e 2.0 às 10.000. O requisito cresce com o inverso do quadrado do edge: reduz o teu edge a metade e quadruplicas a amostra necessária.

  • Edge de 5% a 1.95: algumas centenas de apostas bastam para ver com clareza.
  • Edge de 2%: vários milhares.
  • Edge de 1% a preços de 3.00: dezenas de milhares — fora do alcance de qualquer acompanhamento manual.

Medir outra coisa que não o resultado

A conclusão prática não é "faz 6.000 apostas antes de concluíres", é "para de medir aquilo que converge mais devagar". O resultado de uma aposta é uma variável binária muito ruidosa; a qualidade do preço que apanhaste é observável de imediato.

  1. Distância à closing line: o teu preço face ao último preço do mercado. Cada aposta gera uma medição, sem necessidade de esperar pelo resultado.
  2. Distância às odds justas no momento em que apostaste: mede a tua seleção, independentemente de qualquer movimento posterior.
  3. Slippage realizado: a diferença entre o preço que visavas e o preço que obtiveste. É frequentemente aqui que o edge desaparece, não no modelo.

As três partilham uma virtude: não dependem de como o jogo terminou, logo não carregam a variância do resultado. Algumas centenas de apostas bastam para saber se os teus preços são bons — enquanto o teu ROI ainda está a anos de dizer alguma coisa.

O resultado diz-te o que aconteceu. O preço diz-te se tinhas razão. Ambos convergem, mas não à mesma velocidade.

Define os teus limiares a frio

Este cálculo tem uma utilidade preventiva: define os teus limiares antes da sequência, não durante ela. Sabendo que o teu ROI vai oscilar num intervalo de ±10 pontos, um stop-loss a -5% garante que vais matar uma estratégia saudável. O limiar tem de ficar além do ruído esperado, calculado para O TEU edge estimado e O TEU volume.

E para estimar esse edge sem perseguires a tua própria cauda, não partas do ROI passado — parte dos teus preços. Reconstruir as odds justas e os preços de fecho linha a linha em todo o teu histórico de apostas dá-te uma estimativa de edge estável que podes introduzir na matemática acima.

# o preço de fecho da linha exata que jogaste
curl -H "X-API-Key: $APINN_KEY" \
  "https://api.apinn.io/api/closing?event_id=1610000123"

# o movimento completo, abertura → fecho, para situares a tua entrada
curl -H "X-API-Key: $APINN_KEY" \
  "https://api.apinn.io/api/history?event_id=1610000123"

Um edge estimado a partir dos preços, um limiar de stop calculado a partir da variância esperada, e um stake dimensionado para sobreviver ao intervalo: esse trio é o que te impede de abandonar uma estratégia vencedora na aposta 400.

Estas contas, com dados reais

Odds da Pinnacle em tempo real com true odds incluídas, mais histórico de abertura e fecho — acesso self-serve, chave API em minutos.