OpenHoldem:EndUserDocumentation:Symbols

From Maxin Wiki

Jump to: navigation, search

Contents

[edit] Introduction

This page is largely based on the information originally written by Ray Bornert and extended to include OpenHoldem-specific symbols. See here for the original WinHoldem symbols page: http://www.winholdem.net/help/help-formula.html#symbols

[edit] Symbols

[edit] General symbols

Symbol Meaning
ismanual true if you're in manual mode, false otherwise
isppro true if you're connected to a ppro server
site 0=user/ppro 1=scraped
nchairs the integer value for the Table Map symbol s$nchairs
isbring true if OpenHoldem is attached to a bring client window
session the current logging instance (0-9)
handnumber the site hand number if available
version returns the version number of OpenHoldem that is currently running

[edit] Table Map symbols

Symbol Meaning
sitename$abc true if user defined string abc appears within the Table Map symbol s$sitename
network$def true if user defined string def appears within the Table Map symbol s$network
swagdelay autoplayer delay in milliseconds between swag keystrokes and button click
allidelay autoplayer delay in milliseconds between alli slider jam and button click
swagtextmethod the site interpretation for swag edit text (Table Map symbol) 1=f$srai 2=f$srai+call 3=f$srai+call+currentbet

[edit] Formula file

Symbol Meaning
rake percentage amount added/subtracted to/from the pot
nit number of iterations used to calculate the prwin/prtie/prlos and associated symbols. For an analysis of how many iterations to use, go here: OpenHoldem:EndUserDocumentation:Iterations and Std Deviation
bankroll the user defined real world bankroll

[edit] Limits

Symbol Meaning
bblind the big blind amount
sblind the small blind amount
ante the current pre-deal ante requirement
lim the current table limit 0=NL 1=PL 2=FL
isnl (lim==0)
ispl (lim==1)
isfl (lim==2)
sraiprev the difference between the two largest unique wagers
sraimin Scraped - (currentbet+call); PokerPro - the greater of bet and the current raise
sraimax balance-call
istournament true if a tournament table is detected


[edit] Hand Rank

