steal/resteal equilibrium

    • lessthanthreee
      Joined: 30.06.2009 Posts: 16,300
      Hi guys,

      Im looking for some kind of guidance with calculating steal/resteal equilibrium for 12-20BBs. I figure I can start with cEV calcs (ie. Hu SnGs) and go from there (adding risk-aversion for ICM, more players etc). Any information, or insights to how to start the math would be appreciated.

      Ill just start the ball rolling so I can give a clearer explanation of what im looking for.

      I know that if villain is only defending a tight x% of hands we can profitably open atc because our risk/reward will show an immediate profit. But im struggling to incorporate the 'middle ground' to those calcs. Where villain will be defending wide enough so raising atc is unprofitable. Trying to find out my r/c range and r/f range in equilibrium for that 12-20bb range.


      This would be aimed at the more mathematically inclined.
  • 11 replies
    • jbpatzer
      Joined: 22.11.2009 Posts: 6,944
      Your question isn't a million miles away from what I had a look at in this thread.

      The 3bet/4bet/5bet/shove game

      The difference is that I did it with very small, well-defined ranges. You want a similar calculation where you raise the top r% of your hands, the blind resteals with the top x% of his hands and you call with the top c% of your hands. All you need to know is the equity of the top c% of hands against the top x% and you can do the calculation.
    • pzhon
      Joined: 17.06.2010 Posts: 1,151
      One fundamental question is whether you allow the big blind to defend by calling. If not, then this means the raise/fold hands are essentially equivalent except for blocking effects, and the Nash equilibrium may not be easy to find with naive fictitious play. It does simplify things if you assume the BB can't ever call.

      Let's suppose there is a fixed raise size, and the big blind can only push or fold. Further, suppose for the moment that there is no blocking effect.

      If the Nash equilibrium gives a positive value to raise/folding, then the PFR raises 100%, and basically posts a larger big blind. Then you are reduced to the classical open-push/fold game, perhaps with an oddly sized blind.

      If the Nash equilibrium gives a negative value to raise/folding (relative to folding the small blind), then the PFR should never raise/fold, and the big blinds's resteals are essentially calls of pushes. Again, you are reduced to the classical open-push/fold game.

      So the interesting case (remember that we are assuming that there is no blocking effect) is that the raises show 0 immediate profit. This means the big blind must resteal with precisely the frequency which neutralizes the raise/folds. So, you know the calling range, and you can optimize the pushing range against that. You have to check for consistency, that the weakest hands in the calling range are really profitable calls against the exploitative strategy; if not this suggests that the big blind should grant an immediate profit to the PFR.

      This agrees with the examples I have analyzed with a program which analyzed game trees. It didn't calculate the Nash equilibriums directly, and to my surprise what usually mattered was the blocking effect. For example, it might be right to raise any hand with at least one 8 or higher in it, raising 82o while folding 76s.
    • lessthanthreee
      Joined: 30.06.2009 Posts: 16,300
      Thanks for your responses guys.

      Today is my day off and I have decided to do some work on this.

      I want to try set out a simplified theoretical scenario to calculate the equilibrium. Can you confirm my thought process and math?


      9 handed, 1500 stacks, BB80
      SB raises to t180 total
      BB can only shove or fold
      No ties

      Scenario A:
      1. SB raises t140 to a total of t180
      2. BB folds x%
      3. SB wins t120
      Total cEV = x%*(120)

      Scenario B:
      1. SB raises t140 to a total of t180
      2. BB shoves y%
      3. SB raise/folds z%
      4. SB loses t140
      Total cEV = z%*(140)

      Scenario C:
      1. SB raises t140 to a total of t180
      2. BB shoves y%
      3. SB raise/calls a%
      4. SB wins 1500*b%(equity of a against y)
      5. SB loses 1500*c%(equity of y against a)
      6. Chip difference = 1500*(b% - c%)
      Total cEV = a%*(1500)(b% - c%)

      Solve these 3 scenarios simultaneously to find the equilibrium?
      Doesn't seem possible to solve with so many variables. Maybe with a simulation?
    • santostr
      Joined: 11.08.2009 Posts: 663
      Lazy to analize scenario C, but I think there is an error in Scenario B:

      You only raise/fold when BB pushes, therefore cEV = y*z*140.

      z in this case is not the range% that you raise/fold, but the % of hands that you fold when you raise.

      Like, if you r/c top 15% and r/f the next 15%, z = 0.5 (50%)
    • LgWz
      Joined: 26.05.2007 Posts: 7,641
      You can relate variables in a way to change how many of them you have to solve for, i.e. if BB folds x and shoves y, just make y = 1 - x.

      I think there's another scenario you need to account for: SB open folds. SB's EV will be 0, but BB will gain 120 chips when it happens.
    • hacacare
      Joined: 01.04.2009 Posts: 2,939

      I have been interested in this topic for a while, and wrote a little program in autohotkey (this is the only program language I know :) ) to simulate this situation (the opponent has only the fold or resteal shove otions). You can find it here:

      You can check your %EV change with different bet/call ranges illustrated in the function of the restealer's range. It does not give you the equilibrium, but you can find unexploitable bet/call ranges and also gives you an idea how much can you exploit your opponent's tight restealing ranges. It simulates the situation only from the stealer point of view, but for the resteal situations you can use Wizard.

      Here is your example with some bet/calling ranges (black curve: 50/15, blue: 70/30, yellow: 100/10):

      The description of the program in the post I refer to above is in Hungarian, but if you put it into google translate, you can get a good translation, so you can check if the calculations I use are correct (I am not sure for 100% in this, but hopefully they are).

      There's also an English version for download. The program is quite simple and is aimed for SB vs BB situations only.

      I am working now on a more complicated one to include steals from other positions, but it still has some bugs and I am too lazy to work on it continuously. However if you want to test it, you can download it here (only Hungarian version so far, but it is better than the previous one :) ):!download|498dt|453960289|steal.exe|268
    • lessthanthreee
      Joined: 30.06.2009 Posts: 16,300
      ^^^ :s_love: :s_love: :s_love:

      looks really awesome.

      just trying to understand the graphs.

      so the X axis is the BB re-steal range?

      so for each situation we want to choose the highest %EV. so if we think villain is restealing 0-45% we can use the 100/10 range. from 45-70 we use 50/15, and from 70-100 we use 70/30 ?

      would that be a correct interpretation of the results?

      I definitely want to play around with this so ill google translate the buttons and have a go.

      thanks a lot!!!!
    • hacacare
      Joined: 01.04.2009 Posts: 2,939
      yes, the x axis the resteal range,

      We could interpret as you write, but I don't think we can put our opponents so preciously to differentiate if they are restealing with 40-70 or 70-100, and even if we could, there is not much difference between the blue and the black line.

      The original aim for this little program was to find an unexploitable bet/call range against those players who resteal a lot (based on James Keys video on exploitable/unexploitable play). In this sense, the blue and the black curve seems to be unexploitable. It is also useful to see how profitable is if the opponent folds a lot. I made it first with sb vs bb situation, because it is hard to calculate how folding affects your equity in other positions (I have included a Wizard button in the new one, to copy the hand and paste to Wizard - there you can estimate how much is the fold worth if you are button for example - it doesn't work anymore since the last updates of Wizard, but anyway).

      The problem with these calculations is that there are more options then just bet/fold or bet/call, and BB can not just raise or fold, but he can call (and will do so often), which complicates the situation and makes the exact calculation difficult. Maybe it would be better if we could set a polarized range which would also include some openshove hands (you don't want to bet/call with T9s with 15 BBs, but probably you could openshove it) or maybe some limp/raise allin and limp/fold (for betting the flop if it is cehcked) hands as well.

      It calculates with pokerstove ranges, but probably there could be more optimal ranges than these. The new one calculates with Karlson-Sklansky ranges, which are probably better, but still not good to tell the optimal bet/call ranges (it would be awesome if we could make such a program which tells you that), but only to test the expected value of the given ranges.

      Originally posted by lessthanthreee

      I definitely want to play around with this so ill google translate the buttons and have a go.
      If you want to play around with the new program, I can translate it and write a short guide, it is a bit complicated. The main advantage of it is that you can make these calculations with other positions as well, like BU, and you can also set different restealing and calling ranges depending on opponents.

      One more thing: when you set a bet/call range, and get that it is +EV up to a given resteal range, it does not mean that bet/calling with the entire calling range is +EV. This is different from what you see in the Wizard's ranges, where the worst pushing or calling hand is still +EV, since here we compare ranges vs ranges and not hands vs ranges. This is most obvious if you set the bet amount to your stack size, so you get a push situation where the resteal range of the opponent is actually his call range. You will see here, that your push turns into -EV push at the opponent's range which is wider than you would calculate with Wizard (if you set this range in Wizard as his calling range, you get that you have to push a tighter range). The reason is that the upper part of your range is +EV and compensates the -EV of the lower part when we compare ranges.

      I am not sure if this is a leak in the bet/call range calculations, or not, whether we have to calculate with ranges, or with hands in these situations.
    • muebarek
      Joined: 31.07.2008 Posts: 532
      Hi, I am working on something quite similar at the moment. You seem to be doing a good job at it :) . I'm facing the problem that the unexploitable ranges I get out somewhat depend on the handranking I'm choosing. I am using Karlsson/Sklansky as well atm, but there seems to be the need of different handrankings for raise/calling and reshoving (The raise/calling range has hands in it which don't have sufficient equity to call because some lower hands in the ranking have enough equity so the ones that don't are mistakenly included because of the fixed ranking system)
    • hacacare
      Joined: 01.04.2009 Posts: 2,939
      Hi muebarek,

      Sorry for the late response, I was not too active lately on the forum.

      First I used equity vs random, but in the new one I chose Karlsson/Sklansky, but have not experienced huge differences.

      It would be much better if we could set custom ranges, but it would make the the program way more complicated, beyond on my programming skills :) .
    • 307th
      Joined: 06.01.2011 Posts: 8
      Very interesting thread.

      Here's my take on steal/resteal game. I'll assume it's a HUSNG for simplicity's sake:

      If you're only playing push/fold, and your opponent is calling a Nash range, then it is -cEV to be in the small blind when effective stacks are around 8 bb+, with the loss increasing the bigger the stacks get. Check the Nash Calculator to verify this.

      This means that if you are at 16bb+, and you know your opponent is only playing push/fold, you can minraise 100% of hands from the SB and put your opponent in a -cEV situation instead of yourself.

      So for example: you have 20bb effective stacks and are in the SB. You CAN play push/fold from the sb, pushing 40% of hands and folding the rest. On average you'll lose 0.2bb each small blind if you and your opponent are both playing Nash.

      Or you can minraise 100% of hands. Assuming your opponent is playing push/fold, this will put your opponent in the small blind with ES of 10bb. If they push the Nash range for 10bbs of 56.6% and you call with the Nash range for 10 bbs of 38.5%, then you will on average be gaining 0.1bb each small blind.

      Minraising 100%, and calling with the NE hands, is unexploitably +cEV vs opponents who never call minraises (at least with stacks of 16+bb). That said, it's not optimal - your raise/folds show immediate loss. So my guess would be that the Nash equilibrium would require you to openfold some of your trash. Since you will be raise/folding a smaller % of the time this means your opponent will have to resteal tighter. This makes your raise/folds more profitable. At some point it will make your raise/folds breakeven, which would be the NE.

      Note: since your opponent's restealing range gets tighter, your raise/calling range would have to get tighter too. So an example of a possible NE bet/calling range with ES of 20bb is 90/33, although that's just a random guess on my part.

      Another note: which trash you openfold doesn't matter except for blocking effects if your opponent is only playing push/fold. But if your opponent is calling some of the time (more of a problem in MTTs/SNGs than HUSNGS where you will have position) then it's obviously best to openfold your very worst hands. And, probably better to openfold more than you would if they were only push/folding.

      Third note: Minraising 100% and calling Nash is better than pushing Nash down to around 12bb stacks. If you minraise better (folding some % of your trash) I assume it'd work for slightly lower stacks too.

      Hacacare, that program looks awesome. I tried to download the English one but it said it was no longer available - can it still be downloaded?