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 que maximiza a taxa de crescimento geométrico assintótico do patrimônio ao avaliar uma aposta isolada:
Onde representa a probabilidade subjetiva real de vitória, é a probabilidade de derrota, representa o lucro líquido decimal e é 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.
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 o capital total disponível. No instante , existem oportunidades de apostas concorrentes. O apostador aloca um vetor de frações , onde representa a fração do patrimônio alocada na aposta . A quantia não alocada é mantida em caixa livre de risco com retorno zero.
Entre os eventos esportivos, existem estados conjuntos possíveis de resultados. Denotamos o espaço amostral de estados conjuntos por , onde cada estado ocorre com uma probabilidade conjunta tal que .
Para cada estado , definimos o vetor de retornos brutos , onde representa o ganho líquido unitário da aposta no estado :
No estado conjunto , o multiplicador de patrimônio final do portfólio é dado pela soma do capital retido em caixa com o retorno de todas as apostas:
O objetivo do investidor quantitativo consiste em maximizar a esperança matemática da utilidade logarítmica da riqueza, , formalizada como:
Sujeito às restrições fundamentais de solvência física e ausência de alavancagem:
E a condição estrita de sobrevivência contra ruína total em qualquer cenário:
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.
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.
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.
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.
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.
5. Restrições e aceitação numérica
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 () | Prob. Real () | Edge () | 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.
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):
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 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 apostas independentes escala como , sendo perfeitamente tratável para . 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 nunca é conhecida com certeza absoluta. Suponha que . 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.
