SPORTS BETTING MATH
ARTIGO DE PESQUISA

Otimização de Portfólio pelo Critério de Kelly Simultâneo: Alocação Ótima em Apostas Concorrentes

Tratado matemático sobre o critério de Kelly multivariado para apostas simultâneas, estimação de matriz de covariância, otimização KKT e controle de risco.

22 min de leitura Avançado Última atualização 2026-09-20
Ilustração do tema: Otimização de Portfólio pelo Critério de Kelly Simultâneo: Alocação Ótima em Apostas Concorrentes
Ilustração conceitual. As premissas numéricas e os exemplos são explicados no texto.

Lab de Modelagem Estocástica SBM

Assinatura editorial: modelos de partidas e banca

Esta assinatura agrupa artigos sobre Poisson, Kelly e simulação. É um rótulo editorial, não prova de um laboratório com equipe ou qualificações verificadas.

Modelagem Bivariada de Partidas pela Distribuição de Poisson Otimização de Crescimento Geométrico pelo Critério de Kelly Simulações de Monte Carlo para Risco de Ruína

1. Introdução: A Falha do Critério de Kelly Escalar em Apostas Concorrentes

Na análise quantitativa de apostas esportivas e trading algorítmico, o artigo seminal de John L. Kelly Jr. de 1956, intitulado "A New Interpretation of Information Rate", estabeleceu a base matemática definitiva para o dimensionamento ótimo de capital. A fórmula clássica de Kelly escalar determina a proporção exata da banca f∗ que maximiza a taxa de crescimento geométrico assintótico do patrimônio ao avaliar uma aposta isolada:

f∗=b⋅p−qb=p(b+1)−1b=p⋅O−1O−1

Onde p representa a probabilidade subjetiva real de vitória, q=1−p é a probabilidade de derrota, b=O−1 representa o lucro líquido decimal e O é a cotação decimal bruta oferecida pela casa de apostas. Quando as apostas ocorrem de forma estritamente sequencial — isto é, cada aposta é concluída, resolvida e liquidada na banca antes que a próxima seja efetuada — o dimensionamento de Kelly garante matematicamente a maximização do crescimento logarítmico a longo prazo, assegurando uma probabilidade teórica nula de ruína absoluta.

Posições simultâneas usam a mesma banca antes de liquidar. Frações escalares independentes podem somar mais de um, mas isso depende de probabilidades e preços, não de quantidade semanal típica. Verifique viabilidade e riqueza conjunta; somar menos de um não garante ótimo logarítmico.

A Catástrofe de Sobre-alocação no Dimensionamento Escalar Independente: Imagine que seu modelo quantitativo identifique dez apostas simultâneas na Premier League, cada uma apresentando uma vantagem matemática de 8% a uma odd média de 2.10. O Kelly escalar recomenda uma aposta de aproximadamente 7,27% da banca em cada uma. Fazer as dez apostas de forma independente exige arriscar 72,7% de todo o capital em uma única janela de duas horas. Se o modelo detectar vinte apostas, a recomendação escalar exigiria 145,4% da banca — uma alavancagem impossível que causaria destruição de capital diante de uma oscilação estatística normal.

Além disso, apostas que acontecem no mesmo horário frequentemente não são estatisticamente independentes. Apostar na vitória do time da casa no mercado 1X2, no Handicap Asiático de -1.5 e no Over 2.5 Gols no mesmo jogo introduz uma forte covariância de resultados. Tratar essas seleções de forma isolada com o Kelly escalar infla brutalmente o risco real do portfólio.

Para alocar capital em múltiplas oportunidades simultâneas sem induzir o risco de falência ou reduzir o crescimento geométrico, o investidor deve migrar da aritmética escalar para a otimização multivariada de portfólio pelo Critério de Kelly. Este tratado técnico apresenta a formulação matemática rigorosa do Kelly simultâneo, detalha as propriedades analíticas de escalonamento sob independência, constrói a matriz de covariância para eventos correlacionados e disponibiliza um algoritmo completo em Python.

2. Formulação Matemática: Maximizando o Crescimento Logarítmico com Múltiplas Oportunidades

Seja W0 o capital total disponível. No instante t, existem n oportunidades de apostas concorrentes. O apostador aloca um vetor de frações 𝐟=(f1,f2,…,fn)T, onde fi≥0 representa a fração do patrimônio alocada na aposta i. A quantia não alocada f0=1−∑i=1nfi é mantida em caixa livre de risco com retorno zero.