Symbol Meaning
handrank one of the following based on your selected option
handrank169 your pocket holdem hand rank 1-169 (See: http://www.winholdem.net/handrank.txt)
handrank2652 your pocket holdem hand rank 12-2652
handrank1326 your pocket holdem hand rank 6-1326 (handrank2652/2)
handrank1000 your pocket holdem hand rank 4-1000 (1000*handrank2652/2652)
handrankp 2652 / (1+nopponents)

[edit] Chairs

Symbol Meaning
chair your chair number 0-9 ... 0 is usually top right
userchair user chair number (0-9)
dealerchair dealer chair number (0-9)
raischair raising chair number (0-9)
chair$abc player abc chair number (0-9); -1 if not found
chairbit$abc player abc chairbit (1 << chair$abc); 0 if not found


[edit] Rounds / Positions

Symbol Meaning
betround betting round (1-4) 1=preflop, 2=flop, 3=turn, 4=river
br abbreviation for betround
betposition your bet position (1=sblind,2=bblind,...,nplayersdealt=dealer). Betposition will change as players fold in front of you.
dealposition your deal position (1=sblind,2=bblind ... nplayersdealt=dealer). Dealposition will not change as players fold.
originaldealposition a memory of deal position which retains its value through the hand, even if the user folds (OH 1.8.3)
callposition your numbered offset from the raising player (who is 0)
seatposition your seat position relative to the dealer
dealpositionrais the deal position of the raising player (1-10)
betpositionrais the bet position of the raising player (1-10)

[edit] Probabilities

Symbol Meaning
prwin the probability of winning this hand (0.000 - 1.000)
prlos the probability of losing this hand (0.000 - 1.000)
prtie the probability of pushing this hand (0.000 - 1.000)
prwinnow probability that all opponents have a lower hand right now
prlosnow probability that any opponents have a higher hand right now
random random number between (0.000-1.000). Value is recalculated each time symbol appears in formula.
randomhand random number between (0.000-1.000) for the hand. Value is calculated only once per hand.
randomround random number between (0.000-1.000) for the current round. Value is calculated only once in current round.
randomround1 - randomround4 random number between (0.000-1.000) for round 1 - 4. Value is calculated only once in that round.

[edit] Statistics

The symbols to calculate the risk of ruin have never been implemented due to lack of documentation and lack of practical relevance. As of OpenHoldem 2.0.0 the risk-of-ruin-symbols are officially abolished and removed from the code-base.

The original documentation can be found here:

[edit] Formulas

Symbol Meaning
f$name reference the specified formula


[edit] P Formula

Symbol Meaning
defcon defense level used in P formula. Determines the number of analyzer opponents (0.000=maxoffense 1.000=maxdefense) (the defense level dialog uses values 0-10)
isdefmode true when defcon is at max
isaggmode true when defcon is at min


[edit] Chip Amounts

Symbol Meaning
balance your balance
balance0 - balance9 specific player/chair balance
stack0 - stack9 sorted playersplaying balances from 0=biggest to 9=smallest
currentbet your current amount of chips in play
currentbet0 - currentbet9 specific player/chair currentbet
call the amount you need to call
bet the amount of a single initial bet or raise for current round
bet1 - bet4 the amount of a single initial bet or raise for round 1 - round 4
pot the total amount of chips in play including player bets
potcommon the total amount of chips in the middle
potplayer the total amount of chips in front of all players
callshort total amount that will be added to the pot if all players call
raisshort callshort + bet * nplayersplaying

[edit] Number of Bets

Symbol Meaning
nbetstocall total number of additional bets required to call.
nbetstorais total number of additional bets required to raise.
ncurrentbets total number of bets currently in front of you.
ncallbets total number of bets you would have on the table if you call
nraisbets total number of bets you would have on the table if you raise


[edit] List Tests

Symbol Meaning
islist0 - islist99 true if your hand is in the numbered (0-99) list
islistcall true if your hand is in list 0
islistrais true if your hand is in list 1
islistalli true if your hand is in list 7
isemptylistcall true if the call list is empty
isemptylistrais true if the rais list is empty
isemptylistalli true if the alli list is empty
nlistmax highest list number in which your hand is listed
nlistmin lowest list number in which your hand is listed


[edit] Poker Values

Symbol Meaning
pokerval absolute poker value for your 5 card hand
pokervalplayer absolute poker value for your 2 card pocket hand only.
pokervalcommon absolute poker value for the common cards
pcbits bit list of where your pocket cards are used in your 5 card hand
npcbits number (0-2) of your pocket cards used in your 5 card hand


[edit] Poker Value Constants

Symbol Meaning
hicard 1<< 0 (2 ** 0)
onepair 1<<24 (2 ** 24)
twopair 1<<25 (2 ** 25)
threeofakind 1<<26 (2 ** 26)
straight 1<<27 (2 ** 27)
flush 1<<28 (2 ** 28)
fullhouse 1<<29 (2 ** 29)
fourofakind 1<<30 (2 ** 30)
straightflush 1<<31 (2 ** 31)
royalflush 0x800edcba
fiveofakind 0xff000000


[edit] Hand Tests

Symbol Meaning
$CCc see the #Hand Symbols subheading for details
ishandup true if your hand has gone up a level (i.e. from 1 pair to 2 pair)
ishandupcommon true if common hand has gone up a level (i.e. from 1 pair to 2 pair)
ishicard true when you have hicard hand
isonepair true when you have one pair
istwopair true when you have two pair
isthreeofakind true when you have three of a kind
isstraight true when you have a straight
isflush true when you have a flush
isfullhouse true when you have a full house
isfourofakind true when you have four of a kind
isstraightflush true when you have a straight flush
isroyalflush true when you have a royal flush
isfiveofakind true when you have a five of a kind

[edit] Pocket Tests

Symbol Meaning
ispair true when your two dealt pocket cards are rank equal (0-1)
issuited true when your two dealt pocket cards are suit equal (0-1)
isconnector true when your two dealt pocket cards are rank adjacent (0-1)


[edit] Pocket / Common Tests

Symbol Meaning
ishipair true when you have hi pair (0-1)
islopair true when you have lo pair (0-1)
ismidpair true when you have mid pair (0-1)
ishistraight true when you have the highest straight possible
ishiflush true when you have the highest flush possible

[edit] Players, Friends, Opponents

Note that the "friends" symbols are not interpreted the same way as they are in WinHoldem. OpenHoldem does not include any automated collusion capabilities, and thus "friends" has been redefined in OpenHoldem to mean you only. Thus if you are seated, nfriendsseated will resolve to 1. If you are not seated, nfriendsseated will resolve to zero.

For information related to the symbols below that end in 'bits, please see here: http://www.maxinmontreal.com/forums/viewtopic.php?f=173&t=5450

Symbol Meaning
nopponents P formula value for the userchair iterator
nopponentsmax maximum allowable value for nopponents (1-22 default=9)
nplayersseated number of players seated (including you) (0-10)
nplayersactive number of players active (including you) (0-10)
nplayersdealt number of players dealt (including you) (0-10)
nplayersplaying number of players playing (including you) (0-10)
nplayersblind number of players blind (including you) (0-10)
nfriendsseated 1 if you are seated, 0 otherwise (0-1)
nfriendsactive 1 if you are active, 0 otherwise (0-1)
nfriendsdealt 1 if you are dealt, 0 otherwise (0-1)
nfriendsplaying 1 if you are playing, 0 otherwise (0-1)
nfriendsblind 1 if you are in a blind, 0 otherwise (0-1)
nopponentsseated number of opponents seated (not including you) (0-9)
nopponentsactive number of opponents active (not including you) (0-9)
nopponentsdealt number of opponents dealt (not including you) (0-9)
nopponentsplaying number of opponents playing (not including you) (0-9)
nopponentsblind number of opponents blind (not including you) (0-9)
nopponentschecking number of opponents playing with a zero current bet equal to the previous bettor (0-9)
nopponentscalling number of opponents playing with a non-zero current bet equal to the previous bettor (0-9)
nopponentsraising number of opponents playing with a current bet greater than the previous bettor (0-9)
nopponentsbetting number of opponents playing with a non zero current bet (0-9)
nopponentsfolded number of opponents that have folded this hand (0-9)
nplayerscallshort number of players that must call to stay in the hand
nchairsdealtright number of chairs dealt before your chair
nchairsdealtleft number of chairs dealt after your chair
playersseatedbits bits 9-0: 1=seated 0=unseated
playersactivebits bits 9-0: 1=active 0=inactive
playersdealtbits bits 9-0: 1=dealt 0=notdealt
playersplayingbits bits 9-0: 1=playing 0=notplaying
playersblindbits bits 9-0: 1=blind 0=notblind
opponentsseatedbits bits 9-0: 1=seated 0=unseated
opponentsactivebits bits 9-0: 1=active 0=inactive
opponentsdealtbits bits 9-0: 1=dealt 0=notdealt
opponentsplayingbits bits 9-0: 1=playing 0=notplaying
opponentsblindbits bits 9-0: 1=blind 0=notblind
friendsseatedbits bits 9-0: 1=seated 0=unseated, you only
friendsactivebits bits 9-0: 1=active 0=inactive, you only
friendsdealtbits bits 9-0: 1=dealt 0=notdealt, you only
friendsplayingbits bits 9-0: 1=playing 0=notplaying, you only
friendsblindbits bits 9-0: 1=blind 0=notblind, you only

[edit] Flags

Symbol Meaning
fmax highest numbered flag button pressed
f0 - f9 true if flag 0 - flag 9 button is pressed false otherwise
fbits flag button bits 9-0 - 1=pressed 0=notpressed


[edit] Common Cards

Symbol Meaning
ncommoncardspresent number of common cards present (normal or highlighted)
ncommoncardsknown number of common cards known (normal not highlighted)
nflopc short for ncommoncardsknown


[edit] (Un)known Cards

Symbol Meaning
nouts the total number of unseen single cards that if dealt to the board might put your hand in the lead. to be counted as an out, the card must be able to bump your level and your new level must be higher than the resulting common level
ncardsknown total number of cards you can see (yours and commons)
ncardsunknown total number of cards you cannot see (deck and opponents)
ncardsbetter total number of single unknown cards that can beat you, e.g. if the board is four suited in hearts, and you have two spades, then ncardsbetter will be at least 9, because of the possible flush.


[edit] nhands

Symbol Meaning
nhands total possible number of two-card hands using the unseen cards (nhandshi+nhandslo+nhandsti)
nhandshi number of hands that can beat you in a showdown right now
nhandslo number of hands that you can beat in a showdown right now
nhandsti number of hands that can tie you in a showdown right now


[edit] Flushes / Straights / Sets

Symbol Meaning
nsuited total number of same suited cards you have (1-7)
nsuitedcommon total number of same suited cards in the middle (1-5)
tsuit specific card suit for nsuited (1-4)
tsuitcommon specific card suit for nsuitedcommon (1-4)
nranked total number of same ranked cards you have (1-4)
nrankedcommon total number of same ranked cards in the middle (1-4)
trank specific card rank for nranked (2-14)
trankcommon specific card rank for nrankedcommon (2-14)
nstraight total number of connected cards you have (1-7)
nstraightcommon total number of connected common cards (1-5)
nstraightfill total number of cards needed to fill a straight (0-5)
nstraightfillcommon total number of cards needed to fill a common straight (0-5)
nstraightflush total number of suited connected cards you have (1-7)
nstraightflushcommon total number of suited connected common cards (1-5)
nstraightflushfill total number of cards needed to fill a straightflush (0-5)
nstraightflushfillcommon total number of cards needed to fill a common straightflush (0-5)

[edit] Rank Bits (aces are hi and lo)

Symbol Meaning
rankbits bit list of card ranks (yours and commons)
rankbitscommon bit list of card ranks (commons)
rankbitsplayer bit list of card ranks (yours)
rankbitspoker bit list of card ranks (pokerval)
srankbits bit list of suited card ranks (yours and commons tsuit)
srankbitscommon bit list of suited card ranks (commons tsuitcommon)
srankbitsplayer bit list of suited card ranks (yours tsuit)
srankbitspoker bit list of suited card ranks (pokerval tsuit)


[edit] Rank Hi (aces are hi)

Symbol Meaning
rankhi highest card rank (14-2) (yours and commons)
rankhicommon highest card rank (14-2) (commons)
rankhiplayer highest card rank (14-2) (yours)
rankhipoker highest card rank (14-2) (pokerval)
srankhi highest suited card rank (14-2) (yours and commons tsuit)
srankhicommon highest suited card rank (14-2) (commons tsuitcommon)
srankhiplayer highest suited card rank (14-2) (yours tsuit)
srankhipoker highest suited card rank (14-2) (pokerval tsuit)


[edit] Rank Lo (aces are hi)

Symbol Meaning
ranklo lowest card rank (14-2) (yours and commons)
ranklocommon lowest card rank (14-2) (commons)
rankloplayer lowest card rank (14-2) (yours)
ranklopoker lowest card rank (14-2) (pokerval)
sranklo lowest suited card rank (14-2) (yours and commons tsuit)
sranklocommon lowest suited card rank (14-2) (commons tsuitcommon)
srankloplayer lowest suited card rank (14-2) (yours tsuit)
sranklopoker lowest suited card rank (14-2) (pokerval tsuit)


[edit] Time

Symbol Meaning
elapsed time in seconds since sitting down
elapsedhand time in seconds since end of previous hand
elapsedauto time in seconds since autoplayer took action
elapsedtoday time in seconds since midnight GMT
elapsed1970 time in seconds since 1970-01-01 00:00:00 GMT (THURSDAY)
clocks number of cpu clocks since the last scrape
nclockspersecond number of cpu clocks per second
ncps number of cpu clocks per second


[edit] Autoplayer

Symbol Meaning
myturnbits bits 43210 correspond to buttons KARCF (check alli rais call fold).

(bit 4 (check) only for OH 2.0.0+)

ismyturn (myturnbits & 7) (rais or call/chec or fold)
issittingin true when you are not being dealt out
issittingout true when you are being dealt out
isautopost true when you are autoposting
isfinalanswer true when autoplayer preparing to act; false any other time.

[edit] History

Symbol Meaning
nplayersround1 - nplayersround4 number of players that began betting round 1 - round 4
nplayersround number of players that began the current betting round
prevaction record of previously attempted autoplayer action. (-1=fold 0=chec 1=call 2=rais 3=swag 4=alli)
didchec the number of times the autoplayer has checked during the current round (*)
didcall the number of times the autoplayer has called during the current round (*)
didrais the number of times the autoplayer has raised during the current round (*)
didswag the number of times the autoplayer has swag'd during the current round (*)
nbetsround1 - nbetsround4 the largest number of bets in front of any player during round 1- round 4
nbetsround the largest number of bets in front of any player right now
didchecround1 - didchecround4 the number of times the autoplayer has checked during round 1 - round 4 (*)
didcallround1 - didcallround4 the number of times the autoplayer has called during round 1 - round 4 (*)
didraisround1 - didraisround4 the number of times the autoplayer has raised during round 1 - round 4 (*)
didswaground1 - didswaground4 true if userchair swag'd during round 1 - round 4 (*)

(*) These symbols indicate only autoplayer-actions; they get not affected by human interaction e.g. on ManualMode.

[edit] RON / RUN

These symbols report the total number of possible river endings for the opponent (ron$) and the user (run$). A value of zero means that type of poker hand is not possible. Any non-zero value means that type of poker hand will be seen that many times.

Symbol Meaning
ron$royfl river opponent number : possible royal flush
ron$strfl river opponent number : possible straight flush
ron$4kind river opponent number : possible four of a kind
ron$fullh river opponent number : possible full house
ron$flush river opponent number : possible flush
ron$strai river opponent number : possible straight
ron$3kind river opponent number : possible three of a kind
ron$2pair river opponent number : possible two pair
ron$1pair river opponent number : possible one pair
ron$hcard river opponent number : possible high card
ron$total river opponent number : sum of all possible river endings
ron$pokervalmax the maximum possible pokerval for the opponent
ron$prnuts opponent chances of hitting the nuts on or before the river
ron$prbest opponent chances of hitting pokervalmax on or before the river
ron$clocks total number of cpu clocks used to calculate the ron$ symbols
run$royfl river user number : possible royal flush
run$strfl river user number : possible straight flush
run$4kind river user number : possible four of a kind
run$fullh river user number : possible full house
run$flush river user number : possible flush
run$strai river user number : possible straight
run$3kind river user number : possible three of a kind
run$2pair river user number : possible two pair
run$1pair river user number : possible one pair
run$hcard river user number : possible high card
run$total river user number : sum of all possible river endings
run$pokervalmax the maximum possible pokerval for the user
run$prnuts user chances of hitting the nuts on or before the river
run$prbest user chances of hitting pokervalmax on or before the river
run$clocks total number of cpu clocks used to calculate the run$ symbols


[edit] Versus symbols

Symbol Explanation
vs$nhands Total possible number of opponent hands
vs$nhandshi Number of opponent hands that have higher river chances
vs$nhandsti Number of opponent hands that have equal river chances
vs$nhandslo Number of opponent hands that have lower river chances
vs$prwin Probability (0.000 - 1.000) of winning versus all possible opponent hands
vs$prtie Probability (0.000 - 1.000) of chopping versus all possible opponent hands
vs$prlos Probability (0.000 - 1.000) of losing versus all possible opponent hands
vs$prwinhi Probability (0.000 - 1.000) of winning versus higher opponent hands
vs$prtiehi Probability (0.000 - 1.000) of chopping versus higher opponent hands
vs$prloshi Probability (0.000 - 1.000) of losing versus higher opponent hands
vs$prwinti Probability (0.000 - 1.000) of winning versus equal opponent hands
vs$prtieti Probability (0.000 - 1.000) of chopping versus equal opponent hands
vs$prlosti Probability (0.000 - 1.000) of losing versus equal opponent hands
vs$prwinlo Probability (0.000 - 1.000) of winning versus lower opponent hands
vs$prtielo Probability (0.000 - 1.000) of chopping versus lower opponent hands
vs$prloslo Probability (0.000 - 1.000) of losing versus lower opponent hands
vs$x$prwin Probability (0.000 - 1.000) of winnning versus hand list x
vs$x$prlos Probability (0.000 - 1.000) of losing versus hand list x
vs$x$prtie Probability (0.000 - 1.000) of a tie versus hand list x

[edit] History symbols

Symbol Explanation
hi_<sym>x (x=1-4) *the value of the symbol <sym> as of your last turn in betting round x. Example: hi_prwin1 would return prwin as of your last turn in br1.

Valid values for <sym> are:

  • PROBABILITIES: prwin, prlos, prtie
  • CHIP AMOUNTS: balance, balance0, balance1, balance2, balance3, balance4, balance5, balance6, balance7, balance8, balance9, stack0, stack1, stack2, stack3, stack4, stack5, stack6, stack7, stack8, stack9
  • POKER VALUES: pokerval, pokervalplayer, pokervalcommon, pcbits, npcbits
  • HAND TESTS: ishandup, ishandupcommon, ishicard, isonepair, istwopair, isthreeofakind, isstraight, isflush, isfullhouse, isfourofakind, isstraightflush, isroyalflush, isfiveofakind
  • POCKET/COMMON TESTS: ishipair, islopair, ismidpair, ishistraight, ishiflush
  • (UN)KNOWN CARDS: nouts, ncardsbetter
  • NHANDS: nhands, nhandshi, nhandslo, nhandsti, prwinnow, prlosnow
  • FLUSHES SETS STRAIGHTS: nsuited, nsuitedcommon, tsuit, tsuitcommon, nranked, nrankedcommon, trank, trankcommon, nstraight, nstraightcommon, nstraightfill, nstraightfillcommon, nstraightflush, nstraightflushcommon, nstraightflushfill, nstraightflushfillcommon
  • RANK BITS: rankbits, rankbitscommon, rankbitsplayer, rankbitspoker, srankbits, srankbitscommon, srankbitsplayer, srankbitspoker
  • RANK HI: rankhi, rankhicommon, rankhiplayer, rankhipoker, srankhi, srankhicommon, srankhiplayer, srankhipoker
  • RANK LO: ranklo, ranklocommon, rankloplayer, ranklopoker, sranklo, sranklocommon, srankloplayer, sranklopoker
  • run$ ron$: ron$royfl, ron$strfl, ron$4kind, ron$fullh, ron$strai, ron$3kind, ron$2pair, ron$1pair, ron$hcard, ron$total, ron$pokervalmax, ron$prnuts, ron$prbest, run$royfl, run$strfl, run$4kind, run$fullh, run$strai, run$3kind, run$2pair, run$1pair, run$hcard, run$total, run$pokervalmax, run$prnuts, run$prbest


[edit] Action symbols

Symbol Explanation
lastraisedx (x=1-4) which chair was the last to raise in round x
raisbitsx (x=1-4) which chairs raised in round x
callbitsx (x=1-4) which chairs called in round x
foldbitsx (x=1-4) which chairs folded in round x
oppdealt Trailing indicator for nopponentsdealt
ac_aggressor which chair was aggressor (might be from previous round)
ac_agchair_after does the aggressor chair act after me?
ac_preflop_pos preflop position of the userchair (SB=1 BB=2 Early=3 Middle=4 Late=5 Dealer=6)
ac_prefloprais_pos preflop position of the raiser (SB=1 BB=2 Early=3 Middle=4 Late=5 Dealer=6)
ac_postflop_pos postflop position of the userchair (first=1 early=2 middle=3 late=4 last=5)
ac_pf_bets
  • 1 for no callers or blinds only
  • 2 for Called Pot - 1 bet to call
  • 3 for Raised Back - 1 more bet to call because someone behind you raised after you've already bet/called/raised
  • 4 for Raised Pot - 2 bets to call
  • 5 for Reraised Pot - 3+ bets to call
  • NOTE: Only valid when br==1
ac_first_into_pot returns true if you are first into the pot (first to act or checked to you)
ac_betposx (x=0-9) returns bet position of specified chair
ac_dealposx (x=0-9) returns deal position of specified chair

[edit] MyHand symbols

NOTE: Watch out with Mh_Str_straight, flush, twopair, fullhouse. I tested it and it came up with false results for turn and river. Can be used but test it decently. For more detailed information on the My Hand Strength symbols check out the OpenHoldem:EndUserDocumentation:Symbols:mh_str_explained page.

Symbol Explanation
mh_3straightxy (x=1 for wheel, 0 not, y=1 for broadway, 0 not) - returns true if the board has a wheel straight draw or broadway straight draw, given the wheel/broadway parameters
  • 00 - true if the board has neither a wheel straight draw nor a broadway straight draw
  • 10 - true if the board has a wheel straight draw
  • 01 - true if the board has a broadway straight draw
  • 11 - true if the board has either a wheel straight draw or a broadway straight draw
mh_bottomsd true if I have a bottom straight draw (if you are contributing a single card to an open-ended straight draw and that card is the smallest, this symbol is true e.g. hole: T2 common: 345K)
mh_nsuitedbetter number of missing suited cards that are higher than my best suited card
mh_kickerbetter number of cards that can beat your kicker
mh_kickerrank rank of your kicker (returns 0 if kicker is shared [board] and thus useless)
mh_nouts number of outs (HTC's formula)
mh_str_strflush 0-5 (5 best) of the relative strength of your straight flush
mh_str_quads 0-5 (5 best) of the relative strength of your four of a kind
mh_str_fullhouse 0-5 (5 best) of the relative strength of your full house
mh_str_flush 0-5 (5 best) of the relative strength of your flush
mh_str_straight 0-5 (5 best) of the relative strength of your straight
mh_str_trips 0-5 (5 best) of the relative strength of your three of a kind
mh_str_twopair 0-5 (5 best) of the relative strength of your two pair
mh_str_onepair 0-5 (5 best) of the relative strength of your one pair

[edit] Table stats symbols

Note: the setting for "y minutes" can be found in Edit/Preferences, and defaults to 15 minutes.

Symbol Explanation
floppct percentage of players seeing the flop for the last y minutes
turnpct percentage of players seeing the turn for the last y minutes
riverpct percentage of players seeing the river for the last y minutes
avgbetspf average number of bets preflop for the last y minutes
tablepfr pfr percentage preflop for the last y minutes
maxbalance my highest balance during the session
handsplayed number of hands played this session
balance_rankx (x=0-9) ranked list of player balances (includes players not currently in hand, and includes currentbet for each player as well). rank0 has highest balance.

[edit] Log symbols

Symbol Explanation
log$YourTextGoesHere When executed, adds your specified text to the log.

For example if you have:

[ br == 2 && (nsuited == 3 || nstraight == 3) && log$ItLives ]

in your f$rais formula and you flop a backdoor flush draw, then OpenHoldem will raise and also add the text "ItLives" to the log file, just before the RAIS line. Everytime a log$ symbol is accessed it will be flagged for logging. You can use this to track which part of your formula is to blame for the action taken by OH.

Note: You want to use the log$ symbol at the end of a logic block, to make sure it only gets flagged when all the previous statements are true.

Note: You have to turn on Log Symbols in the preferences. You can also dictate what is the maximum number of log symbols that will be logged per action. When enabled, up to 4 log symbols will be displayed in OpenHoldem's main window.

[edit] Poker Tracker symbols

[edit] Ring symbols

Symbol Explanation
pt_iconx (x=0-9) Poker Tracker auto-rate icon code for chair x
pt_iconlastrx (x=1-4) Poker Tracker auto-rate icon code for the last raiser in round x
pt_pfrx (x=0-9) Poker Tracker pre-flop raise percentage for chair x
pt_aggtotx (x=0-9) Poker Tracker total aggression for chair x
pt_aggtotnopfx (x=0-9) Poker Tracker total aggression excluding preflop for chair x
pt_aggpx (x=0-9) Poker Tracker preflop aggression for chair x
pt_aggfx (x=0-9) Poker Tracker flop aggression for chair x
pt_aggtx (x=0-9) Poker Tracker turn aggression for chair x
pt_aggrx (x=0-9) Poker Tracker river aggression for chair x
pt_floppctx (x=0-9) Poker Tracker saw flop pct for chair x
pt_turnpctx (x=0-9) Poker Tracker saw turn pct for chair x
pt_riverpctx (x=0-9) Poker Tracker saw river pct for chair x
pt_vpipx (x=0-9) Poker Tracker VP$IP for chair x
pt_handsx (x=0-9) Poker Tracker number of hands that are in the database for chair x
pt_pf_rfix (x=0-9) Poker Tracker "pre-flop raise first in" pct for chair x
pt_pf_crx (x=0-9) Poker Tracker "pre-flop called raise" pct for chair x
pt_pfatsx (x=0-9) Poker Tracker attempt to steal blinds for chair x
pt_wsdpx (x=0-9) Poker Tracker went to showdown percentage for chair x
pt_wssdx (x=0-9) Poker Tracker won $ at showdown for chair x
pt_fsbtsx (x=0-9) Poker Tracker folded small blind to steal for chair x
pt_fbbtsx (x=0-9) Poker Tracker folded big blind to steal for chair x


[edit] Ring symbols for the "raischair"

Symbol Explanation
pt_ricon Poker Tracker auto-rate icon code for raise chair
pt_rpfr Poker Tracker pre-flop raise percentage for raise chair
pt_raggtot Poker Tracker total aggression for raise chair
pt_raggtotnopf Poker Tracker total aggression excluding preflop for raise chair
pt_raggp Poker Tracker preflop aggression for raise chair
pt_raggf Poker Tracker flop aggression for raise chair
pt_raggt Poker Tracker turn aggression for raise chair
pt_raggrv Poker Tracker river aggression for raise chair
pt_rfloppct Poker Tracker saw flop pct for raise chair
pt_rturnpct Poker Tracker saw turn pct for raise chair
pt_rriverpct Poker Tracker saw river pct for raise chair
pt_rvpip Poker Tracker VP$IP for raise chair
pt_rhands Poker Tracker number of hands that are in the database for raise chair
pt_rpf_rfi Poker Tracker "pre-flop raise first in" pct for raise chair
pt_rpf_cr Poker Tracker "pre-flop called raise" pct for raise chair
pt_rpfats Poker Tracker attempt to steal blinds for raise chair
pt_rwsdp Poker Tracker went to showdown percentage for raise chair
pt_rwssd Poker Tracker won $ at showdown for raise chair
pt_rfsbts Poker Tracker folded small blind to steal for raise chair
pt_rfbbts Poker Tracker folded big blind to steal for raise chair


[edit] Tournament symbols

Symbol Explanation
ptt_iconx (x=0-9) Poker Tracker auto-rate icon code for chair x
ptt_iconlastrx (x=1-4) Poker Tracker auto-rate icon code for the last raiser in round x
ptt_pfrx (x=0-9) Poker Tracker pre-flop raise percentage for chair x
ptt_aggtotx (x=0-9) Poker Tracker total aggression for chair x
ptt_aggtotnopfx (x=0-9) Poker Tracker total aggression excluding preflop for chair x
ptt_aggpx (x=0-9) Poker Tracker preflop aggression for chair x
ptt_aggfx (x=0-9) Poker Tracker flop aggression for chair x
ptt_aggtx (x=0-9) Poker Tracker turn aggression for chair x
ptt_aggrx (x=0-9) Poker Tracker river aggression for chair x
ptt_floppctx (x=0-9) Poker Tracker saw flop pct for chair x
ptt_turnpctx (x=0-9) Poker Tracker saw turn pct for chair x
ptt_riverpctx (x=0-9) Poker Tracker saw river pct for chair x
ptt_vpipx (x=0-9) Poker Tracker VP$IP for chair x
ptt_handsx (x=0-9) Poker Tracker number of hands that are in the database for chair x
ptt_pf_rfix (x=0-9) Poker Tracker "pre-flop raise first in" pct for chair x
ptt_pf_crx (x=0-9) Poker Tracker "pre-flop called raise" pct for chair x
ptt_pfatsx (x=0-9) Poker Tracker attempt to steal blinds for chair x
ptt_wsdpx (x=0-9) Poker Tracker went to showdown percentage for chair x
ptt_wssdx (x=0-9) Poker Tracker won $ at showdown for chair x
ptt_fsbtsx (x=0-9) Poker Tracker folded small blind to steal for chair x
ptt_fbbtsx (x=0-9) Poker Tracker folded big blind to steal for chair x


[edit] Tournament symbols for the "raischair"

Symbol Explanation
ptt_ricon Poker Tracker auto-rate icon code for raise chair
ptt_rpfr Poker Tracker pre-flop raise percentage for raise chair
ptt_raggtot Poker Tracker total aggression for raise chair
ptt_raggtotnopf Poker Tracker total aggression excluding preflop for raise chair
ptt_raggp Poker Tracker preflop aggression for raise chair
ptt_raggf Poker Tracker flop aggression for raise chair
ptt_raggt Poker Tracker turn aggression for raise chair
ptt_raggr Poker Tracker river aggression for raise chair
ptt_rfloppct Poker Tracker saw flop pct for raise chair
ptt_rturnpct Poker Tracker saw turn pct for raise chair
ptt_rriverpct Poker Tracker saw river pct for raise chair
ptt_rvpip Poker Tracker VP$IP for raise chair
ptt_rhands Poker Tracker number of hands that are in the database for raise chair
ptt_rpf_rfi Poker Tracker "pre-flop raise first in" pct for raise chair
ptt_rpf_cr Poker Tracker "pre-flop called raise" pct for raise chair
ptt_rpfats Poker Tracker attempt to steal blinds for raise chair
ptt_rwsdp Poker Tracker went to showdown percentage for raise chair
ptt_rwssd Poker Tracker won $ at showdown for raise chair
ptt_rfsbts Poker Tracker folded small blind to steal for raise chair
ptt_rfbbts Poker Tracker folded big blind to steal for raise chair


[edit] ICM calculator symbols

For an overview of basic ICM push fold decisions and how they work with OpenHoldem see this link: ICM

Symbol Explanation
icm my tournament equity before any action is considered (just balances)
icm_fold my tournament equity if I fold
icm_callwin my tournament equity if I call and win
icm_calllose my tournament equity if I call and lose
icm_calltie my tournament equity if I call and tie
icm_alliwin0 - icm_alliwin9 my tournament equity if I push all-in and win against 0 - 9 callers
icm_allilose1 - icm_allilose9 my tournament equity if I push all-in and lose against 0 - 9 callers
icm_alliwinX my tournament equity if I push all-in and win from D/SB/BB/UTG/UTG1 - UTG6
icm_alliloseX my tournament equity if I push all-in and lose to D/SB/BB/UTG/UTG1 - UTG6

[edit] Hand multiplexor symbols

The purpose of the hand multiplexor is to transfer control to a specific named formula based on your actual 2 card hand. Note that the X's and x's are not case sensitive.

Symbol Explanation
f$$X Evaluate the UDF that corresponds to my first card
f$$XX Evaluate the UDF that corresponds to my first card and second card
f$$XXx Evaluate the UDF that corresponds to my first card, second card and suited/unsuited state

The X's in the three symbols will be substituted with your actual hand values at time of evaluation. The first "X" will contain the the rank of your highest hole card, the second "X" will contain the rank of your lowest hole card, and the third "x" will contain either a "s" or "o" depending if your hole cards have the same suit or not. The $$ will be replaced with a single dollar sign.

For example, if my hole cards are AhKh, then "f$$X" will result in "f$A" upon evaluation. Similarly, "f$$XX" would result in "f$AK" and "f$$XXx" would result in "f$AKs".

OpenHoldem will then evaluate the corresponding user defined function and return that value for the hand multiplexor symbol. If there is not a corresponding UDF defined for a given set of hole cards, then the return result is zero, not an error.

The values returned by the hand specific UDFs are entirely defined by you; one simple suggestion is to have them return 1 for call and 2 for raise; if you do this then your raise formula can do this:

|| [ f$$XXx >= 2 ] //hand specific formula calc


[edit] Memory symbols

The purpose of these symbols is to provide storage for values in order to reuse them at some later time. In reality, this is a kludge to close a hole in the WinHoldem (and now OpenHoldem) script language. A much better choice for LHS (left hand side) expressions is Perl or via the DLL extension).

Symbol Meaning
me_st_ Stores a value. Example: me_st_abc_123_45 - stores the value "123.45" in variable "abc".
  • use "_" for the decimal in values
  • a function name can also be passed in, instead of a number, for example:
    • 'me_st_def_f$myfunc' would store the results of function f$myfunc in variable def
me_re_ Retrieves a previously stored value. Example: me_re_abc - retrieves the value from variable "abc".

THE PROPER USE OF MEMORY SYMBOLS:


INTRODUCTION

One of the most powerful features of OH is its ability to remember. Very few other bots have this ability. I remember when, in the bad old days of WH, we had to create a petition to convince Matrix to publish his variables and the rest as they say is history.

PLANING

Working with memory symbols requires a bit of planning and specifically one should keep the following in mind:

a) OH does not know your memory symbol before you create it. This sounds simple but one should not forget it because it could create problems with your fist hand. b) Once a memory symbol is created and a value is stored OH will remember that value until it is altered or replaced by another or until OH is closed. This is great if you want OH to remember what happened 10 hands ago but could bite you if you forget to reset them. c) It is of utmost importance to decide when and what should be remembered.

