Oranges Omaha5 Hi/Lo Calculator - User Manual
About oRanges Omaha5 Hi/Lo Calculator Pro
The program is an analytical tool for analyzing the 5 card Omaha Hi/Lo poker game.
This tool helps 5 card Omaha Hi/Lo poker players better to understand how frequently range hits specific hand ranks and allows you to calculate the probability of starting hand range to fit a given board
and helps to build your own ranges to significantly increase your skill.
A user-friendly interface will help you to understand the structure of players' ranges and calculate equity.
Equity is calculated both using the Monte Carlo method.
There are built-in expression parsers to help you create and filter input ranges, as well as create custom statistics based on the default statistics.
There is an ability to enable or disable hands that fall within certain statistics to fully analyze the narrowing of ranges by street and much more.
Compatible operating systems: Windows and MacOS
The program has a free 2-day fully functional trial period.
How to activate the trial period?
Light and Dark Look and Feel
The program allows you to select light and dark color themes for application windows elements.
To change the color theme, select Help in the main menu and Light or Dark mode.
Board cards selection
In this block, located in the lower left corner of the program window, you can select board cards.
Board cards can be selected one at a time or can be generated randomly using buttons to the right of the block.
Use F Random, T Random, R Random buttons for generating random 3, 4 or 5 board cards.
If 3 or 4 board cards have been already selected, you can fix them by checking the corresponding Fix checkbox.
When the board cards are fixed, clicking on the T Random and R Random buttons respectively will generate one random card for the turn or river.
Dead cards selection
Dead cards block is designed to remove cards from the deck. You can select dead cards in this block.
If you have already selected board cards, then these cards will not be available for selection.
Entering ranges
To enter a range, you can use the Range field, the range assistant that opens when you press the Range button, or the Hand button when you need to enter a single hand.
You can also import a previously saved range in Monker solver format using the range import button
.
The Range and Filter fields have a context menu, which opens when the right mouse button is pressed.
Undo, Redo, Copy, Paste, Copy Selected menu options are available for the convenience of working with the expression for the range.
If you click the arrow button at the end of the text field, you can restore previously entered ranges in that line.
Values are saved in the list only after the equity value has been successfully calculated.
When you enter a range into the Range field, an expression parser is used that allows you to enter multiple hands according to the rules for composing expressions.
If entered expression syntax is incorrect, it will be highlighted in red.
The expression syntax has a set of rules that must be used to efficiently enter ranges.
Single hand
To indicate a single hand, directly enter 5 cards that make up the hand into the Range field - AsKdTc6h3s, for example.
Multiple hands combinations
To get all hands containing eg A, K, Q and J, enter AKQJ without any suits.
Cards in a hand can be specified with suits.
For example, if you enter AdKQJ, then we get all hands containing Ad and all possible combinations of 3 cards with a rank of K, Q, J of all possible suits.
Suit specifications
To indicate cards of the same suit, you must enclose them in square brackets.
Examples:
[AT]*** will give you all hands containing AT suited and three other cards.
[AT][AT]* will give you a pair of suited A and T, and [QT][87]* will give you all QT87 hands, where QT and 87 are suited and their suits are not the same.
[***]** will give you all hands with at least three suits. * - denotes any rank A,K,Q, ...,2.
[***][**] will give you all hands with three cards of one suit and 2 cards of other suit.
[**][*][*][*] will give you hands with two cards are suited and 3 cards of other different suits.
[AhKh][*][*][*] will give you all hands with AhKh combined with any cards of three distinct suits (c, d, s).
Pairs
QQ*** gives all hands containing at least two queens.
[Q*][Q*]* gives hands with queens of two suits with two other cards of the same suit.
Percentile
17.3% will give the best 17.3% of hands, according to hand rank.
10-23.5% will give the best hands from 10% to 23.5%, according to hand rank.
Cards pattern
* = Cards of all ranks: A, K, Q, ..., 2.
B = big cards: A, K, Q, J.
R = broadway cards: A, K, Q, J, T.
F = face cards, K, Q, J.
M = medium cards, T, 9, 8, 7.
Z = small cards, 6, 5, 4, 3, 2.
L = low cards, A, 2, 3, 4, 5, 6, 7, 8.
N = no low cards, K, Q, J, T, 9.
W = wheel cards, A, 2, 3, 4, 5.
Y = baby cards, 2, 3, 4, 5.
[ ] = grouping of suited cards.
For each of the four cards, you can enter a range. For example, A-T*** will give you A****, K****, Q****, J****, T**** .
For each of the four cards, you can enter an open range. For example, Q+**** will give you A****,K****,Q****.
You can combine ranges for all five cards. For example, K-TQ+9-73+2 will give you hands where the first card has a rank between K and T,
the second card has a rank greater than or equal to Q, the third is between 9 and 7, the fourth card has a rank greater than or equal to 3 and the fifth card has a rank 2.
Additional filters
Each additional filter must be separated from the main pattern by a slash. Filter syntax: RangePattern/filter.
For example, BB***/op.
Pair filters
np = no pair, unpaired hands (contains XYZR hands).
nt = no trips (contanins XYZR,XXYZ,XXYY hands).
nq = no quads (contains XYZR,XXYZ,XXYY,XXXY hands).
op = one pair, exact pair (contains XXZR hands).
alop = at least one pair, one pair or more (contains XXXX, XXXY, XXYY and XXYZ hands).
tp = two pair, exactly two pair (contains XXYY hands).
tr = trips, exact trips (contains XXXY hands).
altr = at least trips (contains hands XXXX and XXXY).
tw = trips and pair (contains XXXYY and XXYYYY hands).
qu = quads, exact quads (contains XXXXX hands).
Suit filters
ss = single suited, single suited hands only (contains xxyzw hands).
ds = double suited hands, double suited hands only (contains xxyyz hands).
ts = three cards of the same suit, hands with exactly three cards of the same suit (contains xxxyz hands).
alts = at least three cards of the same suit (contains hands xxxxx and xxxyz).
td = double suited cards and three cards of the same suit (contains hands xxxyy).
fs = four cards of the same suit (contains hands xxxxy).
mt = monotone hands, 1-suited hands only (contains xxxxx hands).
Rundown filters
rd00 = rundown, hand cards are in consecutive rank order.
rdAB = rundown with gaps, hand cards are in consecutive rank order with gaps A and B.
If A = 0 or B = 0, then there is no any gap.
Examples:
rd01 consecutive cards in a hand with one hole and a gap of 1 rank - AcKdJdTc9c, JhTc9c7d6h.
rd03 consecutive cards in a hand with one hole and a gap of 3 ranks - AcKd9d8c7h,Jh7h6s5s4c
rd13 consecutive cards in a hand with two holes and gaps of ranks 1 and 3 - AcKdJd7c6c, JdTh8s4c3h
Filters added since version 1.0.0.7
suR1R2 = hands contain suited cards of specified ranks R1 and R2 (R1 > R2). Ex: */suAT, */suQT.
ofR1R2 = hands contain offsuited cards of specified ranks R1 and R2 (R1 > R2). Ex: */ofAT, */ofQT.
ksR = keep single rank; hands contain a single card of the specified rank R. Ex: */ksK, */ksT.
krR = keep rank; hands contain a card of the specified rank R. Ex: */krK, */krT.
kcRs = keep card; hands contain a card of the specified rank R and suit s. Ex: */kcAs, */kcTd.
kpR1R2 = keep pair ranks; hands contain 2 cards of specified ranks R1 and R2 (R1 > R2). Ex: */kpAT, */kpQT.
rrR = remove rank; hands don't contain a card of the specified rank R. Ex: */rrK, */rrT.
rcRs = remove card; hands don't contain a card of the specified rank R and suit s. Ex: */rcAs, */rcTd.
rpR1R2 = remove pair ranks; hands don't contain 2 cards of specified ranks R1 and R2 (R1 > R2). Ex: */rpAT, */rpQT.
Filters added since version 1.0.0.110
Since version 110, a group of filters has been added to identify hands belonging to certain statistics.
All of these filters begin with a capital letter F and the filter names are case-sensitive.
These filters work on the flop and turn only!
Filters can be used in any range input field and most effective in multiway tool where hands from statistics are not shown explicitly. Example for 10% range:
10%/FSF,10%/F4k,10%/FFH,10%/Ff,10%/FST,10%/Fs,10%/F2p
FSF = Straight Flush Ex: 10%/FSF board: KcJcTc.
F4k = Four of a kind
FFH = Full House
FNFH = Nut Full House
FnFH = no Nut Full House hands
Ff = flush
Fnf = nut flush
F2f = 2nd flush
F3f = 3rd flush
Fwf = weak flush
Fbnf = blocker nut flush
Fb2f = blocker 2nd flush
Fb3f = blocker 3rd flush
Fbwf = blocker weak flush
FST = Straight
FNST = Nut Straight
F2ST = 2nd Straight
F3ST = 3rd Straight
Fs = set
Fns = nut set
F2s = 2nd set
F3s = 3rd set
F3k = three of a kind
F2p = two pair
Ft2p = top two pair
Ftb2p = top bottom pair
Fb2p = bottom two pair
Fop = overpair
Ftp = top pair
Fbtp = below top pair
Fmp = middle pair
Fbmp = below middle pair
F3p = 3rd pair
Fb3p = below 3rd pair
FSD6 = Straight Draw 6 outs
FSD5 = Straight Draw 5 outs
FSD4 = Straight Draw 4 outs
FSD3 = Straight Draw 3 outs
FSD2 = Straight Draw 2 outs
FSD1 = Straight Draw 1 outs
FFD = Flush Draw (2 cards)
FNFD = Nut Flush Draw
F2FD = 2nd Flush Draw
F3FD = 3rd Flush Draw
FWFD = Weak Flush Draw
FBDFD = BackDoor Flush Draw
FBNFD = Blocker Nut Flush Draw
FB2FD = Blocker 2nd Flush Draw
FB3FD = Blocker 3rd Flush Draw
Filters added since version 2.0.0.113
P10 = 10% of the range sorted by rank
P15 = 15% of the range sorted by rank
P20 = 20% of the range sorted by rank
P25 = 25% of the range sorted by rank
P30 = 30% of the range sorted by rank
P35 = 35% of the range sorted by rank
P40 = 40% of the range sorted by rank
P45 = 45% of the range sorted by rank
F50 = 50% of the range sorted by rank
F55 = 55% of the range sorted by rank
F60 = 60% of the range sorted by rank
F65 = 65% of the range sorted by rank
F70 = 70% of the range sorted by rank
F75 = 75% of the range sorted by rank
F80 = 80% of the range sorted by rank
F85 = 85% of the range sorted by rank
F90 = 90% of the range sorted by rank
Low = Low combos
LD = Low Draw
Import/Export ranges
To export the range that is selected in the table, you can click on the right small button
, select a file name in the pop-up window to save.
Hands from the current range will be saved in the format hand@weight and separated by a comma. Example:
QhQs3s2h2s@100,QdQs3s2h2s@45,QcQs3s2h2s@100,AhAs3s2h2s@87,KdAs3s2h2s@5,...
To import a range, you can click on the small left button
and select the file name in the pop-up window.
You can import both previously saved ranges and ranges in the Monker Solver format.
Ranges from Monker Solver are recognized in the following formats:
AhAs3s2h2s@87,KdAs3s2h2s@5,AdAs3s2h2s@50,AcAs3s2h2s@87
and
Ah4h3s2h2s,0.085,8764
6h5h3s2h2s,1,9099
Ah5h3s2h2s,0.025,8893
Range Operations
The concept of a set is one of the initial and basic concept of mathematics.
A set is usually presented as an object formed by collecting any objects into a single whole, including, possibly, the sets themselves. A set is nothing more than an unordered collection that has no duplicate elements.
You can perform various operations on sets. Important operations that are performed on sets are union, intersection and subtraction.
Here's an example:
Let us have 2 sets of natural numbers: A = {1, 2, 3, 4} and B = {3, 4, 5, 6}.
The Union of sets A and B is the set A | B = {1, 2, 3, 4, 5, 6}, consisting of elements included in A or B without repetition.
The Intersection of sets A and B is the set A & B = {3, 4}, consisting of elements that appear simultaneously in both A and B.
The Subtraction a set B from A is a set A ! B = {1, 2}, consisting of elements in A that are not in B.
Considering ranges as sets of hands, one can introduce operations on these sets.
A | B = gives you all hands that are in A OR B (Union Operator). It's the same as A, B.
A & B = gives you all the hands that are in A AND B (Intersection operator).
A ! B = gives you all hands that are in A but NOT in B (Subtraction operator).
() = Parentheses can be used to group expressions. For example, A! ((B | C) & D).
You can use all operators when creating a complex expression. For example, (AA, KK | (QQ & dd**)) ! 20%.
Range Assistant
When you click on the button Range, a window appears in which you can select ranges in a convenient graphical interface, apply filters
and compose complex expressions for the range.
In the Range section, you can use the slider to set the lower and upper limits of the percentile.
In the Mask section, you can set ranges of ranks for the cards of the hand and specify their suit in dropdown list.
Use your mouse to include or exclude the ranks of the cards you want hands in your range have.
Ranks can be selected or deselected without releasing the mouse button.
You can also specify a suit pattern using Distinct suit groups dropdown list.
In the sections Pair filters, Distinct Suit filters, Additional Suit filters, Rundown, functionally described above, you can combine existing filters.
When you select filters, an expression is created in the Hand group field that matches the selected criteria.
Distinct Suit filters contains all possible combinations of various suit combinations of a 5-card hand, i.e. any hand falls into one and only one filter from this group of filters.
In the Hand group field, expressions are created using basic filters.
If you would like to create a complex expression using the operations of union, intersection or subtraction from Hand group field,
use buttons Add, Union, Intersection, Substration and brackets to transfer the range from the Hand group field to the Final range field,
creating a new complex expression as needed.
Any expression from range assistant is exported to the main window only from the Final range field.
This means that you have to always transfer an expression from Hand group field to Final range field using at least the Add button,
even if it is a simple expression in Hand group field, created with basic filters.
If entered expression is incorrect, it will be highlighted in red.
When you click on Ok, the created expression will be exported into the Range field of the main window.
If the Final range field is invalid or empty, then the import will fail.
View range
It is possible to view the hands of the selected range.
When you click on the
button, a window appears in which you can view all hands in selected range.
Range tables have columns - Rank, Hands, Weight, Distinct rank, Hand group, %.
Range tables have columns - Rank, Hands, Weight, Distinct rank, Hand group, %.
All 2 598 960 possible hands are ranked in descending order by equity value against a random range in a heads-up situation and are ranked accordingly.
So the hand A♣A♥4♥3♦2♣ has a rank - 1,
and the hand 9♠2♣2♦2♥2♠ has a rank - 2 598 960.
The Hands column lists all hands from the range. If an additional filter is specified or postflop filters are enabled, then hands corresponding
to the selected filters from the initial range will be shown.
The Weight column shows the weights of the hands. By default, the weights of all hands are 1 (100%). They can be changed postflop by setting the
percentage of hands used from certain statistics. At the time of writing this document, it is not possible to assign a hand weight preflop.
Many hands are equivalent in suit permutations and order within a betting round. This property has a name - suit isomorphism.
For example, hands
A♦A♥T♦T♥9♣,
A♦A♠T♦T♠9♣,
A♥A♠T♥T♠9♣,
are mapped to the same preflop index.
A special algorithm calculates the indices of each hand and compares them with a unique index, which is indicated in the Distinct rank column.
There are 134 459 unique indices in total.
All suit isomorphic hands can be divided into groups according to the number of suited cards in the hand.
Suited cards in a hand are indicated by square brackets. Suited cards of different suits are marked with different square brackets.
The Hand group column indicates the group to which the hand belongs.
The number of hands and the number of unique hands in the selected range are shown above the table.
! If you right-click on any hand in the table, you can copy the hand in text format to the clipboard, after which it can be pasted into one of the fields.
Also it is possible to view the unique hand groups of the selected range and number of these hands.
When you click on the
button, a window appears in which you can view distinct hands in selected range.
The table has columns - Distinct rank, Hand group, #, Rank%.
The % column shows the Percentile value, which is calculated using the formula 100.0*HandRank/2 598 980, where HandRank is a value from 1st column Rank.
Temporarily save a range for use in expressions
The program has the ability to temporarily save entered ranges and use them in new expressions.
To save ranges, use 6 buttons that are located under the fields for entering ranges.
When you click on any button, a pop-up window will appear in which you can select one of the 6 entered and correct ranges. The entered range will be stored in this cell.
To use the entered range in expression, you should use the expression */sr1 for the range which was saved using 1st button,
*/sr2 for the range which was saved using 2nd button etc, */sr3, */sr4, */sr5.
You can construct an new expression using temporarily stored ranges. Examples:
*/sr1, */sr2 or *!(*/sr1) or */sr1&*/sr2 etc.
It is not necessary to use * in */sr1. You can use any correct range. For example, 1%/sr1 or A/sr1.
This feature can be very useful if ranges use complex expressions that take a long time to recognize.
You can wait for recognition once, assign the range to a button (lets say button 5), and then use */sr5 in other expressions,
which can significantly improve range recognition performance.
Statictics
If you click the button with stripes at the end of the range line
, you will receive data on how the selected range falls into the board:
The program has two blocks of statistics, which calculate what rank the hands from the ranges receive on current street.
These blocks consist of 4 sections, separated from each other by gaps and marked with different colors and filter activation buttons.
Statistics are divided into 4 blocks: «Made hands», «Draws hands», «Draws and made hands» and «User statistics».
«User statistics» appears only postflop.
The first block is designed to evaluate the rank of 5-card made hands, adopted in 5 card Omaha poker. Marked in blue.
The second block is for evaluating draws hands from the ten (10) 2-card hands that each 5 card hand has.
If at least one 2-card hand forms a draw hand, then the 5-card hand is considered to be a draw hand. Marked in green.
The third block is for evaluating draws and made hands you get from the ten(10) 2-card hands that each 5 card hand has.
If at least one 2-card hand forms a draws and made hand, then the 5-card hand is considered to be a draws and made hand. Marked in purple.
The fourth block is for user statistics, which are created using the User Statistics tool. This tool will be described below.
User statistics can be created based on the default statistics by creating expressions. Marked in red.
Each statistics from «Made hands» block is a partition of the set of all hands in the selected range and every hand in the range is included in one and only one of the statistics of this block.
In other words, the statisticss from this block do not have shared hands, i.e. the intersection of any two statistics from this block is empty.
Each hand which is included in one of the statistics of blocks «Draws», «Draws and made hands» will be definitely included in some «Made hands» statistics, and possibly in other statistics. The statistics of «Draws», «Draws and made hands» have usually intersections with the statistics of other blocks.
This means that some hands can be included in several statistics of different blocks.
Statistics is not shown if it doesn't contain any hand. Empty statistics are not shown!
Next card Equity
Sometimes it's useful to check how the Equity will be changed on the next street.
The tool Next Card Equity is designed for these purposes.
Press the Next card Equity button to perform the calculation.
The table shows all possible cards on next street and how they change the Equity.
Cards marked in green increase Equity of the range, and in red - reduce it.
This tool works only on flop and turn.
After the calculation is complete, you can sort the values шn each column in ascending or descending order.
To do this, click on the column header.
Range File Tool
Range File Tool is designed for finding union, intersection and subtraction of ranges in Monker solver format.
Select the Main menu -> Tools -> Range File Tool or press Ctrl + W to open the tool.
Select files with ranges using the Select buttons.
If the option Ignore weights is checked, then the hand weights in the file are automatically considered equal to 100.
Select an operation Union, Intersection or Substraction and click the Process button.
Settings
You can change the default values for the number of Mote Carlo iterations for calculating preflop statistics and the number of iterations for calculating equity.
Default iterations value for calculating preflop statistics is 100 000 (Min 100 000).
Default iterations value for calculating equity is 1 000 000 (Min 100 000).
It is also possible to set the calculation time for Multiway Equity Calculator and Next Card Equity.
Default calculation time for Multiway Equity Calculator is 60 sec (minimum 10)
Default calculation time for Next Card Equity is 120 sec (minimum 10)
It is possible to specify default folders that will be opened automatically when Import/Export ranges in Monker format.
If you press Default button you can resore default values.
For the settings to take effect, press OK button.
It is possible to set the number of threads for calculating equity (full enumeration), equity distribution, nextcard faster.
It is recommended to set the number of threads equal to the number of logical threads or the number of logical threads multiplied by 2. To set these values, use the x1 and x2 buttons.
It is quite difficult to predict the exact increase in performance for any computer, but the performance increases on average several times.