SPORTS BETTING MATH
ARTÍCULO DE INVESTIGACIÓN

Optimización de Cartera con Criterio de Kelly Simultáneo: Asignación Óptima en Apuestas Concurrentes

Tratado matemático sobre el criterio de Kelly multivariado para apuestas deportivas simultáneas, matrices de covarianza, optimización KKT y gestión del riesgo.

22 min de lectura Avanzado Última actualización 2026-09-20
Ilustración del tema: Optimización de Cartera con Criterio de Kelly Simultáneo: Asignación Óptima en Apuestas Concurrentes
Ilustración conceptual. Los supuestos numéricos y ejemplos se explican en el texto.

Lab de Modelado Estocástico SBM

Firma editorial: modelos de partidos y capital

Esta firma agrupa artículos sobre Poisson, Kelly y simulación. Es una etiqueta editorial, no prueba de un laboratorio con personal ni de cualificaciones verificadas.

Modelado Bivariado de Resultados por Distribución de Poisson Optimización de Crecimiento Geométrico por Criterio de Kelly Simulaciones de Monte Carlo para Riesgo de Ruina

1. Introducción: El Fallo del Criterio de Kelly Escalar en Apuestas Concurrentes

En el análisis cuantitativo de apuestas deportivas y el trading algorítmico, el histórico artículo de John L. Kelly Jr. de 1956, "A New Interpretation of Information Rate", sentó las bases matemáticas definitivas para la gestión óptima del capital. La fórmula clásica del Criterio de Kelly escalar determina la fracción precisa del bankroll f∗ que maximiza la tasa de crecimiento geométrico asintótico a largo plazo para una apuesta analizada de forma aislada:

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

Donde p representa la probabilidad subjetiva real de victoria, q=1−p la probabilidad de pérdida, b=O−1 el beneficio neto decimal y O la cuota decimal cotizada por la casa de apuestas. Cuando las apuestas se ejecutan de manera estrictamente secuencial —es decir, cuando cada apuesta se resuelve y se liquida en el capital antes de colocar la siguiente—, el modelo escalar garantiza matemáticamente el crecimiento asintótico óptimo con probabilidad teórica nula de quiebra total.

Las posiciones simultáneas usan el mismo capital antes de liquidar. Las fracciones escalares pueden sumar más de uno según probabilidades y precios, no un número semanal típico. Revise viabilidad y capital conjunto; sumar menos de uno no garantiza el óptimo logarítmico.

El Peligro de Sobre-exposición con el Modelo Escalar: Supongamos que un modelo cuantitativo detecta diez apuestas simultáneas con una ventaja del 8% a cuota 2.10. El Kelly escalar exige asignar un 7.27% del bankroll a cada una. Realizar las diez apuestas de forma independiente compromete el 72.7% de todo el capital en un intervalo de noventa minutos. Si el modelo detecta veinte apuestas, la exigencia teórica alcanzaría el 145.4% del capital —un requisito de apalancamiento inviable que garantiza la ruina ante cualquier racha desfavorable estándar.

Además, las proposiciones que ocurren de forma simultánea a menudo no son estadísticamente independientes. Apostar por la victoria simple en el mercado 1X2, por el hándicap asiático y por el Over 2.5 en un mismo partido introduce una fuerte covarianza cruzada. Tratar esas selecciones como independientes infravalora los riesgos extremos de la cartera.

Por consiguiente, es imperativo pasar del enfoque escalar tradicional a la optimización multivariada de carteras mediante el Criterio de Kelly simultáneo. Este tratado expone el marco matemático riguroso, analiza la covarianza en mercados correlacionados y ofrece soluciones computacionales para la gestión institucional del riesgo.

2. Formulación Matemática: Maximizando el Crecimiento Logarítmico

Sea W0 el capital total disponible al inicio. En el momento t, disponemos de n oportunidades concurrentes. El inversor selecciona un vector de asignación 𝐟=(f1,f2,…,fn)T, donde fi≥0 es la fracción del capital invertida en la apuesta i. La fracción restante f0=1−∑fi permanece en liquidez sin riesgo con rendimiento cero.

