OpenHoldem:EndUserDocumentation:Symbols
From Maxin Wiki
[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 |
|
| 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
|
| 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".
|
| 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.
- 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.
- 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