FORMULATION:

The formulation of the memory symbol is simply taken from the release notes:

Memory symbols --------- me_st_abc_123_45 - 'me_st_' stores a value "123.45" in variable "abc" (use "_" for the decimal in values) (a function name can also be passed in, instead of a number, for example: 'me_st_def_f$myfunc' would store the results of function f$myfunc in variable def) me_re_abc - 'me_re_' retrieves the value from variable "abc"


PUTTING IT TOGETHER

To make things clear we will be putting 2 memory symbols into your bot. A) We will create a “Stack to Pot Ratio” memory symbol [the function of this symbol is to store the ratio of our balance to the pot at the start of the betting on the flop to be retrieve later in order to make commitment decisions], and B) We will create a “Slow Play” memory symbol, [ the function of this symbol is to store our decision during a betting round that we will check-raise the next betting round regardless of what the next card is]


STEP 1: Create the symbols:

In f$alli we put

(br==1 && !(didchecround1 || didcallround1 || didraisround1 || didswaground1) ? me_st_stpr_0 : 0) + (br==1 && !(didchecround1 || didcallround1 || didraisround1 || didswaground1) ? me_st_slowplay_0 : 0) +

ENG: it is preflop and we have not yet acted then we will create the memory symbols “stpr” (stack to pot ratio) and “slowplay” and we will reset the values to 0 Zero.

