Endless halfbetting#

from roulette import Roulette
from core import *
from simulations_core import get_mean_and_std_of_histories
import matplotlib.pyplot as plt  
roulette = Roulette()
def endless_half_betting(starting_money, bet_amount):
    money = starting_money
    money_points = [money]

    while money != 0:
        if money - bet_amount >= 0:
            money += roulette.make_even_bet(bet_amount)
        else:
            money += roulette.make_even_bet(money)
        money_points.append(money)

    return money_points
money_histories = dict()
for i in range(10, 110, 10):
    money_histories[i] = []

for bet_percentage in range(10, 110, 10):
    for _ in range (1000):
        money_histories[bet_percentage].append(endless_half_betting(100, bet_percentage))
for i in range(10, 110, 10):
    mean_money_list, std_money_list = get_mean_and_std_of_histories(money_histories, i)
    plot_money_history(mean_money_list, std_dev=std_money_list, title=f'Endless half betting with betting_percentage {i}', maximum_line=True)
../_images/3342152df79a56199ee2e2cce768c12da42ce28e9258b37f1d32ee03ccfe7a9d.png ../_images/689c8e79e16cf063db72f9a083eb949754ce4d6079fa6493d01e29e3ed5c660f.png ../_images/8d72ffe20d2b4075b6c6c987c34a094970ca5a281e29f9fea68b6a4c6c8f7dbc.png ../_images/763736aa312fc6943348345b76d41a436464cc5c0f9e6312910237ae635a65e7.png ../_images/03c28cea35cef92eb6a67499e557b5b4b3089eb97eb0be727963bbf1562ac918.png ../_images/6987dc300f68d61b05976fc4fe65982af9f034d9eafe38ce0275c297d1a03259.png ../_images/fa0334bb0bd758ed90208bb35986c9dcb60498aeab1d62bad9404d0f7a76d7eb.png ../_images/0e49b74ba5320742e28a96cca38dcec966c9024070082b36a37d4c768373e9c5.png ../_images/1b2c26785ad41c7868e972633dec714f15ee5a7fb6d428df91a3eadc706e9916.png ../_images/fec096b908caa3a76004eb03e5893ba0365b0fce7763766d8149a094515ba202.png
for i in range(50):
    money_history = money_histories[10][i]
    plot_money_history(money_history, change_colors=True)
../_images/7649bfc1c1bd9b0f5f8f404be09dcdb80d65dcff04da40bae355448d587253b5.png ../_images/ae57550d34b5aa437380de21a17f167a8f8234044f24b62609bf494fe87ffc39.png ../_images/8fa6251b54b3566febc27189cccd18648928d6ae424a1d0b02ff25c158e649f1.png ../_images/3801d3ae8b38c7e51ca9f63dd623db4b7ac514c6d408cf7bed0289371c686de2.png ../_images/7900cfa0630459c1c658c8758434d5404dbfd485b75d6668c3507fb3b1971513.png ../_images/284e980cf92ea34b58c47e65d22a4c5b09c35aad3964938999c3799df5e51d1a.png ../_images/a306fc42207f7888d3d2e60cfa0c0de3cb09f55364bd51cbe5d1717d3b768ed7.png ../_images/5a41a134cfe48501420af366d5c7137e819bc8f92cda0ff427786a5266f6f54b.png ../_images/242ecc86b01afd61398d68c2c66acdb74f3681e686df729436b4d67f0dc6396c.png ../_images/abb9396b91b8d42a720486fcd991a136b9bef14c02c41895098e7d69f486c37d.png ../_images/14c5b46ba13a9263c93fc85b31547b82f07fdef8c41a225722c591c7b3d6f1e3.png ../_images/e67ac2125a959ab4de98915188fe4560176ec01c29a45ef3e6ffda9a46fce7f1.png ../_images/07f810e0f136a8cebecca720a7d70e777acf8d82a6c1d32bbebc71d73021cb8d.png ../_images/579f7738838d63fec9351f9bdafe3c2d50e06f242fa0273672e4874b72e64a7e.png ../_images/a39bc3aade17e7a1bb2c1293463ec903ed188daa5f3214f23b13440a05f25c3e.png ../_images/94aff4c47ba893b45a8db5b3c9a47a00eab9b14299288dd092d760e599a9513d.png ../_images/12e878d06b7a9db99f61f9445b1184f2f610268d872e1f8f07c876bd79a23a38.png ../_images/ef856987b3812ad7f7651307b5ef529d1fe758a883dafb8f22ab6b387dfc9ff9.png ../_images/6d827240e5031ead6117bd792b7ebb5b31978a9f703621926af20b60ad61f914.png ../_images/a63be9f9e28363c3d8beb097f30c096b697537037a4a697c285dffc87ef7c70b.png ../_images/e8ec48ab2141e7fb4181ce96334658343ffe1a7150fcdc8827672ef32e5ffc66.png ../_images/c81d862d1b16746060a568b0b96461866e31be38f7d7d1778b3ce9d56c63dca2.png ../_images/93236e8000947048ff48a8c2ce29bb20abe424cf6a75436e9a98b97fe7d84c51.png ../_images/333ece6b9fd872bf944c7e53f4d02bedddc0f90bdbc75000af0a8063a5a9d07e.png ../_images/e9c1f8726a54f3ba5e81e11cb43f00dad61261f0f0b99528a53eadf0d817d735.png ../_images/f2790e6d27564de0f4837c794a28e5aadccf5b67ed2f09d11cc7dabf1797def1.png ../_images/9118bbae32f4be6472b8e47eb716af2566b8adf50b34ffcae1b89948d643da07.png ../_images/66eaa591cc1136bae63188f20b6f06ba200e9f23d1aa68234295ce0c9b34b586.png ../_images/ea771f206be5433805833a04211518a091e413f665511662b05adb53eac0c4c3.png ../_images/2c4c113a409c39d1e38bedb0e60f23ab9d63ca99c11e7af1ca3cd9ef20746db4.png ../_images/b8530c6127b056bb9045564db8f7b32799641100c07d362ad0a498320bf71edb.png ../_images/16e56640c982064be439c7ea2b34bc4b19c70aa10c5ef5a8768f17cea6eb778c.png ../_images/5613cb5f704cbc8bfbf122abcb4083cf50ad7f72ffe22def6c04181214c106eb.png ../_images/1073016a7e4811ad07ccba8c0eaa9b2c0ac76eab5d3578d2ec7e0b02ac2c981c.png ../_images/8cb9fdebdb22434810945010e35281ad28b34ddd421849995931825d54f3eb6e.png ../_images/486613710912f8f4c0238ce41c4c5677e2569ba390138a8352087857292b2c27.png ../_images/e891e4a8418bc62a5c70683bec7518b440133301282a0afcf94ff3a3fdbbefd6.png ../_images/4ebcd29daecad26b506dac1a7095042ac5902b3a5e224bb866e14728a1ae98c3.png ../_images/99d611227e3e04d752ad7d83deddb71064d16b605abfee422db4f98ee2632a26.png ../_images/9d54e67874285255b4a2a9978c249f0c45d12bcbec573efba48d84bd9e5abbc3.png ../_images/6b55406341792d384226fce711b1016e650c8be85bd12caaac147d241c3e2f2a.png ../_images/b7bc2c3d6ccc160998382781e708e96ad78147a9d3e7bf80cb41a587081267f9.png ../_images/156203282f03e6e894b19d1c615895977d39a149f6981ef1776b1c4c49d9504e.png ../_images/b738073013509f0a6597b7f45c07a4c47d0394bd15671b09c5b6df01c037bac1.png ../_images/569b35082d3281d03675c7c772f9fdcdc943864b16d06b9cecaec1d635def86b.png ../_images/32f0a8a087fb741654d3d80fbf2495cf7018183ee8c0a10f87ad76d44b20cd7d.png ../_images/8c9bf4cd9b1e7539ed234b405e1621c4f61dc9bb5c7b23dda26857ac39c4037d.png ../_images/2e26f19f5bda58c1ed83613b271e6e175650155613daf6a09f9d52839d124be9.png ../_images/3a1e7f9c60f3bcea115912576f08047e504c7ca8e16a43bba7adc55f49c2eb2a.png ../_images/5b493d85c8300b0d35684692e1be5d6196f50743f23b7402cc198672a9a74af4.png

