Paroli simulation#
from roulette import Roulette
from core import *
from simulations_core import *
from simulations_plots_core import *
roulette = Roulette()
The Paroli system is the reverse of the Martingale strategy. If you lose a round, you keep your stake the same. And if you win, you double your stake – this is known as ‘positive progression staking’. The overall aim of Paroli is to double your stake for three winning spins in a row. Once that happens, you go back to your starting stake.
def paroli_betting(goal_money_won, start, money_limit):
money = 0
money_history = [money]
streak = 0
bet = start
while money < goal_money_won:
if money_limit is not None and money < money_limit:
return money_history
prev_money = money
money += roulette.make_even_bet(bet)
money_history.append(money)
if money < prev_money:
streak = 0
bet = start
else:
streak += 1
bet *= 2
if streak == 3:
streak = 0
bet = start
return money_history
money_goals = [10, 100, 500, 1000]
Starting bet = 1, Allowed money lost = -10#
bet = 1
money_histories = simulate_different_goal_money(
betting_type = paroli_betting,
goal_money_list = money_goals,
number_histories = 10000,
start_bet= bet,
money_limit= -10*bet)
successful_histories = get_successful_histories(money_histories, money_goals)
for goal in money_goals:
print(f"For goal {goal} mean money won:")
print(get_mean_money_won(money_histories, goal))
print(f"For goal {goal} mean money lost:")
print(get_mean_money_lost(money_histories, goal))
For goal 10 mean money won:
10.883047707271885
For goal 10 mean money lost:
-11.0
For goal 100 mean money won:
100.81865284974093
For goal 100 mean money lost:
-11.0
For goal 500 mean money won:
0
For goal 500 mean money lost:
-11.0
For goal 1000 mean money won:
0
For goal 1000 mean money lost:
-11.0
Analysis when the goal is to win 10 units#
UNITS = 10
plot_successful_bets(money_histories[UNITS], UNITS, title=f"Successful bets for {UNITS}")
mean_money_list, std_money_list = get_mean_and_std_of_histories(successful_histories, UNITS)
plot_money_history(mean_money_list, std_dev=std_money_list, title=f'Successful simulations mean and std for {UNITS} units')
plot_money_histories(successful_histories, UNITS)
Analysis when the goal is to win 100 units#
UNITS = 100
plot_successful_bets(money_histories[UNITS], UNITS, title=f"Successful bets for {UNITS}")
mean_money_list, std_money_list = get_mean_and_std_of_histories(successful_histories, UNITS)
plot_money_history(mean_money_list, std_dev=std_money_list, title=f'Successful simulations mean and std for {UNITS} units')
plot_money_histories(successful_histories, UNITS)
Analysis when the goal is to win 500 units#
UNITS = 500
plot_successful_bets(money_histories[UNITS], UNITS, title=f"Successful bets for {UNITS}")
Analysis when the goal is to win 1000 units#
UNITS = 1000
plot_successful_bets(money_histories[UNITS], UNITS, title=f"Successful bets for {UNITS}")
Starting bet = goal, Allowed money lost = -10*goal#
money_histories = dict()
for goal in money_goals:
bet = goal
tmp_money_histories = simulate_different_goal_money(
betting_type = paroli_betting,
goal_money_list = [goal],
number_histories = 10000,
start_bet= bet,
money_limit= -10*bet)
money_histories = money_histories | tmp_money_histories
successful_histories = get_successful_histories(money_histories, money_goals)
for goal in money_goals:
print(f"For goal {goal} mean money won:")
print(get_mean_money_won(money_histories, goal))
For goal 10 mean money won:
14.086405529953916
For goal 100 mean money won:
140.79963129392786
For goal 500 mean money won:
704.3913093459018
For goal 1000 mean money won:
1408.0831408775982
Analysis when the goal is to win 10 units#
UNITS = 10
len(successful_histories[UNITS])
8680
plot_successful_bets(money_histories[UNITS], UNITS)
mean_money_list, std_money_list = get_mean_and_std_of_histories(money_histories, UNITS)
plot_money_history(mean_money_list, std_dev=std_money_list, title='Simulations mean and std')
plot_money_histories(successful_histories, UNITS)
Analysis when the goal is to win 100 units#
UNITS = 100
len(successful_histories[UNITS])
8679
plot_successful_bets(money_histories[UNITS], UNITS)
mean_money_list, std_money_list = get_mean_and_std_of_histories(successful_histories, UNITS)
plot_money_history(mean_money_list, std_dev=std_money_list, title=f'Successful simulations mean and std for {UNITS} units')
plot_money_histories(successful_histories, UNITS)
Analysis when the goal is to win 500 units#
UNITS = 500
len(successful_histories[UNITS])
8699
plot_successful_bets(money_histories[UNITS], UNITS)
mean_money_list, std_money_list = get_mean_and_std_of_histories(money_histories, UNITS)
plot_money_history(mean_money_list, std_dev=std_money_list, title='Simulations mean and std')
plot_money_histories(successful_histories, UNITS)
Analysis when the goal is to win 1000 units#
UNITS = 1000
len(successful_histories[UNITS])
8660
plot_successful_bets(money_histories[UNITS], UNITS)
mean_money_list, std_money_list = get_mean_and_std_of_histories(money_histories, UNITS)
plot_money_history(mean_money_list, std_dev=std_money_list, title='Simulations mean and std')
plot_money_histories(successful_histories, UNITS)
Starting bet = goal, Allowed money lost = -20*goal#
money_histories = dict()
for goal in money_goals:
bet = goal
tmp_money_histories = simulate_different_goal_money(
betting_type = paroli_betting,
goal_money_list = [goal],
number_histories = 10000,
start_bet= bet,
money_limit= -20*bet)
money_histories = money_histories | tmp_money_histories
successful_histories = get_successful_histories(money_histories, money_goals)
for goal in money_goals:
print(f"For goal {goal} mean money won:")
print(get_mean_money_won(money_histories, goal))
For goal 10 mean money won:
14.155121631940657
For goal 100 mean money won:
142.35922012852632
For goal 500 mean money won:
720.9731725860759
For goal 1000 mean money won:
1435.7942807437207
Analysis when the goal is to win 10 units#
UNITS = 10
len(successful_histories[UNITS])
9167
plot_successful_bets(money_histories[UNITS], UNITS)
mean_money_list, std_money_list = get_mean_and_std_of_histories(money_histories, UNITS)
plot_money_history(mean_money_list, std_dev=std_money_list, title='Simulations mean and std')
plot_money_histories(successful_histories, UNITS)
Analysis when the goal is to win 100 units#
UNITS = 100
len(successful_histories[UNITS])
9181
plot_successful_bets(money_histories[UNITS], UNITS)
mean_money_list, std_money_list = get_mean_and_std_of_histories(successful_histories, UNITS)
plot_money_history(mean_money_list, std_dev=std_money_list, title=f'Successful simulations mean and std for {UNITS} units')
plot_money_histories(successful_histories, UNITS)
Analysis when the goal is to win 500 units#
UNITS = 500
len(successful_histories[UNITS])
9207
plot_successful_bets(money_histories[UNITS], UNITS)
mean_money_list, std_money_list = get_mean_and_std_of_histories(money_histories, UNITS)
plot_money_history(mean_money_list, std_dev=std_money_list, title='Simulations mean and std')
plot_money_histories(successful_histories, UNITS)
Analysis when the goal is to win 1000 units#
UNITS = 1000
len(successful_histories[UNITS])
9197
plot_successful_bets(money_histories[UNITS], UNITS)
mean_money_list, std_money_list = get_mean_and_std_of_histories(money_histories, UNITS)
plot_money_history(mean_money_list, std_dev=std_money_list, title='Simulations mean and std')
plot_money_histories(successful_histories, UNITS)
Starting bet = goal, Allowed money lost = -30*goal#
money_histories = dict()
for goal in money_goals:
bet = goal
tmp_money_histories = simulate_different_goal_money(
betting_type = paroli_betting,
goal_money_list = [goal],
number_histories = 10000,
start_bet= bet,
money_limit= -30*bet)
money_histories = money_histories | tmp_money_histories
successful_histories = get_successful_histories(money_histories, money_goals)
for goal in money_goals:
print(f"For goal {goal} mean money won:")
print(get_mean_money_won(money_histories, goal))
For goal 10 mean money won:
14.34000642329515
For goal 100 mean money won:
144.52640581569383
For goal 500 mean money won:
724.7149099435148
For goal 1000 mean money won:
1439.1494817822418
Analysis when the goal is to win 10 units#
UNITS = 10
len(successful_histories[UNITS])
9341
plot_successful_bets(money_histories[UNITS], UNITS)
mean_money_list, std_money_list = get_mean_and_std_of_histories(money_histories, UNITS)
plot_money_history(mean_money_list, std_dev=std_money_list, title='Simulations mean and std')
plot_money_histories(successful_histories, UNITS)
Analysis when the goal is to win 100 units#
UNITS = 100
len(successful_histories[UNITS])
9354
plot_successful_bets(money_histories[UNITS], UNITS)
mean_money_list, std_money_list = get_mean_and_std_of_histories(successful_histories, UNITS)
plot_money_history(mean_money_list, std_dev=std_money_list, title=f'Successful simulations mean and std for {UNITS} units')
plot_money_histories(successful_histories, UNITS)
Analysis when the goal is to win 500 units#
UNITS = 500
len(successful_histories[UNITS])
9383
plot_successful_bets(money_histories[UNITS], UNITS)
mean_money_list, std_money_list = get_mean_and_std_of_histories(money_histories, UNITS)
plot_money_history(mean_money_list, std_dev=std_money_list, title='Simulations mean and std')
plot_money_histories(successful_histories, UNITS)
Analysis when the goal is to win 1000 units#
UNITS = 1000
len(successful_histories[UNITS])
9359
plot_successful_bets(money_histories[UNITS], UNITS)
mean_money_list, std_money_list = get_mean_and_std_of_histories(money_histories, UNITS)
plot_money_history(mean_money_list, std_dev=std_money_list, title='Simulations mean and std')
plot_money_histories(successful_histories, UNITS)