Well Slim posted his excellent
7.5k post regarding AQo bubble raising a few hundred posts early, so I thought it fitting to post my 1k post early as it makes an ancillary to his post. I will try to show how to model his line - AQo raising on the bubble and folding to BTN push - using Stox EV software.
Stox EV is a calculator that can model pretty much any hold'em decision, on any street. It's extremely powerful, and since the tournament equity feature was added, it can be used to model decisions for SNG tournaments as well as cash. It can be used for any decision that SNGW can do, any equity calculations that pokerstove can do, and a whole lot more.
Part 1 - Installing And Setting Up
The software can be a bit daunting at first, so I thought I would show the basic process of setting up a simulation. The process may seem long, but once you get the hang of it you can model decisions in a matter of minutes. I'll step through the process of simulating what Slim Pickens did by hand - raising and folding on the bubble with AQo. First you need to install the free software. Stox EV can be downloaded from
http://www.stoxev.com, and you can read more about it in the
2+2 thread in software. There's an excellent video tutorial available on the site, but you can dive straight in with this example if you like.
Once you've got it set up and running, you should be greeted with something like:
As the screen suggests, click anywhere in the main window to start a new simulation. In our simulation, we have a hand with 4 players - from CO to BB, so check them. It's a preflop decision, so we start the analysis there, like so:
Before we go any further, we need to set it up for tournament mode. Go to Options, and check "Tournament Mode". Then we need to set up the game properties. Do this from the menu "Game Properties > Game Properties", or hit CTRL-F1.
Here we set up the blind levels. You can set everything else to 0. "Add chips to pot" is where you enter in the total sum of antes if they are used in the hand (in our example, there isn't).
(
Edit: Just reading through the post, and I've realised that in the original hand was played on PokerStars, so there are in fact antes in this hand. I'm not going through all the darn screenshots again with antes in the calculation. Feel free to either add in the blinds here (100 - 25 for each player) and get slightly different results to me but matching Slim's, or leave this 0 to follow the example exactly).)
Now we enter stack sizes in Game Properties > Stack Sizes, or CTRL-F2. Here the only players we are interested in are CO to BB - the others you can set to 0 or just leave as the defaults, it makes no difference as we have already specified they are not in the tourney any more.
Finally, we need to set up the tournament properties from Game Properties > Tournament Properties. Here you set up additional stack sizes and the prize structure. Note here that
stack sizes are for players still in the tournament, but not involved in the simulation. In our case, all 4 players who we've already configured in this hand are the only players, so we don't enter in any additional stacks. Below that, we enter in the SNG prize structure. The bit at the bottom - "Acceptable std in outcome" - sets the accuracy required for ICM calculations. The 0.1 show be acceptable, but you can set this to 0.01 for my accurate results. The ICM calcs just take a bit longer to do.
Like all settings screens, you can set "Store as default" for the settings to get saved for future sims. This screen is usually the same, so you might want to save them.
Now we've got everything set up. We can check that we've got the structure and the stack sizes correct my selecting "Display Tournament EV" from Options or hitting F11. This will show the equity of the prize pool for each player. If you've set everything up correctly, you should get this:
You can check this calculation against other ICM calculators, like
this one, to ensure you've got things set up right.
Part 2 - Creating The Decision Tree
Now we are ready to set up the simulation. Stox EV works by creating a decision tree. Our simulation will start with Hero raising 550 with AdQs. This is fixed. Then the tree will be:
- Button raising all in with a variable top % of hands. If this happens, SB folds, BB folds, and hero folds.
- if button folds, SB raises all in with a set % of hands. BB folds, and hero calls.
- If SB folds, then BB raises all in with a set % of hands. Hero calls.
- If BB folds, hero takes pot uncontested.
Let's set this up step by step. Firstly, Hero is cutoff, the first to act, and he raises with his AdQs. Click on the "Cutoff" button to add the action. The "add action" should appear. Click "Raise/bet" and enter 550.
Now the main screen should look like this:
We need to add in his hole cards by configuring this decision. By default it has the raise 550 for "all cards". In our sim, we do this with a specific hand.
Doubleclick on the "all hands" and you see the preflop hole cards window.
Click "clear", then select AQo. You can specify the suits here too (although in this simulation, the suits are irrelevant as long as it's offsuit), then click done.
Now we are back to the main screen, and Stox EV is waiting for you to enter in the decision for Button. Here, button will reraise all in with a variable top % of hands. Click on the button, select Raise/bet, and drag the slider all the way to the right. It should say "9999 = allin". Click OK. Now we have:
We have to set this "raise all in" to a variable top % of hands. Double click on the "all hands" under the "Raise to 7165". You'll see the same window a we had for COs holecard range. Instead of setting a specific hand or range, we are going to use a variable. Click "Use Variable", then "#1" in the dropdown, and okay. Click "Done" in the holecard range window. Now we have:
What this means is that this condition - "Raise to 7165" - will only occur based on a variable number 1. In all other cases, button will fold. To represent button folding, click again on "Button" to add in another action. Select "Fold". Now our tree is:
You'll see the tree split in to two branches - the top branch is for button raising all in, the second branch is for button folding. Note here, the "Fold" branch by default occurs in "all hands" conditions. This is fine. Stox EV works from top to bottom - so first it decides "Does button raise all in?". If so, it follows the top part of the tree. If not, it goes on to the next decision. Does button fold? This condition will always pass ("all hands"), and there the tree stops.
Back to the simulation, you see the software waiting for the SB decision for both the "Button raise", and the "button fold" branches. In the top branch, we want SB to fold all conditions, and then BB to fold all conditions. As before, click on SB and click "Fold". Similarly for BB - click on BB, then click on fold. Now you see the action back on the cutoff. Cutoff always folds - so once again click "cutoff" and fold. The top part of our branch is complete.
You see here at the end of the branch, we have a deep-blue "stopper". This shows that the hand has ended - in this case, CO raises, button went all in, then the blinds and CO fold. The hand is over.
Now we go back to the second branch. Here, button has folded, and action is on the SB. We want SB to raise all in with a specific hand range - in which case BB always folds, and cutoff always calls. Click on SB in the second branch and raise all in. Now we set the hand range condition, so double click on the "all hands" on this action and specify the exact hand range (slim defined this in the original post as {33+,A4s+,A8o+,KTs+}) by selecting the preflop hands like so:
Groovy. Continue this branch by setting up BB always folding, and cutoff always calling ("check/call" in the action dialog).
With me so far? You should have something like this:
Note here that the end of the branch shows a green arrow. This means that the branch is complete, and it goes to showdown (between cutoff and SB).
We're not done quite yet. Just like we did for button, SB raises with a specified range, and folds all else. So we need a fold action under the SB. Create a second "Fold" action for all conditions under the SB. This branch continues with BB then raising with range {33+,A2s+,A4o+,KTs+,KQo} and hero calling. Make sure to add on the BB fold branch too. The final result should look like this:
Notice that all branches end with either a stopper, or a "go to showdown", and that the last decision on every branch has a "all hands" condition*. This ensures we have a complete simulation set up.*
(* This is not entirely accurate. The first decision - cutoff raises with AdQs - does not have a condition whenever he doesn't have this hand. Stox EV is smart enough to assume that if this is how you've set up your sim, then every simulation starts at the point of cutoff getting dealt AdQs. We aren't interested in what happens when we get dealt other cards).
Part 3 - The Results
Before we actually run anything, we need to set up what "Variable 1" is equal to. Remember we set buttons opening range to "#1"? Click the "xy" button on the toolbar. This is where you set what the variable is actually equal to. Under #1, set this to "25". And click okay. Now we have set buttons push range to the top 25% of hands.
Firstly, we can test out our simulation by doing a "perform one run", from the toolbar, menu, or hitting F6. You'll get up a little screen that deals out one had as defined in our sim. Most of the time, you'll get cutoff raising to 550, and everyone else folding. Keep tapping F6 and you should see the other scenarios - button pushing all in when he gets a top 25% hand any everyone folding, or one of the blinds raising with a hand in his range and cutoff calling, etc.
When you're happy the sim is working as you wanted, run the simulation by selecting "perform EV run" or hitting F7. This does a monte-carlo simulation - dealing thousands of hands and noting down the results. Once complete, you'll get up a load up numbers - it shows the percentages of when branches occurs, and the average equity for each decision for each play. Something like this:
You're exact numbers may differ slightly, because in a monte-carlo simulation, it doesn't do an exhaustive run of all potential deals. A couple of things to note. Firstly, you'll see that the % that button raises all in is around 24%, yet we set button to reraise with the top 25% of hands. This is both because there are less pair combinations than nonpairs (and top 25% has all the pairs in them), and also because hero has been dealt AdQs, so there are slightly less combinations of "top cards" available to be dealt to the button.
But the number we are most interested in is right at the start, under cutoff. You see that the EV comes out at +0.59. What does this mean exactly? It means that our line - raising 550 then folding to a button push, but calling the blinds push - increasing our share of prizepool equity by 0.59% from our equity at the start of this hand. I.e. it's a profitable line to take. All well and dandy.
However this doesn't mean it is
the most profitable line to take. Folding will also increase our share of the equity, because there's the chance of two other players going all in, and us getting in to the money. To work out that, we would need to create another simulation - cutoff gets dealt AdQs but folds, button pushes x%, blinds call, etc - and compare the EV increases. We may also want to compare this to open-shoving. Again, this can be modelling easily in Stox EV.
(Or, as slim did in his original post, we can use SNGW to model these. He tells us that open folding is +0.35%, and open shoving -EV with reasonable ranges).
Graphing By A Variable
But we didn't come all this way just to get out one figure. Let's go back to the variable. We set cutoff's pushing range to a variable. We then set this variable specifically to 25% to run the EV calculation. But this defies the point of using variables - if we wanted to fix cutoffs opening range, we could have just set the specific hole cards in the holecard range conditions field.
The power of the variable is now we can do some sexy graphing.
Firstly, we need to set the "checkpoint" on a specific decision. The checkpoint says "When I make a graph, I want this decision to be the thing we are looking at". The important decision here is of course cutoff raising. So click on the white and blue arrow on the toolbar called "Set checkpoint", then click on "cutoff" right at the start. You should get a checkmark there on the decision:
Now it's graphing time. Click the "make graph" icon. Select "vary one variable.".
Then on the "make graph", select variable one, from 20, to 50, step 5, and output on variable "EV". Then click "GO!" and sit back and wait for the calculations to run.
Here's one I made earlier:
The X axis is variable 1 - cutoffs push %. The y axis is the EV (as specified as the output variable) of cutoff's AQ raise move. You'll see datapoints starting from 20 through to 60, with a point every 5, as defined in "make graph". Things to note:
- At 25%, it's around 0.6, as we already knew from our run before.
- Even with CO reshipping with 50% of hands, it's still +EV.
- But as we know open-folding is +0.35% EV, this move is only better than folding if CO is pushing around top 35% or less.
Part 4 - Stuff Missed Out
A preflop decision is using just a small part of the power of stox ev. You can model any line you wish, starting at any point in the hand, all through from preflop to river decisions if you have the inclination. Search back in my old posts and I did one for a stop and go decision which includes some flop hand value conditions.
A few settings of interest: in Options > Run Settings, you can configure how many monte-carlo simulations to run. For a pre-flop decision like this I find the default settings to converge enough that the default settings give an accurate enough answer. Increase these values for more accurate results, with a slower calculation speed.
You can configure exactly what "top 25% of hands" means in Game Properties > Preflop Hand Selection. Here you can customise your own rankings. I think the default is Sklansky-Karlson. You can then specify these groups in the preflop hand conditions for each player.
Try hovering over any number after an EV run to get a detailed breakdown of the figures based on exact hands within the range.
You can make graphs based around any variable you wish, you are not just limited to preflop hand %s. For example, you can use a betsize variable. You can also set up two variables, and then graph on both - this will give you a table rather than a graph. Again, see my previous stop-n-go post for an example.
If you balsed up making the simulation, you can download mine from mega upload:
http://www.megaupload.com/?d=54DK6L7B