Entre os n eventos esportivos, existem K=2n estados conjuntos possíveis de resultados. Denotamos o espaço amostral de estados conjuntos por Ω={ω1,ω2,…,ωK}, onde cada estado ωk ocorre com uma probabilidade conjunta pk≥0 tal que ∑k=1Kpk=1.

Para cada estado ωk, definimos o vetor de retornos brutos 𝐑k=(R1,k,R2,k,…,Rn,k)T, onde Ri,k representa o ganho líquido unitário da aposta i no estado ωk:

Ri,k={bi=Oi−1se a aposta i vence no estado ωk−1se a aposta i perde no estado ωk

No estado conjunto ωk, o multiplicador de patrimônio final do portfólio g(𝐟,ωk) é dado pela soma do capital retido em caixa com o retorno de todas as apostas:

g(𝐟,ωk)=(1−∑i=1nfi)+∑i=1nfi(1+Ri,k)=1+∑i=1nfiRi,k=1+𝐟T𝐑k

O objetivo do investidor quantitativo consiste em maximizar a esperança matemática da utilidade logarítmica da riqueza, G(𝐟)=𝔼[ln⁡(W1/W0)], formalizada como:

max𝐟⁡G(𝐟)=∑k=1Kpkln⁡(1+𝐟T𝐑k)

Sujeito às restrições fundamentais de solvência física e ausência de alavancagem:

∑i=1nfi≤1,efi≥0∀i∈{1,…,n}

E a condição estrita de sobrevivência contra ruína total em qualquer cenário:

1+𝐟T𝐑k>0∀k∈{1,…,K} com pk>0

O programa quadrático abaixo aproxima o objetivo com A. As condições KKT caracterizam uma solução sob as qualificações usuais de restrições. A semidefinição positiva dá concavidade ao crescimento aproximado, não tempo de execução medido nem sucesso automático. O objetivo exato é côncavo; a unicidade estrita exige que os vetores de retorno com probabilidade positiva distingam as direções viáveis. Posições redundantes podem compartilhar um ótimo.

3. Estados independentes e aproximação quadrática

A independência permite fatorar as probabilidades dos estados conjuntos, mas não separa o logaritmo da riqueza total em logaritmos individuais. Como o capital é comprometido simultaneamente, o ótimo exato resolve o objetivo conjunto. Em duas apostas binárias independentes com odds 2 e probabilidade 0.6, Kelly escalar é0.2 em cada uma, mas o simultâneo exato é5/26, aproximadamente 0.1923076923. O estado de duas derrotas tem probabilidade 0.16 e riqueza 1-2f; os estados mistos têm riqueza 1, e duas vitórias têm probabilidade 0.36 e riqueza 1+2f. A derivada desse objetivo produz o ótimo indicado.

G(f,f)=0.36ln⁡(1+2f)+0.16ln⁡(1−2f),f∗=5/26

A expansão de Taylor de segunda ordem usa a matriz de segundos momentos A, não apenas a covariância C. O produto externo das médias é diferente de zero quando as vantagens não são nulas. Mesmo com independência, A tem elementos fora da diagonal mu_i mu_j. Usar apenas a covariância diagonal é uma aproximação adicional para médias pequenas. A qualidade depende de os retornos possíveis do portfólio serem pequenos o suficiente para a expansão logarítmica. Um ponto estacionário sem restrições pode violar o orçamento ou exigir posições negativas e não deve então ser usado como alocação.

μ=E[R],C=Cov⁡(R),A=E[RRT]=C+μμT
G(f)≈fTμ−12fTAf,fquad=A−1μ

O escalado proporcional preserva as razões entre frações escalares não negativas e respeita um orçamento escolhido. É uma heurística viável, não a solução geral do objetivo exato ou quadrático com restrições. Um teto de 0.20 é uma escolha ilustrativa, não padrão institucional universal nem garantia de drawdown. Odds e probabilidades diferentes não exigem uma redução ótima comum.

fiscaled=simin⁡(1,B/∑jsj),si=max⁡(0,(piOi−1)/(Oi−1))

4. Covariância, dependência e matriz inversa

Para um portfólio fixo não negativo, covariância positiva aumenta a variância em relação à covariância zero. Isso não implica que cada posição de um portfólio reotimizado precise diminuir. A inversa abaixo resolve o substituto de covariância C f=mu. É álgebra linear exata para esse substituto, não fórmula exata do crescimento logarítmico. C deve ser não singular; resultados negativos também violam uma política sem vendas a descoberto.

C=(σ12ρσ1σ2ρσ1σ2σ22)
fC,1=μ1σ22−ρσ1σ2μ2σ12σ22(1−ρ2),fC,2=μ2σ12−ρσ1σ2μ1σ12σ22(1−ρ2)

Com C=[[4,0.6],[0.6,1]] e mu=(0.4,0.2), o determinante é3.64 e a solução é(0.0769230769,0.1538461538). Multiplicar C pelo vetor recupera mu. Médias e variâncias iguais dão mu/(sigma²(1+rho)) nesse substituto; rho 0.5 reduz essa aproximação específica em um terço. Não é uma porcentagem universal do problema exato.

Para um par binário ilustrativo O1=1.90,p1=0.55,O2=2.05,p2=0.52,p12=0.35, as probabilidades conjuntas são 0.35,0.20,0.17,0.28. A covariância é0.24928 e a correlação cerca de 0.25750. Esses números não determinam uma redução universal de apostas. É necessária uma distribuição conjunta válida; só a matriz de covariância não especifica todos os estados logarítmicos.

Cov⁡(R1,R2)=O1O2(p12−p1p2)=0.24928

5. Restrições e aceitação numérica

minf≥0, ∑fi≤B⁡{12fTAf−μTf}

O código avalia o objetivo exato de estados binários independentes. A quantidade de estados cresce como 2^n, portanto o exemplo educacional aceita até 12 apostas. Um teto inferior a1 mantém riqueza positiva em cada estado. Verifica entradas finitas, sucesso da otimização, não negatividade e orçamento antes de retornar. Correlação entre mercados, devoluções, meias vitórias, comissões e anulações exigem um modelo conjunto estendido.

6. Exemplo Numérico Detalhado: Portfólio de 5 Jogos no Sábado

As cinco linhas seguintes são vitórias binárias hipotéticas independentes, incluindo vitória simples da Inter, não DNB. As probabilidades são hipóteses, não previsões medidas. As frações escalares somam 0.4836491228; o teto escolhido é0.20. Os vetores usam precisão integral antes do arredondamento. Crescimento significa logaritmo esperado da riqueza por rodada, não ROI realizado nem previsão de drawdown.

ID Partida e Mercado Odd (O) Prob. Real (p) Edge (EV) Kelly Escalar Valor Escalar
1 Arsenal (Vitória Casa) 1.95 55.0% +7.25% 7.63% R$ 7.632
2 Liverpool -1.5 Handicap 2.25 48.0% +8.00% 6.40% R$ 6.400
3 Real Madrid Over 2.5 1.80 60.0% +8.00% 10.00% R$ 10.000
4 Bayern de Munique ML 1.50 71.0% +6.50% 13.00% R$ 13.000
5 Inter win (binary) 1.75 62.0% +8.50% 11.33% R$ 11.333

Escalado e otimização exata dão vetores diferentes. Sob a distribuição especificada, o crescimento escalado é0.0120732581703 e o otimizado 0.0121349525481. A diferença pequena basta para refutar um ótimo exato por escalado proporcional. Não se demonstraram retenção de 82% do crescimento nem redução de 60% do drawdown. Mudanças na dependência ou nas probabilidades exigem novo cálculo.

fscaled=(0.03155833,0.02646547,0.04135229,0.05375798,0.04686593)
fexact=(0.02944142,0.02809425,0.04485731,0.04272208,0.05488495)

7. Implementação em Python com SciPy

O algoritmo em Python apresentado na versão original deste artigo utiliza scipy.optimize.minimize com o método SLSQP para calcular numericamente o vetor exato de alocações sob restrições estritas de banca e liquidez. O script computa os estados binários conjuntos e encontra as frações ótimas em menos de 10 milissegundos.

8. Gestão de Risco e Kelly Fracionário para Portfólios

Mesmo com otimização multivariada, a incerteza estatística nas probabilidades estimadas exige o uso de Kelly Fracionário (Half-Kelly ou Quarter-Kelly):

𝐟fracionário=γ⋅𝐟∗,γ∈[0.25,0.50]

Resultados de crescimento em rodadas repetidas exigem distribuição estável e log-retornos integráveis. Não demonstram superioridade em toda trajetória nem vetor único diante de retornos redundantes. As proporções de crescimento de Half/Quarter dependem da distribuição;75%/43.75% surgem apenas da expansão quadrática em torno de um ótimo interior. Drawdown exige horizonte e definição da barreira ou pico. O código não calcula essas probabilidades.

9. Perguntas Frequentes

Código Completo em Python e Análise Linha a Linha

Para implementar a otimização de Kelly multivariado em escala de produção, utilizamos as bibliotecas numpy e scipy.optimize. O algoritmo converte as probabilidades marginais em distribuições de probabilidade conjuntas sobre 2n estados binários e resolve a maximização da utilidade logarítmica via Sequential Least Squares Programming (SLSQP):

import numpy as np
from scipy.optimize import minimize

def solve_simultaneous_kelly(odds, true_probs, max_bankroll_fraction=0.25):
    """Illustrative exact state objective for at most 12 independent binary bets."""
    odds = np.asarray(odds, dtype=float)
    probs = np.asarray(true_probs, dtype=float)
    cap = float(max_bankroll_fraction)
    if (odds.ndim != 1 or probs.shape != odds.shape or not 1 <= odds.size <= 12
            or not np.all(np.isfinite(odds)) or np.any(odds <= 1)
            or not np.all(np.isfinite(probs)) or np.any((probs < 0) | (probs > 1))
            or not np.isfinite(cap) or not 0 <= cap < 1):
        raise ValueError("Require 1..12 binary bets, finite odds>1, p in [0,1], cap in [0,1).")
    n = odds.size
    states = ((np.arange(1 << n)[:, None] >> np.arange(n)) & 1).astype(float)
    weights = np.prod(np.where(states == 1, probs, 1-probs), axis=1)
    returns = states * odds - 1
    def loss(f):
        wealth = 1 + returns @ f
        if np.any(wealth <= 0):
            return np.inf
        return -float(weights @ np.log(wealth))
    def gradient(f):
        return -(weights / (1 + returns @ f)) @ returns
    scalar = np.maximum(0, (probs * odds - 1) / (odds - 1))
    total = scalar.sum()
    initial = scalar * min(1, cap / total) if total else scalar
    if cap == 0:
        return {"optimal_fractions": np.zeros(n), "total_allocation": 0.0,
                "expected_growth_rate_per_round": 0.0, "success": True}
    result = minimize(loss, initial, jac=gradient, method="SLSQP",
                      bounds=[(0, cap)] * n,
                      constraints=[{"type": "ineq", "fun": lambda f: cap-f.sum(),
                                    "jac": lambda f: -np.ones(n)}],
                      options={"ftol": 1e-13, "maxiter": 1000})
    if not result.success:
        raise RuntimeError("Optimizer did not converge.")
    f = np.asarray(result.x)
    if (not result.success or not np.all(np.isfinite(f))
            or np.min(f) < -1e-10 or f.sum() > cap + 1e-10
            or np.any(1 + returns @ f <= 0) or not np.isfinite(loss(f))):
        raise RuntimeError("Optimizer failed or returned an infeasible allocation.")
    return {"optimal_fractions": f, "total_allocation": float(f.sum()),
            "expected_growth_rate_per_round": -loss(f), "success": True}

A complexidade computacional para n apostas independentes escala como 𝒪(2n), sendo perfeitamente tratável para n≤16. Para carteiras maiores, a aproximação quadrática de Markowitz baseada em matrizes de covariância permite calcular carteiras com centenas de ativos em frações de segundo.

Aprofundamento Teórico: Otimização sob Erro de Estimação

Em aplicações econométricas reais, a probabilidade subjetiva pi nunca é conhecida com certeza absoluta. Suponha que pi∼Beta(αi,βi). A incerteza nos parâmetros do modelo induz uma penalidade de variância adicional no logaritmo da riqueza. A literatura de teoria da informação demonstra que superestimar a vantagem em apenas 2% pode transformar uma alocação ótima de Kelly em um processo estocástico com expectativa de ruína acelerada. É por essa razão que o dimensionamento multivariado restrito com tetos conservadores por rodada é a marca registrada dos maiores fundos de apostas do mundo.

Perguntas Frequentes

PESQUISA RELACIONADA

Estudos com Referência Cruzada

Compare o mesmo mercado

Links de parceiros

1win Sports: confira evento, odds e regras de liquidação

O que está no preço → Visitar 1win Sports 18+ · Termos no site

Stake Sportsbook: compare o mesmo evento, mercado e regras

O que está no preço → Visitar Stake 18+ · Termos no site

Confira a cotação atual, o mercado exato, as regras e a disponibilidade no seu país. O resultado da calculadora depende das premissas e não confirma uma oportunidade ao vivo.