Lupaa varman voiton teoriassa, mutta testaamme Martingale-vedonlyöntistrategian käytännössä. Toimiiko tuplaaminen? Arvostelu simulaatioilla ja videolla.
Martingale-menetelmä sai alkunsa 1700-luvun Ranskassa ja on edelleen yksi tunnetuimmista vedonlyöntistrategioista. Sen suosio voidaan selittää kolmella seikalla:
Kuten tiedämme, ruletissa voimme lyödä vetoa siitä, päätyykö pallo punaiseen vai mustaan koloon. Jos arvaamme oikein, voitamme panoksemme verran, eli jos panos on 100 €, niin voitto on myös 100 € (panoksen kanssa yhteensä 200 €, jonka saamme takaisin).
Oletetaan, että panostamme 100 € punaiselle. Martingale-strategian mukaan, jos häviämme vedon, kaksinkertaistamme panoksen seuraavalla kierroksella, eli laitamme 200 € punaiselle. Tämä takaa sen, että jos punainen voittaa, saamme takaisin ensimmäisellä kierroksella menetetyn 100 €, ja saamme myös ylimääräiset 100 €. Jos musta voittaisi jälleen, kaksinkertaistaisimme panoksen jälleen, asettaen 400 € punaiselle. Käytännössä jatkamme panoksemme kaksinkertaistamista punaiselle, kunnes se tulee esiin. Kun se tekee niin, voimme aloittaa prosessin alusta, palauttamalla peruspanoksen takaisin 100 €:oon.
Käytännössä tämä menetelmä on pääasiassa rajoitettu kahdesta tekijästä johtuen:
Auttaaksemme sinua tämän strategian käytössä olemme luoneet Excel-taulukon, johon voit syöttää aloituspanoksesi suuruuden ja sitten selvittää, kuinka paljon sinun on panostettava lisää jokaisen tappion jälkeen. Voit käyttää tätä ruletissa tai vastaavassa pelissä, jossa voit voittaa takaisin kaksinkertaisen panoksesi. Samoin voit käyttää alla olevaa taulukkoa, joka olettaa 100 dollarin aloituspanoksen. Taulukko näyttää myös todennäköisyyden häviävälle putkelle eurooppalaisessa ruletissa (kuten musta/punainen -vedot).
Häviävä vaihe | Vaadittu panos | Todennäköisyys tapahtua |
---|---|---|
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% |
Vastataksemme kysymykseen olemme luoneet tietokoneohjelman, joka simuloi 10 000 rulettipyöräytystä ja simuloitua pelaajaa, joka soveltaa tätä strategiaa. Voit myös tarkastella tämän simulaation lähdekoodia tässä artikkelissa.
Simulaation, eli 10 000 rulettipyöräytyksen, suorittamisen jälkeen 100 kertaa, huomasimme, että tämä strategia pystyi tuottamaan voittoa vain 11 kertaa. Näissä tapauksissa pelaaja päätyi määrään, joka oli kaksi-kuusi kertaa alkupääomansa suuruinen. Kuitenkin suurimmassa osassa tapauksista, eli jäljellä olevissa 89 kertaa, pelaajien saldo loppui hyvin ennen 10 000. kierrosta.
Yleisesti voidaan sanoa, että tämä strategia pystyy tuottamaan positiivisen saldon lyhyellä aikavälillä. Kuitenkin ennemmin tai myöhemmin pelaaja kohtaa huonoa onnea, mikä johtaa koko pääoman menettämiseen.
Voit suorittaa Martingale-simulaation Python-koodin. Se soveltuu parhaiten ajettavaksi Jupyter-muistikirja-ympäristössä, kuten ilmaisessa Google Colab -muistikirjassa.
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")