Simulating whether there was a gain at some point#

What is checked is whether there was a point where the balance was greater than the initial balance.

for bet_amount in range(10, 110, 10):
    gain, loss = 0, 0
    for money_history in money_histories[bet_amount]:
        if gain_at_some_point(money_history):
            gain += 1
        else:
            loss += 1
        
    plt.bar(['gain', 'loss'], [gain, loss])
    plt.title(f'Bet_amount: {bet_amount}')
    plt.show()
../_images/a80dc22038a0c2983ca549945b05c1794f63d5eb76c80e4e4e9aa4e889157693.png ../_images/f232c30e65007f3978a20ed4905e837acf8575c69baf1a78a4f52e266c7a4658.png ../_images/b69825f6f81be949eed273606bf1e1bc011439a641b1017dfb4cc78a88f96b66.png ../_images/66e5570f7eb845b2e29bb019a5e2f4a9fb2ea1db20a165706f6ce88ba03a8e16.png ../_images/054286138289e09a34afc995d4689dd2038580cc87a3b5517337d5bf4948ab0a.png ../_images/2ebd4488aa64426f044c1ca0a166d09539c078f805466164c5e1519af3e6d4b8.png ../_images/6483e211820df1e574c41e5fcf74f88d9def1ee53a82ead2cd01d5ab323ec46e.png ../_images/e19412145105c697e3b60e33a382fef17eaa357a4cba8699ff39be0b99917ab8.png ../_images/4a198b084de0f3168a1bd663712cb9e0fb2ce9cefc8fe72f31779718c990713e.png ../_images/08f6ed21437a0465c3d1f29b6d831eded7497478d919c27afbcd0e026eee12be.png

Simulating how many bets are needed for bankruptcy, depending on the percentage of the initial balance that is bet#

for bet_amount in range(30, 110, 10):
    plot_number_of_bets(money_histories[bet_amount], f'Number of bets for bet_amount: {bet_amount}')
../_images/f37a4fd01e14748aae8ae78090a61927cbd133f7ed468a64340b1ed14ff176c3.png ../_images/246bb3d892e4df59dda70dfb1aab3a8f2867fa0603629004fa48d92aa366d583.png ../_images/6a616cb17c1dfd940948c61fc1e6d9a91b15208cdc4bd3272376601f74173a18.png ../_images/9ff632cf3f4fa18ac6b7ec7bdd8d89ef1bdbd2ddc3e1ebc99d72ead55f1fb0c2.png ../_images/bdde062b7c0fd742e2890e9cbb9ec23289cb80b28933feb2b284f8ce7a451de7.png ../_images/6834c0ffa788bf6ac2fc1098cb20301dcfac488db59b8a2276c7057cc6693983.png ../_images/c6166bfad1c5948a066681937bf310dd49aa8df02fad5ad19281ee81938bd93f.png ../_images/bdadc813fa57d51bb46d24db6f6cb582c5c76e090ed3f24a1220670e7c404cf4.png