Comment: we do this in f$alli because it is the first formula that is tested by OH. If we had put it in a formula that is not tested then no value will be stored.

STEP 2 (a):

In f$alli we put


(br==2 && !(didchecround2 || didcallround2 || didraisround2 || didswaground2) ? me_st_stpr_f$stpr : 0) + (br==2 && !(didchecround2 || didcallround2 || didraisround2 || didswaground2) ? me_st_slowplay_f$slowplay : 0)

Eng: it is on the flop and we have not yet acted then we will store the values of the functions f$stpr and f$slowplay at that moment.

Comment: Again this is the first thing we want OH to do. It is very important to decide exactly when to pass the value into the memory symbols. Plz note that the last line does not have “+”

STEP 2(b)

We create the functions whose value we want to store

f$stpr balance/potcommon

comment: we don’t use “pot” because that would include any bets during round2 before us.

f$slowplay

br==2 && nhandshi==0 ? 1 : 0

comment: this formula will return 1 when we have the nuts and this will be stored into the “slowplay” memory symbol

STEP 3

Retrieve and use the memory.

In f$srai we put

br==3 && me_re_slowplay && me_re_stpr<10 ? balance : 0

Eng : It is the turn and we, on the flop, decided to slowplay and the ratio between the pot (at the start of br==2) and our balance at that time was 1:10 and therefore we will shove.

