Endless single betting#

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

    while money > 0:
        money += roulette.make_single_bet(bet_amount)
        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_single_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'Single half betting with betting_percentage {i}', maximum_line=True)
../_images/3d5135db68b4bb25568fc3f395b37f3efcf13dc7449756d05c21cb80453c0e32.png ../_images/88f767252f8d15748341f7e063d7ce6bbb89f7a125fbfb23976cff69132ed26d.png ../_images/92c428c75411933c73b4aedf97c5ea87ca7852cd4d53247489672e98d94c65a3.png ../_images/7245a6c0fb925d8a8e2d44926fdb5992416c15c3600eabc0f89d7022d432030d.png ../_images/924c856364b240cacdc3183e5d91d4beac1c9f807f9b22de5bf8ebd86a98c78e.png ../_images/8f0492b5b5daef56f42c357e07cc707b27d5b08137731fd50985de1744c24f5f.png ../_images/8b94434482944e8f3f561cca5b0b65994400aad2051aca925d442b43640b9b90.png ../_images/dd69428aa5f2e119ef3d013dbdb80356bfbf2f669367416a63939a786307620e.png ../_images/1c7ffb5592bbccf73c00608897f27af567684ff4803ab471b99120c905f236a7.png ../_images/c475ccf5f4525111e46f341d95ea7e56ba0045334e5837d142f170b11022c027.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.

gain, loss = 0, 0
for i in range(1000):
    money_history = endless_single_betting(100, 1)
    if(gain_at_some_point(money_history)):
        gain += 1
    else:
        loss += 1
    
plt.bar(['gain', 'loss'], [gain, loss])
plt.show()
../_images/09a89d161e8f37592f39ae74bfac0bbae1895782303854393ebe5e89096a9200.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/42322821fd3411e8cdf15141923ebfaff050d58e0cb391cc0c65533c53404939.png ../_images/8bb8760a5eb5f53df2e2517a11f774755b855506d52c26da3d3c9b996ab9a1cf.png ../_images/3c755eda795058d96e475d2ebf99ac003a199ad45ecdf5141ffce32b94d1d23d.png ../_images/b9fa79c42871fe0232b9f05bc034f8aec43b58166da3be4085a7fb913a0aee89.png ../_images/86b40d15d921ef31476259fedaaa6aa2ea2a4ba996b5fb0bff48a3e5057194ec.png ../_images/2e2441fb1f1cfddb01e10d14a37c072d0ef39f6584a9a47d76462025cb5083a4.png ../_images/78b1590d18faf2936bcb3fcbc8f62ad27c0c981c75fdec4a4b93aa0e606e7c35.png ../_images/0feddd88fb9588e99141a6bf9616d48555ebfa6ca9ad8cc276e44ee9420e33dc.png