Promete una victoria segura en teoría, pero ponemos a prueba la estrategia de apuestas Martingale en la práctica. ¿Funciona duplicar la apuesta? Reseña con simulaciones y video.
El método Martingala se originó en Francia en el siglo XVIII y sigue siendo una de las estrategias de apuestas más conocidas hasta el día de hoy. Su popularidad se puede atribuir a tres cosas:
Como sabemos, en la ruleta podemos apostar si la bola caerá en un espacio rojo o negro. Si acertamos correctamente, ganamos una cantidad igual a nuestra apuesta, es decir, si la apuesta es de $100, entonces las ganancias también son de $100 (junto con la apuesta, suma un total de $200, que recuperamos).
Supongamos que apostamos $100 al rojo. Según la estrategia Martingala, si perdemos la apuesta, duplicamos la cantidad en la siguiente ronda, es decir, apostamos $200 al rojo. Esto garantiza que si el rojo gana, recuperamos los $100 perdidos en la primera ronda y también ganamos $100 adicionales. Si el negro volviera a ganar, nuevamente duplicaríamos la apuesta, colocando $400 en el rojo. Básicamente, seguimos duplicando nuestra apuesta en el rojo hasta que salga. Una vez que lo hace, podemos reiniciar el proceso, restableciendo la apuesta base a $100.
En la práctica, este método está limitado principalmente por dos factores:
Para ayudarte con el uso de esta estrategia, hemos creado una hoja de cálculo de Excel donde puedes ingresar el tamaño de tu apuesta inicial y luego averiguar cuánto más debes apostar en caso de cada pérdida. Puedes usar esto para la ruleta o un juego similar en el que puedas ganar el doble de tu apuesta. De manera similar, puedes utilizar la tabla a continuación que asume una apuesta inicial de $100. La tabla también muestra la probabilidad de una racha perdedora en la ruleta europea (como apuestas en negro/rojo).
Paso perdedor | Apuesta requerida | Probabilidad de ocurrir |
---|---|---|
1 | 100 | 48.600000% |
2 | 200 | 23.6196000% |
3 | 400 | 11.4791256% |
4 | 800 | 5.5788550% |
5 | 1,600 | 2.7113236% |
6 | 3,200 | 1.3177032% |
7 | 6,400 | 0.6404038% |
8 | 12,800 | 0.3112362% |
9 | 25,600 | 0.1512608% |
10 | 51,200 | 0.0735128% |
11 | 102,400 | 0.0357272% |
12 | 204,800 | 0.0173634% |
13 | 409,600 | 0.0084386% |
14 | 819,200 | 0.0041012% |
15 | 1,638,400 | 0.0019932% |
16 | 3,276,800 | 0.0009687% |
17 | 6,553,600 | 0.0004708% |
18 | 13,107,200 | 0.0002288% |
19 | 26,214,400 | 0.0001112% |
20 | 52,428,800 | 0.0000540% |
Para responder a la pregunta, hemos creado un programa de computadora que simula 10,000 giros de ruleta y un jugador simulado que aplica esta estrategia. También puedes ver el código fuente de esta simulación en este artículo.
Después de ejecutar la simulación, es decir, los 10,000 giros de ruleta, 100 veces, descubrimos que esta estrategia solo pudo resultar en ganancias 11 veces. En estos casos, el jugador terminó con una cantidad entre dos y seis veces su capital inicial. Sin embargo, en la mayoría de los casos, es decir, las 89 veces restantes, el saldo de los jugadores se agotó mucho antes de la ronda 10,000.
Lo que se puede decir en general es que esta estrategia es capaz de generar un saldo positivo a corto plazo. Sin embargo, tarde o temprano, el jugador encuentra una racha de mala suerte, lo que resulta en la pérdida de todo su capital.
Puedes ejecutar el código Python para la simulación de Martingala. Es más adecuado para ejecutarse en un entorno de cuaderno Jupyter, como el cuaderno gratuito de Google Colab.
import random
import seaborn as sns
import matplotlib.pyplot as plt
mpockets = ["Red"] * 18 + ["Black"] * 18 + ["Green"] * 1
mrolls = []
def makeRandomRolls():
global mrolls
mrolls = []
mi = 0
while mi < 10000000:
mi += 1
mrolls.append(random.choice(mpockets))
def always_red_Martingale(bankroll, maxspin):
bankroll = 100
bet = 1
currentSpin = -1
pockets = ["Red"] * 18 + ["Black"] * 18 + ["Green"] * 1
bankroll_history = []
roll_history = []
betTrigger = False
while (bankroll > 0) and (currentSpin < maxspin):
currentSpin = currentSpin + 1
roll = mrolls[currentSpin]
roll_history.append(roll)
if bet > bankroll:
bet = bankroll
#print('!!! BET Larger than bankrol. Setting max bet to: ' + str(bankroll))
if betTrigger == True:
if roll == "Red":
#print('!!! Bet placed and Won. Bet was: ' + str(bet))
bankroll += bet
bet = 1
betTrigger = False
else:
bankroll -= bet
bet *= 2
#print('!!! Bet placed and LOST. New bet is: ' + str(bet))
if (currentSpin > 2) and \
(roll_history[-1] == "Black") and \
(roll_history[-2] == "Red"):
betTrigger = True
bankroll_history.append(bankroll)
return bankroll_history
sns.set(rc={'figure.figsize':(18.7,8.27)})
MS = 10000
makeRandomRolls()
plt.plot(always_red_Martingale(bankroll=100,maxspin=MS), linewidth=2, label='Player using Martingale strategy, always bets on red (with 1 USD)')
plt.xlabel("Number of roulette spins", fontsize=18, fontweight="bold")
plt.ylabel("Balance (USD)", fontsize=18, fontweight="bold")
plt.xticks(fontsize=16, fontweight="bold")
plt.yticks(fontsize=16, fontweight="bold")
plt.title("How balance changes with each roulette spin (bet)", fontsize=22, fontweight="bold")
plt.legend(loc="upper left")