A few years back, I built a MC simulation with the following parameters:

  • Betting wasn't simulated
  • Fixed number of players
  • Cards were dealt, and then flop/turn/river
  • The best hand was recorded

After running millions of iterations, this gave a good ranking of initial hands. Other projects got in the way, and I haven't had time to develop it further. What other elements have you found useful in your simulations? What elements would you like to see simulated?

  • I have a similar project with the following additions: - Betting is simulated - Players fold / raise / call based on pre-determined strategies (e.g. CallingStn always calls, Maniac always raises All-in, Nit folds <=2nd pair on flop etc.) - For each MC round, the results are added to each strategy's EV accumulator. The MC simulation can then begin to compare strategies against each other. What I ultimately want to do then is find optimal counter strategies to certain lines. Particularly Heads-up.
    – CjS
    Commented Feb 15, 2012 at 13:49

3 Answers 3


Assuming the purpose of the simulation is to determine a useful ordering of hands, the first thing to know is that there is no one true ordering, due to the non-transitivity of hand strengths. So, all orderings are approximations.

This subject has been tackled by many authors in print. A notably useful approach is in Kill Everyone by Nelson, Streib, and Lee; the authors provide distinct rankings for raising all-in versus calling all-in.

With betting simulated to find best "playable" hands when not expecting to be all-in preflop, this blog post is by far the best approach I've seen to the problem:




I see two big improvement possibilities:

  1. Variable Number of Players: Seeing the results against all possible numbers of opponents for each hand is probably more meaningful than against a single fixed number of opponents.
  2. Other games: It should be fairly easy to adjust this to run the same simulation for Omaha, since the cards are dealt in the same way as Hold'em (except that each player has 4 hole cards). I'd be interested in seeing it applied there. I'd also be interested in seeing similar results for stud variants and hi/lo.

I think you can get most of the effect of betting just by removing bad hands. e.g. someone dealt an off suit 2,7 who isn't the big blind will probably fold. Very rarely the flop comes down 2/2/7 and your current simulation will credit that hand as a win, whereas in reality that hand almost never sees that flop. Removing bad hands pre-flop gives a more accurate value for the remaining hands.

Of course the definition of "bad hand" is very subjective...

  • 1
    Badness of hands is subjective, but you could model that by making badness a stochastic decision. You might do that by taking the absolute badness and multiply it by a random value. If the resulting value is too low, fold the hand. Else, keep it. Commented Jan 25, 2012 at 11:32
  • You are going to run the boards anyway. It is not even worth the effort to exclude the hand. If you run 20 million boards 27o will win some of them.
    – paparazzo
    Commented Aug 31, 2017 at 17:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.