Existen K=2n estados conjuntos de resultados posibles en el espacio muestral Ω={ω1,…,ωK}, con probabilidades conjuntas pk≥0 tales que ∑pk=1. Para cada estado ωk, definimos el vector de retornos brutos 𝐑k=(R1,k,…,Rn,k)T, donde Ri,k representa el beneficio neto por unidad arriesgada:

Ri,k={bi=Oi−1si la apuesta i gana en el estado ωk−1si la apuesta i pierde en el estado ωk

El multiplicador de capital final del portafolio en el estado ωk es:

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

El objetivo consiste en maximizar el crecimiento logarítmico esperado:

max𝐟⁡G(𝐟)=∑k=1Kpkln⁡(1+𝐟T𝐑k)sujeto a∑i=1nfi≤1,fi≥0

El programa cuadrático siguiente aproxima el objetivo con A. Las condiciones KKT caracterizan una solución bajo las cualificaciones habituales de restricciones. La semidefinición positiva aporta concavidad del crecimiento aproximado, no un tiempo medido ni éxito automático. El objetivo exacto es cóncavo; la unicidad estricta requiere que los vectores con probabilidad positiva distingan direcciones factibles. Las posiciones redundantes pueden compartir un óptimo.

3. Estados independientes y aproximación cuadrática

La independencia permite factorizar las probabilidades conjuntas, pero no separa el logaritmo de la riqueza total en logaritmos individuales. El capital se compromete simultáneamente, por lo que el óptimo exacto resuelve el objetivo conjunto. Para dos apuestas binarias independientes a cuota 2 y probabilidad 0.6, Kelly escalar es 0.2 en cada una, mientras el simultáneo exacto es 5/26, aproximadamente 0.1923076923. Dos derrotas tienen probabilidad 0.16 y riqueza 1-2f; los estados mixtos tienen riqueza 1, y dos victorias probabilidad 0.36 y riqueza 1+2f. La derivada produce el óptimo indicado.

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

La expansión de Taylor de segundo orden utiliza la matriz de segundos momentos A, no solo la covarianza C. El producto exterior de las medias no es cero si las ventajas son distintas de cero. Incluso con independencia, A tiene elementos fuera de la diagonal mu_i mu_j. Usar solo covarianza diagonal añade otra aproximación para medias pequeñas. Su precisión depende de que los retornos posibles de la cartera sean suficientemente pequeños para la expansión logarítmica. Un punto estacionario sin restricciones puede violar el presupuesto o exigir posiciones negativas y no debe usarse entonces como asignación.

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

El escalado proporcional conserva las razones entre fracciones escalares no negativas y respeta un presupuesto elegido. Es una heurística factible, no la solución general del objetivo exacto o cuadrático con restricciones. Un límite 0.20 es una elección ilustrativa, no una norma institucional universal ni garantía de drawdown. Cuotas y probabilidades diferentes no requieren una reducción óptima común.

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

4. Covarianza, dependencia e inversa

En una cartera fija no negativa, la covarianza positiva aumenta la varianza frente a covarianza cero. No implica que toda posición de una cartera reoptimizada deba disminuir. La inversa siguiente resuelve el sustituto de covarianza C f=mu. Es álgebra lineal exacta para ese sustituto, no una fórmula exacta de Kelly logarítmico. C debe ser no singular; resultados negativos también incumplen una política sin posiciones cortas.

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)

Con C=[[4,0.6],[0.6,1]] y mu=(0.4,0.2), el determinante es 3.64 y la solución(0.0769230769,0.1538461538). Multiplicar C por el vector recupera mu. Medias y varianzas iguales dan mu/(sigma²(1+rho)) en este sustituto; rho 0.5 reduce esta aproximación concreta un tercio. No es un porcentaje universal del problema exacto.

Para un par binario ilustrativo O1=1.90,p1=0.55,O2=2.05,p2=0.52,p12=0.35, las probabilidades conjuntas son 0.35,0.20,0.17,0.28. La covarianza es 0.24928 y la correlación aproximadamente 0.25750. No determinan una reducción universal de apuestas. Se necesita una distribución conjunta válida; la matriz de covarianza por sí sola no especifica todos los estados logarítmicos.

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

5. Restricciones y aceptación numérica

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

