Link Search Menu Expand Document
El Libro De Python (24.95 €) 39.95 €

Martingala y apuestas con random

A continuación vemos como simular con numpy la martingala. Esta es una estrategia de apuestas que se popularizó en la ruleta y tiene la siguiente estructura:

  • 🎲 Se comienza con una apuesta inicial. Se apuesta siempre al ⚫.
  • ⚫ Si se gana, se vuelve a la apuesta inicial.
  • 🔴 Si se pierde, se dobla la apuesta.

La esencia de esta estrategia es que cuando perdemos, doblamos la siguiente apuesta para intentar recuperar la cantidad perdida. En la teoría, suena bien.

Podemos implementar esta estrategia de la siguiente forma. Se define una cantidad inicial, una apuesta, una probabilidad de ganar prob_ganar y una cantidad objetivo después de la cual se para la simulación.

import random

def martingala(inicial, apuesta, prob_ganar, objetivo):
    balance = inicial
    bet = apuesta

    while balance > 0 and balance < inicial + objetivo:
        rojo = random.random() < prob_ganar
        if rojo:
            balance -= bet
            bet *= 2
        else:
            balance += bet
            bet = apuesta

        if bet > balance:
            break

    return balance

Como puedes ver el código usa random para generar el evento. El while hace que continuamente se apueste mientras haya balance y no hayamos llegado al objetivo. Puedes ver los dos escenarios claramente definidos:

  • 🔴 Si sale rojo perdemos. Doblamos la apuesta bet.
  • ⚫ Si se gana negro ganamos. Volvemos a la apuesta inicial.

Ahora podemos usar nuestra función con unos parámetros concretos. Usamos un balance inicial de 1000 Euros, usando una apuesta inicial de 10 Euros, con una probabilidad de ganar del 48% y un objetivo de 2000 Euros. Vemos el resultado.

print(martingala(inicial=1000,
                 apuesta=10,
                 prob_ganar=0.48,
                 objetivo=2000))

Como puedes comprobar ejecutando la simulación múltiples veces, en la mayoría de las ocasiones se pierde. Esto es debido a que una racha de mala suerte hace que la apuesta crezca exponencialmente, y llegue un punto donde no se puede afrontar.

✏️ Ejercicios:

  • Modifica los valores para buscar una estrategia que reduzca el riesgo de bancarrota.