Garante vitória em teoria, mas colocamos a estratégia de apostas Martingale à prova na prática. Dobrar a aposta funciona? Análise com simulações e vídeo.
O método Martingale surgiu na França do século XVIII e continua sendo uma das estratégias de apostas mais conhecidas até hoje. Sua popularidade pode ser atribuída a três coisas:
Como sabemos, na roleta podemos apostar se a bola cairá em um espaço vermelho ou preto. Se acertarmos, ganhamos um valor igual à nossa aposta, ou seja, se a aposta for de $100, os ganhos também serão de $100 (juntamente com a aposta, totaliza $200, que recebemos de volta).
Vamos supor que apostamos $100 no vermelho. De acordo com a estratégia Martingale, se perdermos a aposta, dobramos a aposta na próxima rodada, ou seja, colocamos $200 no vermelho. Isso garante que, se o vermelho vencer, recuperamos os $100 perdidos na primeira rodada e também ganhamos mais $100. Se o preto ganhasse novamente, dobraríamos novamente a aposta, colocando $400 no vermelho. Basicamente, continuamos dobrando nossa aposta no vermelho até que ele apareça. Uma vez que isso aconteça, podemos reiniciar o processo, redefinindo a aposta base de volta para $100.
Na prática, este método é limitado principalmente por dois fatores:
Para ajudá-lo com o uso desta estratégia, criamos uma planilha do Excel onde você pode inserir o valor da sua aposta inicial e, em seguida, descobrir quanto mais precisa apostar em caso de cada perda. Você pode usar isso para roleta ou um jogo semelhante onde você pode ganhar de volta o dobro da sua aposta. Da mesma forma, você pode usar a tabela abaixo, que assume uma aposta inicial de $100. A tabela também mostra a probabilidade de uma sequência de perdas na roleta europeia (como apostas em preto/vermelho).
Etapa de perda | Aposta necessária | Probabilidade de ocorrer |
---|---|---|
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 essa pergunta, criamos um programa de computador que simula 10.000 rodadas de roleta e um jogador simulado que aplica essa estratégia. Você também pode ver o código-fonte desta simulação neste artigo.
Depois de executar a simulação, ou seja, as 10.000 rodadas de roleta, 100 vezes, descobrimos que essa estratégia só conseguiu resultar em lucro 11 vezes. Nesses casos, o jogador terminou com um valor entre duas e seis vezes o seu capital inicial. No entanto, na maioria dos casos, ou seja, nas 89 vezes restantes, o saldo dos jogadores acabou bem antes da 10.000ª rodada.
O que pode ser dito em geral é que essa estratégia é capaz de gerar um saldo positivo a curto prazo. No entanto, mais cedo ou mais tarde, o jogador encontra uma sequência de azar, resultando na perda de todo o seu capital.
Você pode executar o código Python para a simulação Martingale. É mais adequado para ser executado em um ambiente de notebook Jupyter, como o notebook gratuito do 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")