El código evalúa el objetivo exacto de estados binarios independientes. Su número crece como 2^n, así que el ejemplo educativo acepta hasta 12 apuestas. Un límite inferior a1 mantiene riqueza positiva en cada estado. Comprueba entradas finitas, éxito de optimización, no negatividad y presupuesto antes de retornar. Correlaciones, devoluciones, medias victorias, comisiones y anulaciones requieren ampliar explícitamente los estados conjuntos.

6. Ejemplo Numérico: Jornada de Sábado con 5 Apuestas

Las cinco filas siguientes son victorias binarias hipotéticas independientes, incluida victoria simple de Inter, no DNB. Las probabilidades son supuestos, no pronósticos medidos. Las fracciones escalares suman 0.4836491228; el límite elegido es 0.20. Los vectores usan precisión completa antes del redondeo. Crecimiento significa logaritmo esperado de riqueza por ronda, no ROI realizado ni previsión de drawdown.

ID Mercado / Selección Cuota (O) Prob. (p) Ventaja Kelly Escalar Importe Escalar
1 Arsenal (Victoria Local) 1.95 55.0% +7.25% 7.63% $7,632
2 Liverpool -1.5 Hándicap 2.25 48.0% +8.00% 6.40% $6,400
3 Real Madrid Over 2.5 1.80 60.0% +8.00% 10.00% $10,000
4 Bayern Múnich ML 1.50 71.0% +6.50% 13.00% $13,000
5 Inter win (binary) 1.75 62.0% +8.50% 11.33% $11,333

Escalado y optimización exacta producen vectores distintos. Bajo la distribución especificada, el crecimiento escalado es 0.0120732581703 y el optimizado 0.0121349525481. La diferencia pequeña refuta que el escalado proporcional sea un óptimo exacto. No se demuestra retención del 82% del crecimiento ni reducción del 60% del drawdown. Cambios de dependencia o probabilidades requieren recalcular.

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

7. Implementación en Python

El código disponible en la versión en inglés de esta guía utiliza scipy.optimize.minimize con el método SLSQP para encontrar la solución numérica óptima en milisegundos bajo restricciones de liquidez y presupuesto.

8. Kelly Fraccional en Portafolios Multivariados

Para protegerse de la incertidumbre en las probabilidades estimadas por los modelos estadísticos, los fondos profesionales emplean Medio Kelly (Half-Kelly, γ=0.50):

𝐟fraccional=γ⋅𝐟∗,γ∈[0.25,0.50]

Los resultados de rondas repetidas requieren distribución estable y log-retornos integrables. No demuestran superioridad en toda trayectoria ni vector único con retornos redundantes. Las razones de crecimiento Half/Quarter dependen de la distribución;75%/43.75% solo surgen de una expansión cuadrática alrededor de un óptimo interior. El drawdown necesita horizonte y una barrera fija o definición respecto al pico. El código no calcula esas probabilidades.

10. Regularización y fracciones

Añadir lambda I a un sustituto de segundo momento o covarianza cambia sus autovalores de manera diferente. No equivale en general a multiplicar las apuestas por un factor Half-Kelly o Quarter-Kelly. Una conclusión bayesiana requiere prior y verosimilitud explícitos; una penalización ridge es una elección de modelo. Ante ventaja incierta, reducir posiciones puede ayudar sin garantizar crecimiento positivo. Reevalúe el objetivo exacto ante cambios plausibles de probabilidades y dependencia.

9. Preguntas Frecuentes

Código Completo en Python y Análisis de Algoritmos

A continuación se presenta la arquitectura computacional en Python para resolver la optimización de carteras bajo el criterio de Kelly simultáneo utilizando scipy.optimize.minimize y el método 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}

Preguntas Frecuentes

INVESTIGACIÓN RELACIONADA

Estudios con Referencia Cruzada

Compara el mismo mercado

Enlaces de socios

1win Sports: consulta evento, cuotas y reglas de liquidación

Qué incluye el precio → Visitar 1win Sports 18+ · Condiciones en el sitio

Stake Sportsbook: compara el mismo evento, mercado y reglas

Qué incluye el precio → Visitar Stake 18+ · Condiciones en el sitio

Consulta la cuota actual, el mercado exacto, las reglas y la disponibilidad en tu país. El resultado depende de los supuestos y no confirma una oportunidad en vivo.