Conclusion

The memory symbols are very powerful but needs a bit of planning. It is important to decided when to define, store and retrive the values in these symbols.

[edit] Hand Symbols

You can reference your dealt hand directly by using the $ symbols. The general form of the $ hand symbols are: $RRs. The $ character is required followed by 1 or 2 standard card rank characters. The hand symbols are not case sensitive.

A,K,Q,J,T,9-2 or by X or x which is a wild card that will match any rank.

Followed by an optional suit indicator: s - suited, o - offsuit. If the suit indicator is omitted then suit does not matter.

Examples

Symbol Meaning
$AA true if you were dealt aces
$JT true if you were dealt jack ten
$AKs true if you were dealt ace king suited
$49o true if you were dealt four nine offsuit
$QXs true if you were dealt queen any suited
$J true if you were dealt any jack
$XXs true if you were dealt any suited hand
$XXo true if you were dealt any offsuited hand
$q2 true if you were dealt queen two

[edit] Card Symbols

The actual card value or rank/suit value for both your hand and the board can be referenced using card symbols. The general form of the $$ card symbols are: $$AB#. The card symbols are not case sensitive.

  • $$ is required.
  • A - is p for player, c for common
  • B - is c for card, r for rank, s for suit
  • # - is the card number (player 0-1, common 0-4)

