CasinoLoveロゴ

マーチンゲールベッティング戦術の仕組み

理論上は確実な勝利を約束しますが、マーチンゲールベッティング戦術を実践的なテストにかけてみました。ダブルダウンは機能するのでしょうか?シミュレーションとビデオでのレビュー。

マーチンゲール法は18世紀のフランスで生まれ、現在も最も有名な賭け戦略の一つとして知られています。その人気の理由は以下の3つです:

ルーレットでの仕組みは?

ご存知のように、ルーレットではボールが赤または黒のスロットに入るかどうかを賭けることができます。 当たり前ですが、正解した場合、賭け金と同額を勝ち取ることができます。つまり、賭け金が100ドルの場合、勝ち金も100ドル(賭け金と合わせて200ドルが戻ってくる)です。

赤に100ドル賭けると仮定しましょう。 マーチンゲール戦術によれば、賭けに負けた場合、次のラウンドで掛け金を倍にします、つまり、赤に200ドル賭けます。 これにより、赤が勝った場合、最初のラウンドで失った100ドルを取り戻し、さらに100ドルを得ることができます。 もしまた黒が勝った場合、再び掛け金を倍にして、赤に400ドル賭けます。 基本的には、赤が出るまで賭け金を倍にしていきます。 それが出たら、プロセスを再開し、ベースの賭け金を100ドルに戻します。

実践上の制限

実際には、この方法は主に2つの要因によって制限されます。

  1. 無限のお金を持っているわけではありません。 非常に運が悪い場合、長い連敗を続けることがあり、最終的には損失を回収するだけの資金がなくなります。 歴史上、ルーレットのホイールで特定の色が32回連続で出たことがあると記録されていることに注意してください。 もし最初の賭け金が100ドルでプレイしていた場合、20回連続で賭けに負けると、5200万ドルを賭ける必要があります。
  2. カジノは最大賭け金額に制限を設けています。 したがって、資本が十分にあったとしても、この制限のために賭け金を無限に増やすことはできません。 そのため、非常に長い不運な連敗が続いた場合、大量のお金を失うことになります。

ベッティングテーブル

この戦略の使用を助けるために、私たちはExcelスプレッドシートを作成しました。ここでは、最初のベットの金額を入力し、それぞれの損失の場合にどれだけ追加でベットする必要があるかを見つけることができます。 これはルーレットや、賭け金の2倍を取り戻せるような同様のゲームで使用できます。 同様に、下の表を使用して、100ドルの開始ベットを想定しています。 この表は、ヨーロッパ式ルーレット(黒/赤のベットなど)での連敗の確率も示しています。

負けるステップ 必要なベット 発生する確率 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%

長期的に機能するか?シミュレーション

この問題に答えるために、10,000回のルーレットのスピンと、この戦略を適用するシミュレートされたプレイヤーをシミュレートするコンピュータープログラムを作成しました。 また、この記事でこのシミュレーションのソースコードも閲覧できます。

ルーレットの偶数ベットでマーチンゲール戦略を使用したプレイヤーのシミュレーション例。
ルーレットの偶数ベットでマーチンゲール戦略を使用したプレイヤーのシミュレーション例。 プレイヤーは最初のバランスが$100で、$1のベットから始めました。 プレイヤーは徐々にバランスを増やし、適度な損失の連続を克服していることがわかります。 しかし、シミュレーションは、悪い損失の連続によりプレイヤーがすべてのバランスを失うことで終了します。

シミュレーション、つまり10,000回のルーレットのスピンを100回実行した結果、この戦略が利益を生み出すことができたのは11回だけでした。 これらの場合、プレイヤーは最初の資本の2倍から6倍の額を得ました。 しかし、大半の場合、つまり残りの89回では、プレイヤーのバランスは10,000回目のラウンドよりも前に尽きました。

結論

一般的に言えることは、この戦略は短期的にはプラスのバランスを生み出すことができるということです。 しかし、遅かれ早かれ、プレイヤーは運が悪い連続に遭遇し、すべての資本を失うことになります。

シミュレーションのソースコード

マーチンゲールシミュレーションのPythonコードを実行できます。 無料のGoogle ColabノートブックなどのJupyterノートブック環境で実行するのが最適です。


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")