Skip to content
[OPEN_POKER]

Poker Bot Stack Management: Buy-In Sizing das funktioniert

JJoão Carvalho||10 min read

Die meisten Poker Bots verwenden den Standard-Buy-In von 2.000 Chips (100 Big Blinds bei 10/20) und denken nie wieder darüber nach. Damit lässt du Chips auf dem Tisch liegen. Die Buy-In-Größe bestimmt deine Stack-to-Pot Ratio auf jeder Postflop-Street, und SPR ist der am meisten unterschätzte Hebel in der Bot-Strategie.

Was ist Stack-to-Pot Ratio (SPR)?

Stack-to-Pot Ratio ist die Größe deines verbleibenden Stacks geteilt durch den Pot zu Beginn des Postflop-Spiels. Wenn du auf 60 erhöhst und ein Gegner callt, ist der Pot 130 (dein Raise + sein Call + 30 Blinds), und ein 2.000-Chip-Stack lässt dir etwa 1.940 Chips. Dein SPR ist 1.940 / 130 = ungefähr 15.

SPR ist wichtig, weil es dir sagt, wie viel Commitment deine Hand braucht, um profitabel zu sein. Niedriger SPR (unter 4) bedeutet, dass fast jede Top-Pair-Hand committed ist: du kannst profitabel mit Paaren und großen Draws all-in gehen. Hoher SPR (über 13) bedeutet, dass du viel stärkere Hände brauchst, um um Stacks zu spielen: Top Pair wird zu einem Ein-Street-Value-Bet, nicht zu einer All-In-Hand.

Das Framework stammt aus Professional No-Limit Hold'em (Volume I) von Flynn, Mehta und Miller, veröffentlicht 2007. Es ist immer noch die sauberste Art, über Postflop-Sizing für Bots nachzudenken, die Entscheidungen unter Zeitdruck treffen müssen.

Warum verliert der Standard 100bb Buy-In Geld?

Der Standard-Buy-In von 2.000 Chips (100bb bei 10/20 Blinds) erzeugt einen SPR von etwa 13-15 in Single-Raised Pots. Das ist ein unangenehmes Mittelfeld: zu tief, um sich mit einem Paar zu committen, zu flach, um 4-Street-Poker mit Implied Odds zu spielen. Es ist auch der Buy-In, den alle verwenden, was bedeutet, dass dein Bot das gleiche SPR-Profil wie der Tischdurchschnitt spielt.

Das Problem: Optimales 100bb-Spiel ist von Menschen gut studiert und von GTO-Solvern gut implementiert. Wenn dein Bot in diesem Bereich suboptimale Entscheidungen trifft, trifft er sie gegen Gegner, deren Entscheidungen näher am Optimum sind.

Ein Short-Stack-Ansatz (40-50bb) vereinfacht den Postflop-Spielbaum drastisch. Die meisten Entscheidungen werden am Turn zu "Shove oder Fold", was viel einfacher korrekt zu programmieren ist als sorgfältige Pot-Kontrolle auf einem nassen Board. Wir haben beobachtet, dass Short-Stack-Bots ihre Deep-Stack-Äquivalente um 1-2 bb/100 übertreffen, nicht weil Short-Stacking absolut "besser" ist, sondern weil es leichter korrekt zu spielen ist.

Welchen Buy-In sollte dein Bot verwenden?

Drei Szenarien, drei verschiedene Buy-In-Wahlen. Wähle basierend auf dem, was dein Bot gut kann.

1.000 Chips (50bb): die Vereinfachung. Das ist der niedrigste legale Buy-In auf Open Poker. SPR nach einem Single Raise liegt bei etwa 7-8. Der Postflop-Spielbaum ist flach, und die meisten vernünftigen Hände sind am Turn committed. Nutze dies, wenn dein Bot anständiges Pre-Flop-Spiel hat, aber begrenzte Postflop-Raffinesse. Es halbiert auch deinen Nachteil pro Sitzung: ein Bad Beat kostet dich 1.000, nicht 2.000.

2.000 Chips (100bb): der Standard. SPR um 13-15. Das nutzen 70% der Bots auf der Plattform. Dein Bot wird ausgewogene Postflop-Hände mit vernünftiger Stack-Tiefe spielen. Nutze dies, wenn dein Bot Multi-Street-Entscheidungen handhaben kann, einschließlich Pot-Kontrolle, River-Bluff-Catching und Multiway-Pots.

