Stop/Loss for a day.
Hey... I'm depositing 30 buy-ins and for plo just checking if this is within the range of acceptable. But would 4 buyins be to much and 3 is more within the norm? I know it's online plo and 3 buyins for live nl is what I feel was comfortable when I played live some years back.
14 Replies
Stopless is entirely up to your mental game (as long as you are within your bankroll requirements).
I tried to do some calculations based on z-score to approximate the probability of hitting a stoploss. I have no idea if it's right, though.
Assume winrate of 10bb/100 and standard deviation of 100bb/100. (PLO probably has higher standard deviation).
What is the probability of losing 300bb over 1000 hands?
Z-score: (Actual result - Expected result) / (Standard deviation * SQRT(2))
(Multiplying the standard deviation with SQRT(2) is because we quit when we hit the stoploss. It's based on the reflection principle. I don't know what that means, but that's what I read.)
Expected result: 10bb/100 = 100bb per 1000 hands
Std.dev: 100bb/100 = 100bb/SQRT(100) per hand = 10bb * SQRT(1000) = 316bb per 1000 hands
Z score: (-300-100)/(316*SQRT(2)) = -0.90 z-score = ~18% probability of hitting the stoploss in 1000 hands
Thank you so much. So, 18% chance you hit that 3 buying stop Loss in 1000 hands.
Only when using these specific numbers. You would have to plug in your own numbers to get an estimate that fits your winrate, standard deviation, stop loss and number of hands.
And then you would have to use a z-score chart to convert it into probability.
Also, hopefully someone can confirm if the formula is correct. I think it's at least approximately correct.
(Note: this approximation is only supposed to work when the stop loss is of the same approximate size as the standard deviation).
Zamadhi, I believe that formula only works for win rate = 0, it's a special case where the math simplifies.
The probability of hitting a stop loss given a finite number of hands with some win rate (drift) is a very complicated formula:

^^ ("bankroll" in this picture represents your stop loss, it's taken from finite RoR calculations)
But seems easy to compute with a spreads...:

No, realistically it's way higher. PLO is an extremely swingy game. Your standard deviation is probably closer to 150 bb/100 online, higher live. Even a highly skilled player probably has a ~50% chance of hitting a 3 BI stop loss after 1k hands.

Stop loss is still good just to keep your mental game in check, so you don't start spewing when you have a bad session. But ultimately you need to be playing with a bankroll that can withstand the variance. Try to have at least 50 buy ins ready.
The probability of hitting a stop loss given a finite number of hands with some win rate (drift) is a very complicated formula:
That's quite the formula! Thanks for the spreadsheet.
I asked chatgpt to run some monte carlo simulation and my formula definitely underestimated the risk of hitting the stop loss.
But can normal z-score still be used to estimate probabilities for end of session results (assuming no stop loss)?
It would also be cool if GTOW created some more advanced version of the primedope tool, with features like:
session stop losses, customizable risk of ruin bankroll calculator, kelly calculator, max average/median downswing and breakeven stretch over x hands, bankroll growth simulation based on projected winrates and standard deviation on different stakes and some fraction of kelly and shot size.
That's quite the formula! Thanks for the spreadsheet.I asked chatgpt to run some monte carlo simulation and my formula definitely underestimated the risk of hitting the stop loss. But can normal z-score still be used to estimate probabilities for end of session results (assuming no stop loss)?It would also be cool if GTOW created some more advanced version of the primedope tool
Can you check if the probabilities I gave in pictures above match the simulated results? Just to be sure.
Yeah I think that would be really cool. Years ago we had planned a bankroll simulator, complete with Kelly calculations and everything. Sadly it was never implemented. I guess they deemed it was too niche and not worth the development cost.
Can you check if the probabilities I gave in pictures above match the simulated results? Just to be sure.
I have the free version so I only got one monte carlo simulation before being limited.. but it did help me create my own monte carlo simulations!
I know absolutely nothing about programming, but it told me to install python-numpy and then simply put the script into a text file with the extension .py (like stoploss.py).
The script:
Spoiler
import numpy as np
import math
import time
Parameters
mu = 0.1 # bb per hand (change to 0.0 to reproduce prior sim)
sigma = 10.0 # bb per hand
n_hands = 1000
stop_loss = -300.0
trials = 200_000 # increase for narrower CI
batch_size = 20_000
rng = np.random.default_rng()
start = time.time()
hits = 0
batches = trials // batch_size
for _ in range(batches):
increments = rng.normal(loc=mu, scale=sigma, size=(batch_size, n_hands))
cum = np.cumsum(increments, axis=1)
hit_any = np.any(cum <= stop_loss, axis=1)
hits += np.count_nonzero(hit_any)
remainder = trials % batch_size
if remainder:
increments = rng.normal(loc=mu, scale=sigma, size=(remainder, n_hands))
cum = np.cumsum(increments, axis=1)
hit_any = np.any(cum <= stop_loss, axis=1)
hits += np.count_nonzero(hit_any)
end = time.time()
p_hat = hits / trials
se = math.sqrt(p_hat * (1 - p_hat) / trials)
ci_low = p_hat - 1.96 * se
ci_high = p_hat + 1.96 * se
print(f"Trials: {trials}, Hits: {hits}")
print(f"Estimated P(hit stop-loss) = {p_hat:.6f}")
print(f"95% CI = ({ci_low:.6f}, {ci_high:.6f})")
print("Elapsed seconds:", end - start)
And then simply run it in the terminal: python stoploss.py
I'm on linux right now, so might be slightly different in windows.
** Results for first screenshot:
Trials: 200000, Hits: 47915
Estimated P(hit stop-loss) = 0.2396
95% CI = (0.2377, 0.2414)
** Results for the second screenshot:
Trials: 200000, Hits: 88944
Estimated P(hit stop-loss) = 0.4447
95% CI = (0.4425, 0.4469)
"Close enough"
You are more likely to lose if your EV at a table/set of tables/session is lower. Your EV can, and will be lower, if: You're seated in too many bad tables. Yo're not in your best mental state. Etc. Just go to primedope and simulate the probability of losing in a given sample assuming different winrates.
If you lose more often in bad games/playing worse, then over the long term, most of your losing sessions should have happened on days where your EV was lower, not higher. If you have the discipline to follow it consistently with no exceptions, any system that would automatically put you out of bad games more often than put you out of the good ones, will increase your winrate.
A higher winrate, all other parameters remaining the same, should make your bankroll safer.
I have the free version so I only got one monte carlo simulation before being limited.. but it did help me create my own monte carlo simulations!I know absolutely nothing about programming, but it told me to install python-numpy and then simply put the script into a text file with the extension .py (like stoploss.py).The script:
Sweet, looks like the simulation matches up which means the formula is accurate. Thanks for verifying
...But can normal z-score still be used to estimate probabilities for end of session results (assuming no stop loss)?...
Ahh sorry I missed this. Yeah for sure, your results are normally distributed around your EV, so z-score should tell you probability of ending up below stop loss at end of session. But that's a different question from probability of hitting stop loss at any point in the session.
The probability of hitting a stop loss given a finite number of hands with some win rate (drift) is a very complicated formula:
I believe I managed to modify this formula to get the probability of hitting some positive goal within N hands.
But then I wanted to take it one step further: what about the probability of hitting some positive goal before hitting some stop loss?
I found some clues, but couldn't quite get it to work in a spreadsheet.
Some formulas that were suggested to me:
I also tried to collect some more formulas into one

Looks good Zamadhi, I get the same numbers.
Winrate = 10, std dev = 100 bb/100
Probability of losing 300bb: 24.76%

Probability of gaining 300bb: 45.11%

[ ^This one is kind of a dumb hack, but hitting -300 with wr of -10 has same probability as hitting +300 with wr of +10]
and the other figures using z-score also look correct