Examples

Symbol Meaning
$$pc0 the card value for player card zero (1st dealt card).
$$pr1 the rank value of player card one (2nd dealt card).
$$cr0 the rank value of common card zero (1st common card dealt).
$$cs4 the suit value of common card four (5th common card dealt - river).

[edit] Card Values

A single card value is stored in a single 8-bit byte. All bits (7-0) are used. The card rank is stored in the hi-order 4 bit nibble (bits 7-4). The card suit is stored in the lo-order 4 bit nibble (bits 3-0). The valid values for card rank are 1-14 as follows:

# CardRank
14 Ace
13 King
12 Queen
11 Jack
10-2 Ten-Two
1 Ace (in lo straight)


# CardSuit
4 Spade
3 Heart
2 Diamond
1 Club


[edit] Poker Value

OpenHoldem classifies and orders poker hands into a single 32bit value.

Image:Pokerval.gif

  • Bits 31-24 indicate the hand rank
    • Straight flush = bit 31 set
    • Four of a kind = bit 30 set
    • Full house = bit 29 set
    • Flush = bit 28 set
    • Straight = bit 27 set
    • Three of a kind = bit 26 set
    • Two pair = bit 25 set
    • One pair = bit 24 set
    • 5-of-a-kind is indicated when bits 31-24 are set to 1.
    • High-card (no pair) is indicated when bits 31-24 are set to 0.
  • Bits 23-20 are not used.
  • Bits 19-16 indicate the rank of the top card in the hand
  • Bits 15-12 indicate the rank of the second card in the hand
  • Bits 11-8 indicate the rank of the third card in the hand
  • Bits 7-4 indicate the rank of the fourth card in the hand
  • Bits 3-0 indicate the rank of the fifth card in the hand