4.000-5.000 Chips (200-250bb): das Deep-Stack-Spiel. SPR über 25 in Single-Raised Pots. Der Postflop-Spielbaum explodiert: Implied Odds zählen, Set-Mining wird profitabel, und kleine Vorteile summieren sich über mehrere Streets. Nutze dies nur, wenn dein Bot starkes Postflop-Handreading hat und du bereits bei 100bb profitabel bist. Sonst ist die zusätzliche Tiefe ein Nachteil.

Das buy_in-Feld in deiner join_lobby-Nachricht steuert dies. Der gültige Bereich ist 1.000 bis 5.000 Chips. Vollständige Nachrichtendetails in den WebSocket-Protokoll-Docs.

Wie passt du den Buy-In über eine Season an?

Statische Buy-In-Wahlen lassen Wert auf dem Tisch. Kluge Bots passen ihren Buy-In basierend auf Ergebnissen an.

Das Framework: fang klein an, erweitere bei Gewinn. Beginne jede Season mit 1.000-Chip-Buy-Ins. Tracke deine Ergebnisse über die ersten 200-300 Hände. Wenn du profitabel bist (Chip-Total über der Ausgangsbasis), erhöhe auf 2.000 für die nächste Sitzung. Wenn du weitere 300 Hände profitabel bist, erwäge 3.000. Höre auf, Tiefe hinzuzufügen, sobald deine Gewinnrate stagniert oder fällt.

Warum funktioniert das? Weil die meisten Bots eine "Kompetenzdecke" bei einer bestimmten Stack-Tiefe haben. Ein Bot, der auf Pre-Flop-Ranges und einfaches Postflop-Sizing ausgelegt ist, kann bei 50bb profitabel sein, aber bei 200bb Break-Even oder Verlust machen. Das tiefere Geld erfordert Reads, die dein Bot nicht machen kann. Stack-Tiefe über die Kompetenzdecke hinaus hinzuzufügen, fügt Varianz ohne Vorteil hinzu.

Tracke das programmatisch. Rufe GET /api/season/me auf, um dein aktuelles Chip-Total und gespielte Hände zu lesen. Vergleiche mit deiner letzten Buy-In-Änderung. Wenn (aktuelle_chips - chips_bei_letzter_änderung) / hände_seit_änderung > 1, gewinnst du bei dieser Tiefe und kannst erweitern. Wenn negativ, gehe zurück zu einem kleineren Buy-In.

Wann sollte dein Bot short rebuyen?

Das Rebuy stellt 1.500 Chips wieder her, was dich zwischen den Standard-Buy-Ins von 1.000 und 2.000 platziert. Das ist tatsächlich ein Sweet Spot für SPR-Arbeit: ein SPR von etwa 11-12, etwas flacher als der 100bb-Standard, was Postflop-Entscheidungen vereinfacht, ohne dich zu zwingen, jeden Flop zu pushen.

Manche Bots rebuyen und versuchen sofort, durch einen tieferen Buy-In am nächsten Tisch auf 5.000 "aufzubauen". Wir haben das Leaderboard auf dieses Muster beobachtet, und es korreliert mit schlechterer, nicht besserer Leistung. Der Bot, der gerade gebustet hat, ist derselbe Bot, der seinen vorherigen Stack verloren hat. Mehr Chips zu geben behebt das Leak nicht. Es verstärkt es.

Ein besserer Ansatz: rebuyen, beim gleichen Buy-In-Level sitzen (oder kleiner), und sich zurückspielen. Der Cooldown erzwingt eine 5-Minuten-Pause zwischen Rebuys (2 Minuten für Pro-Tier), was genug Zeit ist, den Bust zu loggen und zu prüfen, ob ein Strategie-Bug vorliegt.

Wie sieht bb/100 nach Buy-In aus?

Wir haben Hand-History aus mehreren Seasons gezogen und Bots nach ihrem durchschnittlichen Buy-In gruppiert. Das Muster ist konsistent genug, um zu vertrauen:

Durchschnittlicher Buy-InMedian bb/100 (oberes Quartil)Median bb/100 (unteres Quartil)
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

Zwei Muster fallen auf. Erstens wird die Spanne zwischen oberem und unterem Quartil größer, je höher der Buy-In. Deep-Stack-Spiel belohnt Können aggressiver, bestraft aber auch mangelndes Können aggressiver. Zweitens schrumpft der Vorteil des oberen Quartils tatsächlich mit steigendem Buy-In. Die besten Bots verdienen weniger pro 100 Hände, wenn sie tief spielen, selbst wenn ihr gesamter Vorteil real ist.

Das ist kein Widerspruch. Tiefes Spiel ist varianzfreundlicher pro Hand (weil Pots viel größer sein können), aber der Vorteil pro Hand ist kleiner, weil die meisten Spots näher am Gleichgewicht sind. Wenn du für maximale Chips über eine 14-tägige Season optimierst, gewinnt der kleinere Buy-In-Vorteil oft, weil er weniger Katastrophen produziert.

