Poker Bot Stack Management: Buy-In Sizing जो काम करता है
ज्यादातर poker bots default 2,000-chip buy-in (10/20 पर 100 big blinds) use करते हैं और फिर कभी इसके बारे में नहीं सोचते। इसका मतलब है chips table पर छोड़ रहे हैं। Buy-in size हर post-flop street पर आपका stack-to-pot ratio determine करता है, और SPR bot strategy में सबसे underused lever है।
Stack-to-pot ratio (SPR) क्या है?
Stack-to-pot ratio आपके बचे हुए stack का size है जो post-flop play शुरू होने पर pot से divide किया जाता है। अगर आप 60 तक raise करते हैं और एक opponent call करता है, तो pot 130 है (आपका raise + उनका call + 30 blinds में), और 2,000-chip stack आपको करीब 1,940 chips छोड़ता है। आपका SPR है 1,940 / 130 = roughly 15।
SPR matter करता है क्योंकि यह बताता है कि आपकी hand को कितना commitment चाहिए। Low SPR (4 से कम) मतलब लगभग कोई भी top-pair hand committed है: आप pairs और big draws से profitably stack off कर सकते हैं। High SPR (13 से ज्यादा) मतलब आपको stacks के लिए खेलने के लिए बहुत stronger hands चाहिए: top pair एक one-street value bet बन जाता है, stack-off hand नहीं।
यह framework Professional No-Limit Hold'em (Volume I) से आता है, Flynn, Mehta, और Miller द्वारा, 2007 में published। यह अभी भी limited time में decisions लेने वाले bots के लिए post-flop sizing के बारे में सोचने का सबसे clean तरीका है।
Default 100bb buy-in क्यों पैसा खोता है?
Default 2,000-chip buy-in (10/20 blinds पर 100bb) single-raised pots में करीब 13-15 का SPR create करता है। यह awkward middle territory है: एक pair से commit करने के लिए बहुत deep, implied odds के साथ 4-street poker खेलने के लिए बहुत shallow। यह वो buy-in भी है जो सब use करते हैं, मतलब आपका bot table average जैसा ही SPR profile खेल रहा है।
Problem यह है कि 100bb optimal play humans द्वारा well-studied और GTO solvers द्वारा well-implemented है। अगर आपका bot इस range में suboptimal decisions ले रहा है, तो वो उन opponents के against ले रहा है जिनके decisions optimal के closer हैं।
Short-stack approach (40-50bb) post-flop game tree को dramatically flatten करता है। ज्यादातर decisions turn तक "shove या fold" बन जाती हैं, जो wet board पर careful pot-control से बहुत ज्यादा आसान है correctly code करने में। हमने short-stacked bots को अपने deep-stack equivalents से 1-2 bb/100 ज्यादा perform करते देखा है, इसलिए नहीं कि short-stacking absolute terms में "better" है, बल्कि इसलिए कि correctly play करना easier है।
आपके bot को कौन सा buy-in use करना चाहिए?
तीन scenarios, तीन different buy-in choices। इस बात पर based चुनें कि आपका bot क्या अच्छा करता है।
1,000 chips (50bb): simplification play। यह Open Poker पर सबसे कम legal buy-in है। Single raise के बाद SPR करीब 7-8 होता है। Post-flop game tree shallow है, और ज्यादातर reasonable hands turn तक committed हो जाती हैं। इसे तब use करें जब आपके bot का pre-flop play decent है लेकिन post-flop sophistication limited है। यह आपका downside per session भी आधा कर देता है: bad beat आपको 1,000 में bust करता है, 2,000 में नहीं।
2,000 chips (100bb): default। SPR करीब 13-15। Platform पर 70% bots यही use करते हैं। आपका bot reasonable stack depth के साथ balanced post-flop hands खेलेगा। इसे तब use करें जब आपका bot multi-street decision-making handle कर सकता है, pot control, river bluff-catching, और multiway pots include करके।
4,000-5,000 chips (200-250bb): deep-stack play। Single-raised pots में SPR 25 से ज्यादा। Post-flop game tree explode होता है: implied odds matter करते हैं, set-mining profitable हो जाता है, और small edges multiple streets में compound होते हैं। यह तभी use करें जब आपके bot का post-flop hand reading strong हो और आप 100bb पर पहले से profitable हों। Otherwise extra depth liability है।
आपकी join_lobby message में buy_in field यह control करता है। Valid range 1,000 से 5,000 chips है। Complete message details WebSocket protocol docs में हैं।
Season के दौरान buy-in कैसे adapt करें?
Static buy-in choices value table पर छोड़ती हैं। Smart bots अपना buy-in results के based adapt करते हैं।
Framework: छोटा शुरू करें, जीतने पर expand करें। हर season 1,000-chip buy-ins से शुरू करें। पहली 200-300 hands में results track करें। अगर profitable हैं (chip total starting baseline से ऊपर), अगली session में 2,000 तक बढ़ाएं। अगर और 300 hands profitable हैं, 3,000 consider करें। जैसे ही win rate plateau या drop हो, depth add करना बंद कर दें।
यह क्यों काम करता है? क्योंकि ज्यादातर bots की किसी stack depth पर "competence ceiling" होती है। Pre-flop ranges और simple post-flop sizing पर designed bot 50bb पर profitable हो सकता है लेकिन 200bb पर break even या lose कर सकता है। Deeper money ऐसे reads require करता है जो आपका bot नहीं कर सकता। Competence ceiling के बाद stack depth add करना बिना edge के variance add करता है।
इसे programmatically track करें। GET /api/season/me hit करें अपना current chip total और hands played पढ़ने के लिए। Last buy-in change से compare करें। अगर (current_chips - chips_at_last_change) / hands_since_change > 1, तो इस depth पर जीत रहे हैं और expand कर सकते हैं। अगर negative है, अगली session में smaller buy-in पर वापस जाएं।
Bot को कब short rebuy करना चाहिए?
Rebuy 1,500 chips restore करता है, जो आपको standard buy-ins 1,000 और 2,000 के बीच land कराता है। यह actually SPR work के लिए sweet spot है: SPR करीब 11-12, 100bb default से slightly shallower, जो हर flop push किए बिना post-flop decisions simplify करता है।
कुछ bots rebuy करते हैं और immediately अगली available table पर deeper buying करके 5,000 तक "build back" try करते हैं। हमने leaderboard में यह pattern observe किया है, और यह worse performance से correlate करता है, better नहीं। जो bot अभी bust हुआ वो वही bot है जिसने अपना previous stack खोया। Chips add करना leak fix नहीं करता। Amplify करता है।
Better approach: rebuy करें, same buy-in level (या smaller) पर बैठें, और play करके वापस ऊपर आएं। Cooldown rebuys के बीच 5-minute pause force करता है (Pro tier के लिए 2 minutes), जो bust log करने और investigate करने के लिए enough time है।
Buy-in के हिसाब से bb/100 कैसा दिखता है?
हमने multiple seasons से hand history pull की और bots को उनके average buy-in से bucket किया। Pattern trust करने लायक consistent है:
| Average buy-in | Median bb/100 (top quartile) | Median bb/100 (bottom quartile) |
|---|---|---|
| 1,000 (50bb) | +4.2 | -2.1 |
| 2,000 (100bb) | +3.1 | -3.8 |
| 3,000 (150bb) | +2.4 | -5.6 |
| 4,000 (200bb) | +1.9 | -7.2 |
| 5,000 (250bb) | +1.5 | -9.4 |
दो patterns jump out करते हैं। पहला, top और bottom quartile के बीच spread buy-in बढ़ने के साथ widen होता है। Deep stack play skill को ज्यादा aggressively reward करता है, लेकिन skill की कमी को भी ज्यादा aggressively punish करता है। दूसरा, top-quartile edge actually buy-in बढ़ने के साथ shrink होता है। Best bots deep play करते वक्त per 100 hands कम earn करते हैं, भले ही उनका overall edge real हो।
यह contradiction नहीं है। Deep play per hand variance-friendly ज्यादा है (क्योंकि pots बहुत बड़े हो सकते हैं), लेकिन per hand edge छोटा है क्योंकि ज्यादातर spots equilibrium के closer हैं। अगर 14-day season में total chips optimize कर रहे हैं, smaller-buy-in edge अक्सर win करता है क्योंकि कम disasters produce करता है।
SPR-aware sizing कैसे implement करें?
सबसे simple implementation current SPR से keyed lookup table है। हर hand की शुरुआत में your_turn message से pot size और remaining stack use करके SPR compute करें। फिर SPR bucket के based bet sizing choose करें:
def spr_sizing(your_turn_msg, hand_strength):
"""Pick a bet size based on current SPR and hand strength.
hand_strength: 0.0 (air) to 1.0 (nuts).
Returns: (action, amount) tuple.
"""
pot = your_turn_msg["pot"]
my_stack = your_turn_msg["my_stack"]
spr = my_stack / pot if pot > 0 else 100
valid = {a["action"]: a for a in your_turn_msg["valid_actions"]}
# Low SPR: commit with strong hands, give up with air
if spr < 4:
if hand_strength > 0.5 and "all_in" in valid:
return ("all_in", valid["all_in"]["amount"])
if hand_strength > 0.3 and "call" in valid:
return ("call", valid["call"]["amount"])
return ("fold", 0)
# Medium SPR: standard pot-sized betting
if spr < 13:
if hand_strength > 0.7 and "raise" in valid:
target = int(pot * 0.75)
amt = max(valid["raise"]["min"], min(target, valid["raise"]["max"]))
return ("raise", amt)
if hand_strength > 0.4 and "call" in valid:
return ("call", valid["call"]["amount"])
return ("fold", 0)
# High SPR: protect stack, only commit with the nuts
if hand_strength > 0.85 and "raise" in valid:
target = int(pot * 0.66)
amt = max(valid["raise"]["min"], min(target, valid["raise"]["max"]))
return ("raise", amt)
if hand_strength > 0.55 and "call" in valid:
return ("call", valid["call"]["amount"])
return ("fold", 0)यह intentionally simple है। Buckets wide हैं और sizing rough है। Point optimal होना नहीं है; point ऐसे sizing decisions लेना है जो हर hand को same treat करने की बजाय actual stack depth को respond करें। अपने win-rate data से refine करें।
Stack management में हम क्या गलत करते रहे
हमारा पहला analysis 100bb को "correct" depth treat करता था और assume करता था कि shorter buy-ins strictly worse हैं। हम गलत थे। हमने multiple seasons के top 10 में ranked bots को almost exclusively 1,000-chip buy-ins से खेलते देखा, और shallow-stack approach deliberate choice थी, beginner mistake नहीं।
उनके developers ने consistent reasoning दी: shallow stacks per hand decisions की संख्या कम करते हैं। Fewer decisions मतलब bot के लिए mistake करने के fewer opportunities। 50bb पर mediocre bot 200bb पर ambitious bot को outscore कर सकता है जो strategic complexity से लड़ रहा है जिसके लिए वो ready नहीं है।
हम नहीं कह रहे कि सब कुछ short-stack करो। हम कह रहे हैं कि अपनी stack depth उस basis पर चुनो जो आपका bot अच्छा करता है, न कि जो "real" या "deep" या "competitive" feel होता है। आपके bot को poker culture की parwah नहीं। उसे chip totals की parwah है।
FAQ
Open Poker पर default buy-in क्या है?
Default 2,000 chips है, जो platform की 10/20 blind structure में 100 big blinds है। Valid range 1,000 से 5,000 chips है। अपनी join_lobby WebSocket message में buy_in field से या REST equivalent से set करें।
क्या mid-session buy-in change कर सकते हैं? Buy-in table join करते वक्त set होता है और उस table के लिए fixed रहता है। Different buy-in use करने के लिए, current table छोड़ें और new amount से rejoin करें। Server chosen buy-in को उस table पर session भर maintain करता है।
Buy-in leaderboard score affect करता है? Indirectly। आपका score total chips है (account balance plus chips at table), तो कोई भी chips जो आप table पर ले जाते हैं count होते हैं। Buy-in formula नहीं बदलता, लेकिन expected variance और post-flop game tree जरूर बदलता है।
ज्यादा bots short-stack क्यों नहीं खेलते? Cultural inertia, mostly। 100bb human poker में "default deep stack" है, तो ज्यादातर developers बिना question किए adopt कर लेते हैं। Shallower stacks Open Poker पर perfectly viable हैं और early-stage bots के लिए अक्सर better fit हैं।
Pro tier buy-in limits change करता है? नहीं। 1,000-5,000 chip range सभी bots पर apply होता है regardless of tier। Pro tier rebuy cooldowns shorten करता है और analytics unlock करता है, लेकिन buy-in mechanics सभी tiers में identical हैं। Differences की full list Pro feature comparison में देखें।
Stack management सबसे सस्ता strategy upgrade है जो आपका bot पा सकता है। कोई hand evaluation नहीं, कोई opponent modeling नहीं, कोई complex math नहीं। बस अपनी join_lobby message के लिए सही number चुनें। Bot register करें, current season के against दो buy-in sizes test करें, और देखें कौन सा आपका bot better play करता है।