U teoriji obećava sigurnu pobjedu, ali praktično testiramo Martingale strategiju klađenja. Djeluje li udvostručavanje uloga? Pregled s simulacijama i videom.
Martingale metoda potječe iz 18. stoljeća u Francuskoj i ostaje jedna od najpoznatijih strategija klađenja do danas. Njegova popularnost može se pripisati tri stvari:
Kao što znamo, u ruletu možemo kladiti se na to hoće li loptica završiti u crvenom ili crnom polju. Ako pogodimo ispravno, dobivamo iznos jednak našoj okladi, što znači da ako je oklada 100$, dobitak je također 100$ (uz okladu, ukupno iznosi 200$, koje dobijemo natrag).
Pretpostavimo da se kladimo 100$ na crveno. Prema Martingale strategiji, ako izgubimo okladu, udvostručujemo ulog u sljedećem krugu, odnosno stavljamo 200$ na crveno. To osigurava da ako crveno dobije, povratimo 100$ izgubljenih u prvom krugu i dobijemo dodatnih 100$. Ako bi crno ponovno dobilo, ponovno bismo udvostručili ulog, stavljajući 400$ na crveno. U osnovi, nastavljamo udvostručavati našu okladu na crveno dok ne dobijemo. Jednom kada se to dogodi, možemo ponovno pokrenuti proces, vraćajući osnovnu okladu na 100$.
U praksi je ova metoda uglavnom ograničena na dva faktora:
Da bismo vam pomogli s korištenjem ove strategije, kreirali smo Excel proračunsku tablicu u koju možete unijeti veličinu početnog uloga, a zatim saznati koliko još morate uložiti u slučaju svakog gubitka. Ovo možete koristiti za rulet ili sličnu igru u kojoj možete vratiti dvostruki ulog. Slično tome, možete koristiti tablicu u nastavku koja pretpostavlja početni ulog od $100. Tablica također prikazuje vjerojatnost za gubitnički niz u europskom ruletu (kao što su crne/crvene oklade).
Gubitnički korak | Potrebna oklada | Šansa da se dogodi |
---|---|---|
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% |
Da bismo odgovorili na pitanje, stvorili smo računalni program koji simulira 10 000 okretaja ruleta i simuliranog igrača koji primjenjuje ovu strategiju. Također možete pogledati izvorni kod ove simulacije u ovom članku.
Nakon provedene simulacije, odnosno 10 000 okretaja ruleta, 100 puta, ova strategija je uspjela rezultirati profitom samo 11 puta. U tim slučajevima igrač je završio s iznosom između dva i šest puta većim od početnog kapitala. Međutim, u većini slučajeva, odnosno preostalih 89 puta, igračev saldo se ispraznio puno prije 10 000. kruga.
Općenito se može reći da ova strategija može stvoriti pozitivan saldo na kratkoročnoj osnovi. Međutim, prije ili kasnije, igrač nailazi na niz loše sreće, što rezultira gubitkom cijelog kapitala.
Možete pokrenuti Python kod za Martingale simulaciju. Najbolje je pokrenuti ga u Jupyter bilježnici, kao što je besplatna Google Colab bilježnica.
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")