Numeric values for the ranks are (bits 19-1)

# Rank
14 Ace
13 King
12 Queen
11 Jack
10-2 Ten-Two
1 Ace (in lo straight)

The pokerval symbol maps every 0 to 7 card poker hand onto the 32bit number space in correct order of game precedence, allowing two poker hands can be compared to see which is the better hand - higher values are better. The lowest possible value is 0 (no cards). The highest possible value is 5-aces which is encoded as 0xFF0EEEEE.

[edit] Player/Pocket Card List (pcbits)

The symbol pcbits is a bit list that indicates where your dealt pocket cards are used in your 5 card poker hand. Ony the lower order 5 bits are significant - one bit per card in your 5 card poker hand. Each bit corresponds to a pokerval rank field as follows:

bit# pokerval
bit4 rank5
bit3 rank4
bit2 rank3
bit1 rank2
bit0 rank1

If all bits in pcbits are zero then neither of your two cards are used in your 5 card hand.

The following formula fragment will be true if you have a sucker straight: "((nstraight==5) && (pcbits==1))"

The following formula fragment will be true if you are filling an inside straight: "((nstraight==5) && (pcbits&14))"

The formula symbol npcbits contains the number of your pocket cards being used in your 5 card poker hand. The possible values are: 0,1,2.


[edit] Rank Bits

OpenHoldem uses the following method to classify a group of cards according to rank within a single value. Note that if an ace is present then both the 14 bit and the 1 bit will be set.

Image:Rankbits.gif

  • Bit 15 is not used
  • Bit 14 - A (16384)
  • Bit 13 - K (8192)
  • Bit 12 - Q (4096)
  • Bit 11 - J (2048)
  • Bit 10 - T (1024)
  • Bit 9 - 9 (512)
  • Bit 8 - 8 (256)
  • Bit 7 - 7 (128)
  • Bit 6 - 6 (64)
  • Bit 5 - 5 (32)
  • Bit 4 - 4 (16)
  • Bit 3 - 3 (8)
  • Bit 2 - 2 (4)
  • Bit 1 - 1 (2)
  • Bit 0 is not used
  • example: $JT = 3072
  • example: $65432 = 124
  • example: $KJ9753 = 10920
  • example: $AQT8642 = 21846

[edit] See also

Personal tools