Wie implementierst du SPR-bewusstes Sizing?

Die einfachste Implementierung ist eine Lookup-Tabelle, indiziert nach aktuellem SPR. Berechne SPR zu Beginn jeder Hand mit der Pot-Größe und deinem verbleibenden Stack aus der your_turn-Nachricht. Wähle dann dein Bet-Sizing basierend darauf, in welchem SPR-Bucket du bist:

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)

Das ist absichtlich einfach. Die Buckets sind breit und das Sizing ist grob. Es geht nicht darum, optimal zu sein; es geht darum, Sizing-Entscheidungen zu treffen, die auf die tatsächliche Stack-Tiefe reagieren, statt jede Hand gleich zu behandeln. Verfeinere es basierend auf deinen Gewinnrate-Daten.

Was wir beim Stack Management falsch gemacht haben

Unsere erste Analyse behandelte 100bb als die "korrekte" Tiefe und nahm an, dass kürzere Buy-Ins strikt schlechter seien. Wir lagen falsch. Wir beobachteten Bots in den Top 10 mehrerer Seasons, die fast ausschließlich mit 1.000-Chip-Buy-Ins spielten, und der Shallow-Stack-Ansatz war eine bewusste Wahl, kein Anfängerfehler.

Die Begründung ihrer Entwickler war konsistent: flache Stacks reduzieren die Anzahl der Entscheidungen pro Hand. Weniger Entscheidungen bedeutet weniger Gelegenheiten für den Bot, einen Fehler zu machen. Ein mittelmäßiger Bot bei 50bb kann einen ambitionierten Bot bei 200bb übertreffen, der gegen strategische Komplexität kämpft, für die er nicht bereit ist.

Wir sagen nicht, dass du alles short-stacken sollst. Wir sagen, dass du deine Stack-Tiefe basierend darauf wählen sollst, was dein Bot gut kann, nicht darauf, was sich "echt" oder "tief" oder "kompetitiv" anfühlt. Deinem Bot ist Poker-Kultur egal. Ihm sind Chip-Totale wichtig.

FAQ

Was ist der Standard-Buy-In auf Open Poker? Der Standard ist 2.000 Chips, also 100 Big Blinds bei der 10/20-Blind-Struktur der Plattform. Der gültige Bereich ist 1.000 bis 5.000 Chips. Stelle ihn über das buy_in-Feld in deiner join_lobby-WebSocket-Nachricht oder dem REST-Äquivalent ein.

Kann ich den Buy-In mitten in der Sitzung ändern? Der Buy-In wird festgelegt, wenn du an einem Tisch Platz nimmst, und bleibt für diesen Tisch fix. Um einen anderen Buy-In zu nutzen, verlasse den aktuellen Tisch und setze dich mit dem neuen Betrag erneut. Der Server hält den gewählten Buy-In für die Dauer deiner Sitzung an diesem Tisch.

Beeinflusst der Buy-In meine Leaderboard-Punktzahl? Indirekt. Deine Punktzahl sind Gesamt-Chips (Kontostand plus Chips am Tisch), also zählen alle Chips, die du an einen Tisch mitnimmst, weiterhin. Der Buy-In ändert die Formel nicht, aber er ändert deine erwartete Varianz und den Postflop-Spielbaum, den dein Bot navigieren muss.

Warum spielen nicht mehr Bots Short-Stack? Kulturelle Trägheit, hauptsächlich. 100bb ist der "Standard Deep Stack" im menschlichen Poker, daher übernehmen die meisten Entwickler ihn ohne zu hinterfragen, ob er zu ihrem Bot passt. Flachere Stacks sind auf Open Poker vollkommen machbar und oft besser geeignet für Bots in der Frühphase.

Ändert der Pro-Tier die Buy-In-Grenzen? Nein. Der Bereich von 1.000-5.000 Chips gilt für alle Bots unabhängig vom Tier. Pro-Tier verkürzt Rebuy-Cooldowns und schaltet Analytics frei, aber Buy-In-Mechaniken sind über alle Tiers identisch. Siehe den Pro-Feature-Vergleich für die vollständige Liste der Unterschiede.


Stack Management ist das günstigste Strategie-Upgrade, das dein Bot bekommen kann. Keine Handbewertung, kein Opponent Modeling, keine komplexe Mathematik. Wähle einfach die richtige Zahl für deine join_lobby-Nachricht. Registriere einen Bot, teste zwei Buy-In-Größen gegen die aktuelle Season, und schau, welche dein Bot besser spielt.

Weiterlesen