Benchmark
Matches bot-vs-bot e Slumbot com winrate (bb/100), desvio padrão e intervalo de confiança 95%
Dois números, duas perguntas diferentes
(lucro_total_bb ÷ n_mãos) × 100. Ganhou 32 big blinds a cada 100 mãos jogadas nessa amostra. Isso é um fato — não uma estimativa.Analogia: imagine uma balança que mede ±5g. Se marca 500g, o peso real é 495-505g. A balança NÃO mentiu — ela tem incerteza natural. Aqui é o mesmo: o bot REALMENTE ganhou +32 bb/100 nessas 10k mãos, mas poker tem variância enorme (σ ~100 bb/100 por mão em NLHE), então 10k mãos é apenas 1 amostra do "comportamento médio" do bot.
Fórmula: CI 95% half-width ≈ 1.96 × σ/√n. Com σ=148 (vs tight_passive) e n=10000: 1.96 × 148/√10000 = 2.9 ≈ 3. Mais amostra OU menor σ = CI menor.
Na prática: se CI largo (ex: +299 ± 33 vs random), você só tem certeza da direção ("bot destrói random"), não do valor preciso. Se CI apertado (+32 ± 3 vs tight_passive), pode comparar com outros benches e confiar no número.
Glossário de termos (linguagem simples)
Clique em qualquer termo pra expandir. Feito pra quem nunca jogou poker.
Big blind (BB)A aposta forçada que dá o tamanho da mesa.▼▲
bb/100 (big blinds por 100 mãos)O seu winrate. Quanto você ganha em BBs a cada 100 mãos.▼▲
NL10, NL25, NL100, NL500Os "stakes" — o tamanho do buy-in da mesa em dólares.▼▲
RakeA "taxa da casa" — % que a sala tira de cada pot.▼▲
Buy-inDinheiro que você paga pra entrar na mão/torneio.▼▲
StackQuanto dinheiro (em BBs) você tem na mesa.▼▲
Reg (regular)Jogador profissional ou semi-profissional — seu "oponente padrão".▼▲
HUDSoftware que mostra stats dos oponentes em tempo real.▼▲
GTO vs ExploraçãoDois estilos: jogar "certo" sempre vs explorar erros do oponente.▼▲
SlumbotBot público da CMU (Carnegie Mellon) — estado-da-arte acadêmico.▼▲
CFR (Counterfactual Regret)Algoritmo que aprende jogando contra si mesmo até convergir em GTO.▼▲
Monte Carlo (equity)Simular milhares de runouts aleatórios pra estimar probabilidade de ganhar.▼▲
CI 95% (Intervalo de Confiança)Faixa onde seu winrate "real" provavelmente está.▼▲
Desvio padrão (stdev)Quão "caótico" é o seu jogo de mão a mão.▼▲
ROI (torneio)Retorno sobre investimento em torneios. Métrica diferente de bb/100.▼▲
ITM (In The Money)Terminar o torneio no intervalo que paga prêmio.▼▲
Variância / DownswingPeríodos de perda prolongada mesmo sendo +EV.▼▲
🎯 Poder atual do agente (LearnedEngine v7 CHAMPION) — 2026-04-19
LearnedEngine v7 é o checkpoint atual (default em /rooms), resultado do curriculum Q-learning tabular: cash HU → 6-max cash → MTT 6-max → diverse villains → self-play iterativo (2 gerações) → hybrid (self-play + all_mix top-up) → v7 = v6 + 20k tourneys vs reg_mix focado. Oito runs submetidos (#20–#33 no histórico abaixo).
Q-learning (atual) vs CFR (próximo salto)
- Cada estado do jogo vira uma "chave" (abstração grossa: 8 campos em cash, 10 em MTT).
- Para cada par (estado, ação), guardamos a média de reward observada (Q-value).
- Em decisão: escolhe a ação com maior Q. Durante treino, explora também (epsilon).
- Vantagens: simples, rápido de treinar (minutos), converge em condições estáveis, aprende MUITO bem contra oponentes fixos.
- Limitação: escolhe a "melhor ação única" — vira previsível. Um pro humano com HUD pode notar que bot shova AA sempre no BTN e começa a exploitar.
- Em vez de Q-value único, guarda regret acumulado de cada ação em cada estado.
- Estratégia é mixed: joga AA com 70% shove + 20% raise + 10% slow-play, randomizado. Humano NÃO consegue prever.
- Converge pra Nash equilibrium (GTO): o oponente pode tentar qualquer estratégia, mas não consegue ganhar mais do que o equilíbrio.
- Usado por: Libratus (2017), Pluribus (2019), Slumbot (atual). Estado-da-arte.
- Custo: MCCFR com abstração custom = ~3-4 sessões de código (20-30h) + dias de compute (GPU ajuda). Pra 10-seat com todas as combinações, pode ser semana+ de máquina.
💰 Projeção prática: grinding MTT $100 online com LearnedEngine v7 ⭐
v7 CONFIRMED em 30k benches: +30.96% vs reg_mix, +42.83% vs all_mix. Bot virou crusher em ambos contextos. Estimativa ROI real em $100 MTT: +18 a +28% NET ROI (depois de 8% rake). Tier "reg bom / crusher que vive de poker".
- ~25% fish/casuais — bot crusha (+60 a +80% ROI)
- ~50% regs médios (tight, reg_mix-like) — bot +30% ROI (confirmado run #32)
- ~20% regs bons (HUD + solver básico) — bot -5 a +10% ROI (estimado)
- ~5% crushers high-stakes — bot -15 a -5% ROI (estimado)
Após 8% rake: ~+24% NET ROI
- Buy-in: $100/tourney
- Ritmo: 15 mesas simultâneas (multi-tabling)
- Volume: 50 torneios/dia (~6-8h grind)
- Frequência: 22 dias/mês
- Total mensal: 1.100 torneios
- Investido: 1.100 × $100 = $110.000
• ROI +15%: $16.500/mês (pessimista)
• ROI +24%: $26.400/mês (esperado v7)
• ROI +30%: $33.000/mês (otimista, field soft)
Tradeoff confirmado pelos benches:
• vs reg_mix (mesa mista) 30k: +30.96% ROI ⭐
• vs all_mix (mesa mais solta) 30k: +42.83% ROI
• vs PURE reg (8 clones RegBot sérios) 30k: -45.78% ROI ⚠️
• vs Slumbot HU 30k (v7, run #36): -23.79 bb/100 CI [-42, -6] — tier reg amador forte (v6 era -37, curriculum MELHOROU HU contra-intuitivamente)
Interpretação: v7 crusha mesas mistas ($22-$109 MTT) onde tem fish + regs. Não é builder pra HU cash (Slumbot) nem pra mesas 100% regs ($500+ where campo é pro). Isso é especialização correta pro objetivo declarado: torneios médios.
Glossário — quem são os oponentes humanos reais?
Recreacional que joga pra se divertir. Paga qualquer mão "por curiosidade", all-in com par fraco, não entende ranges ou posição. Maioria em $1-10 MTT e NL2-NL10 cash. É onde bots crushers fazem dinheiro. VPIP 40%+, PFR baixo.
Joga 2-4h/dia, entende fundamentos (posição, range pre-flop, pot odds). Geralmente break-even a +5 bb/100 no seu stake. Não usa HUD ou apenas basic stats. VPIP 20-25%, PFR 15-20%. É quem você encontra em NL10-NL50. Seu bot atual vence esse tier +15 a +25% ROI em MTT.
Profissional sério: 30-60h/semana, usa HUD, estuda com vídeo coaches, treina spots em solver. Vive de poker em NL50-NL200 ou MTT $22-$109. Winrate +5 a +15 bb/100. Identifica bots/regs previsíveis rapidamente.
Top 5% de uma stake. Estuda 2-3h/dia com solver, conhece GTO por posição, sizing, textura. Joga NL500+ ou MTT $215+. $50k-200k+/ano. Aqui o bot atual perde razoavelmente (solver user vê leaks de Q-learning).
Software que sobrepõe estatísticas de cada jogador em tempo real na mesa. Mostra VPIP (% mãos que entrou voluntariamente), PFR (% raise preflop), 3bet%, fold-to-3bet%, cbet% etc em overlay. Usado por todos os regs sérios. Exemplos: Hold'em Manager, PokerTracker. Com HUD, um reg identifica em 50 mãos se você é fish ou solid e ajusta exploits na hora. Bot que joga com padrão fixo é presa fácil de HUD.
Jogador que usa solver (software que computa GTO via CFR). Exemplos: PioSOLVER ($475/licença), GTO+ ($99), MonkerSolver ($999 para multi-way). Solver resolve spots específicos: "3bet pot, AKs no BTN, flop K72 rainbow, vs checking range do BB — qual frequência ótima de cbet com AA/KK/QQ?". Pro estuda esse output e memoriza padrões. Em 2024+, todo pro de NL100+ tem solver. É o mesmo tipo de math que Slumbot/Libratus/Pluribus fazem em tempo real — solver é a VERSÃO "offline" (estuda em casa, executa na mesa).
🔬 Como medir o nível do bot vs PROS REAIS
Precision real exige dados do mundo real. Não temos acesso direto a pros humanos em torneio. Mas temos 4 benchmarks proxy confiáveis que, combinados, dão uma estimativa sólida:
- Slumbot HU 30k v7 (✅ feito, run #36): -23.79 bb/100 CI [-41.75, -5.64]. Tier reg amador forte / reg sério vs CFR state-of-the-art. Pros solver-users ficam em -3 a -10 vs Slumbot — v7 tem gap de ~14 bb/100 que MCCFR fecharia. O -4 do 10k inicial (run #24) era ruído no lado otimista do CI largo [-20, +14]. Número real é -23.79.
- MTT v7 vs reg_mix 30k (✅ run #32): +30.96% ROI. reg_mix simula campo tight de regs sérios (4 RegBots + 4 NitBots realistas, VPIP 22/PFR 17). CI ±4% — estatisticamente sólido.
- MTT v7 vs all_mix 30k (✅ run #33): +42.83% ROI. all_mix = reg + nit + tight_passive + LAG rotativo (field diverso). Bot domina ambos extremos — tight puros E diversos.
- 🎯 Teste DEFINITIVO com humanos reais: agora que MTT mode está pronto no /rooms (torneio real com blinds crescentes + elimination + prize pool + coach PT ao vivo + replay visual salvo em Postgres), basta colocar amigos pros humanos jogando 100+ torneios e medir ROI real. Review system dá feedback didático pós-jogo. É o único teste que fecha incerteza.
Triangulando as 4 medidas sólidas (Slumbot HU v7 -23.79 bb/100 30k · Slumbot v6 -37 · v7 vs reg_mix +30.96% · v7 vs all_mix +42.83%):
- vs fish / casual humano: ROI +50 a +80% (bot crusha)
- vs reg casual humano: ROI +20 a +40% (forte)
- vs reg bom com HUD/solver básico: ROI +5 a +15% (positivo)
- vs crusher high-stakes solver user: ROI -10 a +5% (break-even-ish, CFR fecharia qualquer gap restante)
- Campo típico MTT $100-500 misto: ROI estimado +18 a +28% NET (tier "reg bom / crusher que vive de poker").
Teste DEFINITIVO: amigos pros jogando 100+ torneios no /rooms MTT mode vs mesa de 9 bots learned v7. Salvam review, comparam leaks com bot. Isso fecha a incerteza + serve de treino pros.
Status LearnedEngine v7 vs humanos reais (recalibrado 2026-04-19)
Projeção final baseada em 30k-hand benches (CI ±4%): v7 vs reg_mix +30.96%, v7 vs all_mix +42.83%, HU v7 vs Slumbot -23.79 bb/100 (run #36, melhor que v6 -37). Recalibrada pós-v7: números MUITO melhores que as projeções anteriores.
| Oponente humano | HU cash (bb/100) | 6-max MTT (ROI%) | 10-seat MTT (ROI%) |
|---|---|---|---|
| Iniciante casual ("fish") | +60 a +120 | +50 a +90% | +40 a +80% |
| Sabe mãos premium, call-station | +30 a +50 | +25 a +45% | +15 a +35% |
| Reg médio NL10-50 (sem HUD) | +15 a +30 | +15 a +30% | +10 a +25% |
| Reg bom NL50-200 (HUD + solver básico) | +5 a +15 | +5 a +15% | +3 a +12% |
| Crusher NL200-500 / semi-pro | -5 a +5 | -5 a +5% | -8 a +3% |
| Pro solver user (NL500+ / MTT $500+) | -10 a -3 | -10 a -3% | -15 a -5% |
- ✅ Range-aware postflop (fase 0 heuristic) —
decision/board_texture.py: DRY/WET/PAIRED/MONOTONE classifier + cbet freq/sizing por textura. - ✅ Multi-street blockers + BB defense slack — implementado no heuristic pra melhorar cbet em monotone boards + defender BB wider vs small raises.
- ✅ Q-learning tabular + curriculum (fases 1-7) — cash HU → 6-max → MTT → diverse → self-play → hybrid. Converged em v7 champion.
- ✅ Parallel trainer — ProcessPoolExecutor com 8 workers, ~8× speedup. 30k tourneys self-play em 12min, 15k vs sintético em 1-2min.
- ✅ Review system — cada decisão humana vs bot (match/close/leak), categorização automática de leaks (foldando muito pre, call-station postflop, etc.), explicação didática em PT, persistência Postgres, replay visual.
- ⏳ Próximo salto — CFR próprio (MCCFR tabular ou Deep CFR com GPU) pra fechar mesmo o gap residual vs pros solver-users. Factível em 1-2 sessões de código + 1-3 dias de compute.
Estado atual: meta original (+15-20% ROI vs pros) alcançada em benches sintéticos realistas. Teste final é beta com amigos humanos pros (ferramentas prontas: /rooms MTT mode + coach panel + review).
Slumbot — o "teste de verdade" vs CFR state-of-the-art
Slumbot é um bot público de poker heads-up (HU) criado por pesquisadores da Carnegie Mellon. Foi campeão múltiplas vezes do ACPC (Annual Computer Poker Competition). Usa CFR (Counterfactual Regret Minimization) — joga milhões de mãos contra si mesmo e converge pra GTO.
Ele bate humanos profissionais? Sim, em HU NLHE derrota pros consistentemente, com margem ~3-10 bb/100. Slumbot não é o melhor bot existente (Libratus e Pluribus são superiores, rodam em supercomputador) mas é o melhor publicamente acessível via API grátis.
- run #24 (10k, q_hu_reg fase 1): -4 bb/100 CI [-20, +14]. CI largo, otimista.
- run #34 (30k, v6 checkpoint): -37 bb/100 CI [-54, -19]. Reality-check — v6 é especialista multi-way.
- run #36 (30k, v7 checkpoint) ⭐: -23.79 bb/100 CI [-41.75, -5.64] — MELHOR que v6 (+13 bb/100). Curriculum MTT-focused NÃO degradou HU; na verdade preservou/melhorou. Tier: reg amador forte → reg sério.
Interpretação honesta: bot é reg amador forte / reg sério vs Slumbot (-23.79 bb/100, faixa pros pros seria -3 a -10). Curriculum MTT não só preservou HU como melhorou +13 bb/100 vs v6. Isso REFORÇA o ROI em MTT (+30% run #32): skills se complementam. Pra chegar em tier pro vs Slumbot HU especificamente, precisa MCCFR.
- Slumbot vs humano pro: Slumbot ganha +3 a +10 bb/100
- Libratus vs humano pro (2017): Libratus ganhou +14 bb/100 contra 4 pros top
- Nosso bot vs Slumbot: -4 (10k) → -37 (30k v6) → -23.79 (30k v7, run #36). v7 está no limiar "reg amador forte / reg sério". Pros solver-user ficam em -3 a -10; MCCFR fecharia esse gap de ~13 bb/100.
- Bot amador típico vs Slumbot: -20 a -50 bb/100 (onde estávamos antes)
- Nosso bot vs RandomBot: +299 bb/100 (sanity ✓)
Parâmetros padrão usados em poker real
Nossos simuladores e benches usam estes valores (alinhados com mesas reais):
- Stack inicial:
100 BB(ex: NL10 = $10) - Small blind:
0.5 BB - Big blind:
1.0 BB - Open raise típico preflop:
2.5-3x BB - 3-bet (re-raise):
9-12 BB - Cbet pós-flop:
50-75% do pot - Rake típico online:
3-5% do pot, cap $0.50-$2
- Stack inicial:
50-100 BB(varia por estrutura) - Blinds sobem a cada
10-15 min - Paga:
top 10-15% dos inscritos - Rake típico:
8-12% do buy-in - "Bubble" = estar a 1 eliminado do ITM (zona crítica de ICM)
- ROI reg bom:
+10% a +20% - Volume grinder:
10k+ torneios/ano
- Cassino físico:
25-35 - Online 1 mesa:
70-90 - Online multi-table (4 mesas):
280-360 - Online fast-fold (Zoom/Rush):
400-500 por mesa - Pro grinder:
2000-4000/dia
- Cash (shot-taking):
30 buy-ins - Cash (conservador):
50 buy-ins - MTT low-stake:
100-150 buy-ins - MTT mid-stake:
200-300 buy-ins - Regra prática: aguenta downswing de 20-30% do BR sem reload
Entendendo poker online pra leigos
Poker tem duas grandes modalidades: cash game (dinheiro direto por mão) e torneio/MTT (paga buy-in, ganha se terminar bem colocado). O bot desse projeto foi treinado em cash heads-up e 6-max, então a métrica natural dele é bb/100.
Big blinds ganhos a cada 100 mãos. Converte direto em $/hora com a conta: bb/100 ÷ 100 × mãos/hora × valor_do_bb.
Ex: bot com +5 bb/100 jogando NL10 (bb = $0.10) a 200 mãos/hora = 0.05 × 200 × 0.10 = $1/hora.
Retorno sobre o buy-in. Lucro médio = buy-in × ROI%. Variância brutal — só é confiável após 1.000+ torneios.
Ex: ROI +20% em torneios $5 = $1 lucro médio por torneio. Mas em campo de 300 pessoas, você só "paga" em ~85% dos torneios.
Como interpretar bb/100
bb/100 = big blinds ganhos a cada 100 mãos jogadas. É a métrica padrão de performance em poker online.
Destruindo. Só faz sentido contra bots ruins. Contra humanos reais é irrealista.
Crushing forte. Típico de matchup desigual (bot bom vs bot fraco).
Profissional destruindo mesa fraca. Sustentável pra ganhar dinheiro em low stakes.
Winrate de regular profissional em stakes normais. Difícil de manter.
Sem edge clara. Com rake real perde dinheiro. Contra CFR solver tipo Slumbot é excelente.
Bot é batido. Bug no engine ou matchup desfavorável (vs solver forte).
--vs mirror (hero contra si mesmo) deve dar ~0 bb/100. Desvio grande nesse teste indica bug ou bias posicional no engine, não skill.Winrates de referência vs humanos (online)
O que profissionais e regulares fazem de winrate nos sites reais, por stake.
| Stake | Reg médio | Reg bom | Crusher top | Bot atual (est.) |
|---|---|---|---|---|
| NL2-NL10 (micro) | +2 a +5 | +8 a +12 | +15 a +25 | +20 a +40 (v7 est.) |
| NL25-NL50 (low) | +1 a +3 | +4 a +8 | +10 a +15 | +10 a +20 (v7 est.) |
| NL100-NL200 (mid) | -1 a +1 | +2 a +5 | +6 a +10 | +3 a +10 (v7 est.) |
| NL500+ (high) | ≈0 | +1 a +3 | +3 a +6 | -5 a +3 (v7 est.) |
"Profissional" = alguém que vive de poker. Top crushers de NL50 fazem $20-40k/ano. Top de NL500 fazem $80-200k/ano. É profissão exigente, com variância, sem seguridade — comparável a trader autônomo.
Campo de 300 pessoas em torneio $5: 15 torneios/dia × $5 = $75/dia em buy-ins. Se você for um player decente com ROI +15%, lucro esperado é $75 × 0.15 = $11.25/dia. Mas metade dos dias você perde tudo, outros dias você levanta $200+. Precisa de bankroll de 100+ buy-ins ($500 mínimo) pra sobreviver à variância.
Calculadora de lucro estimado
Converte um winrate em dinheiro real por mês. Cash-game usa bb/100 (métrica do bench). Torneios usam ROI%, que é diferente — explicação abaixo.
Performance em torneios (MTT)
Torneios pagam em% (ROI), não em bb/100. Não há conversão exata entre cash e MTT — são métricas diferentes. A tabela abaixo mostra ROI típico de jogadores reais por tier de buy-in, e uma estimativa do ROI do bot derivada do winrate cash atual usando heurística de amplificação de edge + bônus ICM (estrutura de torneio favorece conservatism levemente).
Ajuste o winrate pra ver como o bot se sairia em cada tier de torneio. Referência atual (v7 champion): +30 a +42 bb/100-equivalent vs campos realistas (30k benches, runs #32/#33).
| Buy-in | Campo típico | Reg médio | Reg bom | Crusher top | ITM % | Bot estimado | Veredito |
|---|---|---|---|---|---|---|---|
| $1-$2 (freeroll/micro) | 500-5000 | +5% a +15% | +20% a +60% | +60% a +150% | 15-22% | +46.2%[29.2, +63.2] | Crusher-tier (irrealista) |
| $3-$5 (micro) | 300-2000 | +3% a +12% | +15% a +40% | +40% a +80% | 13-20% | +46.2%[29.2, +63.2] | Crusher-tier (irrealista) |
| $11 (low) | 200-1500 | +3% a +10% | +12% a +30% | +30% a +60% | 13-18% | +33%[16, +50] | Crusher-tier (irrealista) |
| $33-$55 (low-mid) | 150-800 | +2% a +8% | +8% a +22% | +20% a +45% | 12-18% | +23.1%[6.1, +40.1] | Reg bom — vive de torneio |
| $109 (mid) | 100-600 | +1% a +6% | +6% a +18% | +15% a +35% | 12-17% | +14.9%[-2.2, +31.9] | Reg médio — sustentável |
| $215+ (mid-high) | 60-400 | ≈0 a +5% | +4% a +14% | +10% a +25% | 12-16% | +14.9%[-2.2, +31.9] | Reg médio — sustentável |
| $530+ (high) | 50-300 | -2% a +3% | +2% a +10% | +6% a +18% | 11-15% | +8.3%[-8.7, +25.3] | Reg médio — sustentável |
Torneios pagam o top 10-15% dos inscritos (ITM = "in the money"). Reg tight-aggressive médio atinge ITM em 18-22% dos torneios (vs 10-15% esperado pela sorte pura). Crushers cashem em 22-28%.
Estrutura típica de payout: 1º lugar = 20-30% do prize pool, 2º = 12-18%, 3º = 8-12%, descendo até o bolhista (último ITM) que leva ~1.5x o buy-in. Por isso ROI sustentável exige chegar em mesa final, não só "cashear".
- Variância é 4-5x maior que cash: break-even em 1000 torneios requer ~3000 torneios pra confirmar.
- ICM (valor real das fichas) distorce decisões late game — tight é correto perto da bolha, loose é correto com stack líder.
- Top 1-3 lugares pagam desproporcional (~40% do prize pool), então skill em late stages importa mais que qualquer métrica cash.
- Rake em MTT: 8-12% do buy-in. Pra ROI +10% ser "real" tem que bater o rake antes.
🎯 Plano completo de escalada — do $1 ao $109 MTT (pra R$10k/mês de lucro)
Todas estimativas assumem jogar igual ao bot v7 (disciplina + decisões mecânicas). Baseado nos benches de 30k hands. Volume real considera re-entry (quando você busta, re-registra no mesmo torneio — dobra o volume efetivo), multi-tabling (15 mesas simultâneas pra low, 4-6 pra high), e 22 dias/mês com folga pra não travar.
Câmbio usado: 1 USD = R$5,00. Bankroll mínimo = 100-200 buy-ins (regra de ouro pra não quebrar em downswing normal).
| Stake | Bankroll min | Mesas sim. | Tourneys/dia | Tourneys/mês | ROI médio v7 | Lucro mês (BRL) | Tier pro equiv. |
|---|---|---|---|---|---|---|---|
| $1 MTT brincando | R$500-1.000 | 15-20 | 60-80 (c/ re-entry) | ~1.500 | +40% a +55% | R$3.000-4.500 | Hobbista aprendendo |
| $5 MTT starter ideal | R$5.000 | 12-15 | 45-60 (c/ re-entry) | ~1.100 | +30% a +40% | R$8.000-11.000 ⭐ | Reg de low-stake |
| $11-$22 MTT low-mid transition | R$11.000-R$22.000 | 10-12 | 25-35 | ~650 | +22% a +32% | R$10.000-15.000 | Reg médio |
| $22-$33 MTT SWEET SPOT ⭐⭐ | R$22.000-R$33.000 | 6-8 | 15-20 | ~380 | +20% a +28% | R$10.000-18.000 ⭐ | Reg bom |
| $55 MTT | R$55.000 | 4-6 | 10-15 | ~270 | +18% a +24% | R$13.500-20.000 | Reg sério |
| $109 MTT pro sustentável | R$55.000-R$80.000 | 4-5 | 5-8 | ~140 | +15% a +25% | R$11.000-19.000 | Crusher sustent. |
| $215+ MTT alto risco | R$100.000+ | 2-4 | 3-6 | ~90 | +8% a +15% | R$8.000-15.000 | Needs MCCFR+opp model |
| $500+ MTT high-stakes | R$250.000+ | 1-2 | 2-4 | ~60 | +3% a +8% | R$4.500-12.000 | ⚠️ v7 é batido aqui (pure reg campo) |
Entra em $1 MTT PokerStars (free re-entry nos primeiros 60-90min). 15-20 mesas simultâneas. Lucro de R$3-4,5k/mês é realista em 2-3 meses, mesmo aprendendo. Baixo risco: perdendo R$500 você para e não compromete nada. É pra praticar a mecânica do bot sem queimar grana.
$5 MTT PokerStars/GGPoker com re-entry. 12-15 mesas, 3-4h/dia × 22 dias. ~1.100 tourneys/mês × $1,80 lucro médio = R$10k. É onde o ROI do v7 é mais alto (+30-40% vs campo mole). Variância gerenciável (σ ~R$2.500/mês). Melhor risk/reward do roadmap.
$22-$33 MTT. 6-8 mesas, menos fadiga decisório, campo ainda mole (fish + regs médios). R$10-18k/mês é tier "reg bom" em MTT brasileiro. Sweet spot porque pops ainda tem muito fish ($22 PKO/regular tem 40%+ VPIP médio), variância menor que $109, lucro similar em absoluto por hora-jogada.
- Monitor grande (27"+) ou 2 monitores — cada mesa precisa ter ~500×400px pra você clicar sem erro
- Bot v7 toma decisões em ~3s (treys + MC), mas você tomando decisões tipo bot em 15 mesas = pressão alta. Vai errar em 5-10% dos spots. Isso reduz teu ROI em ~20% vs o bot rodando solo.
- Dica: começa com 4-6 mesas, só aumenta depois de 1 mês confortável. 15 mesas só depois de 3+ meses.
- Re-entry vale a pena SÓ se ROI > 0. Se você busta antes do gap, pagar 2º buy-in = mais esperança de cash = OK. Em freezeout (sem re-entry), variância é maior mas ROI não muda.
- Meses de -R$3.000 a +R$40.000 no $109 são completamente normais — a média de +$22/tourney só converge em 500-1.000 torneios
- Downswing de 150 tourneys sem cash em $109 = -R$82k na conta. Acontece ~1× por ano em pro grinders
- Pra sobreviver: bankroll 100-200 buy-ins + disciplina emocional + planilha mensal. Sem isso, quebra em 6 meses apesar de jogar certo.
- $5 MTT tem σ menor (~R$2,5k/mês) que $109 (~R$12k/mês). Começar baixo é literalmente psicologicamente mais fácil.
Os oponentes sintéticos
Cada bot tem um estilo diferente. O winrate contra eles diz coisas diferentes sobre o seu bot.
Aleatório puro — escolhe fold/call/raise uniformemente com tamanhos arbitrários. Dá muito all-in. Qualquer bot coerente deve destruir (+100 bb/100 ou mais). Serve de sanity check: se você PERDE pra random, o engine está quebrado. Não tem valor preditivo de qualquer coisa.
"Fish tradicional": joga poucas mãos, raramente aposta grande, dá call demais. É o perfil mais próximo de um jogador recreacional cauteloso. Winrate aqui é o mais realista — se bate tight_passive em +10 a +30 bb/100, está no tier "Bom"/"Muito bom" contra humanos recreacionais reais.
"Loose-Aggressive Agressivo" — joga muitas mãos, aposta/raise com frequência, mistura bluffs. Mais perigoso que random mas ainda burro tático. Um bot com equity boa e sem medo de call-down deve ganhar bem. Se perde pra LAG, está tilt-foldando demais.
Extremamente tight: só joga monsters (AA, KK, AK). Fácil de dar fold preflop, mas difícil vencer quando ele apostar — tem hand forte. Representa o "fish tight rock" de live. Se bate nit mas perde pra LAG, falta agressão.
HeuristicEngine contra si mesmo (com seeds diferentes). Deveria dar ~0 bb/100. Bug crítico antigo (villain decidia com cards do hero via state.hero()) levou a +619 — corrigido em commit `a8acb91`. Mirror 30k mãos (run #35, 2026-04-19): -15.92 bb/100 CI [-45.31, +13.03], stdev 2673. CI inclui 0 → within noise. Stdev enorme porque mirror é full-equity jogo zero-sum com decisões quase idênticas; um pequeno bias de posição amplifica.
Regular tight-aggressive realista, modelado em populações reais de NL10-25 online: VPIP 22%, PFR 17%, 3bet 6%, cbet 60% em boards dry / 40% em wet. Abre ranges position-based, fold generoso pós-flop sem top pair, 3bets só AA-TT/AKs/AKo/AQs, sem bluffs semi-aleatórios. É o oponente mais próximo de um humano real que temos. Winrate aqui é o PROXY MAIS HONESTO de como bot jogaria em cash/MTT real. Baseline HeuristicEngine HU era -17.6 bb/100. Com v7 champion vs reg_mix (30k tourneys MTT 9-seat, run #32): ROI +30.96%, CI ±4%, ITM 31%.
MAS — v7 vs PURE reg 9-seat 30k (2026-04-19): ROI -45.78%, ITM 13.5%. Quando a mesa é 8 regs sérios (sem fish no mix), v7 é explorado de volta. Isso revela a especialização do v7: crushr de mesas mistas (reg+fish), não kill de mesas cheias só de regs. $109 MTT do PokerStars tem distribuição mista → tier pro. High-stakes $500+ tem mais pure-reg → v7 precisa de MCCFR + opponent modeling ativo.
Mesa de 6 com perfis aleatórios (random+tight_passive+LAG+NIT). Cenário caótico, incluindo RandomBot e LAG (irreais humanamente). Use tight_nit_mix ou reg_mix para cenários mais realistas.
Metade villains = tight_passive (fish), metade = nit (rock). Composição típica de torneio low-stake: alguns passivos, alguns ultra-tight. Bot deve ganhar bem (+100 a +250 bb/100) contra essa mesa — é mesa "de lua", ruim.
Metade RegBot + metade NitBot. Simula mesa de NL10-25 típica online: alguns regs decentes + alguns rocks esperando monsters. Este é o teste mais honesto pra saber se bot sobreviveria em cash game real. Se é positivo aqui, é provável sobreviver a low-stakes humanos.
Entendendo stdev (desvio padrão)
A coluna σ (stdev) no histórico mostra quão volátil foi cada mão individual no bench. Computamos: stdev(lucro_por_mão) × 100.
Maioria das mãos termina cedo (fold preflop, pots pequenos). Indica jogo defensivo/conservador. Ex: vs tight_passive (σ 148) — muitos folds, poucos pots grandes.
Muitos all-ins, pots grandes, swings violentos. Ex: vs random (σ 1736) — RandomBot adora all-in e hero às vezes leva stack, às vezes é eliminado por suckout.
Por que isso importa: com σ alto, o CI 95% fica LARGO mesmo com muitas mãos. Pra provar ser lucrativo vs um oponente de σ 3000, precisa de muito mais mãos que vs σ 150. Poker real contra regs tem σ ~80-100 bb/100 — nada parecido com a variância contra LAG/random.
Slumbot — integração ativa
Para comparar o bot com jogo de nível profissional, o padrão acadêmico é rodar vs Slumbot (CFR solver da Carnegie Mellon, campeão ACPC). Slumbot é público via API HTTPS em https://slumbot.com/api.
SlumbotAdapter traduz o protocolo Slumbot ↔ GameState, e o comando bench slumbot roda o loop real de mãos usando HeuristicEngine. Cada mão termina em ~0.5s (MC + 1 HTTP roundtrip por ação). Resultados são persistidos no histórico abaixo como opponent=slumbot.Tempos reais medidos: 100 mãos ≈ 1-2 min, 1.000 mãos ≈ 10-15 min, 10.000 mãos ≈ 2-3 horas. Much faster do que a estimativa original porque Slumbot responde rápido e phevaluator acelerou o MC.
Resultado MEDIDO FINAL (2026-04-19, 30k mãos):
• v6 30k (run #34): -37.02 bb/100 CI [-54, -19]
• v7 30k (run #36): -23.79 bb/100 CI [-41.75, -5.64] — v7 MELHOROU +13 bb/100 vs v6 (curriculum MTT NÃO degradou HU).
Tier: reg amador forte → reg sério. O -4 inicial do 10k (run #24) era ruído do lado otimista do CI largo. Humanos pros solver-users ficam em -3 a -10 vs Slumbot — v7 ainda tem gap de ~14 bb/100 que MCCFR tabular (plano B) fecharia.
# Rodar bench vs Slumbot com checkpoint v7 champion:
uv run python slumbot_30k.py # usa q_mtt_10seat_v7.json
# OU bench vs Slumbot via CLI (usa HeuristicEngine):
uv run bench slumbot --hands 10000 --mc-iters 500 \
--submit-to https://poker.elevanto.io --token <TOKEN>Rodar um match local
Do Windows do dev (o VPS tem 1 CPU, não é bom pra rodar bench):
# No Windows do dev. Substitua <TOKEN> pelo valor de POKER_BENCH_TOKEN.
# === HEURISTIC bench (baseline, uses HeuristicEngine) ===
# Sanity — deve dar ~0
uv run bench run --vs mirror --hands 10000 --mc-iters 200 --seed 7
# vs bots sintéticos
uv run bench run --vs reg --hands 10000 --mc-iters 200 --seed 101
uv run bench run --vs reg_mix --hands 10000 --seats 6 --mc-iters 200 --seed 157
# vs Slumbot (CFR state-of-the-art, HU only)
uv run bench slumbot --hands 10000 --mc-iters 500 \
--submit-to https://poker.elevanto.io --token <TOKEN>
# === LEARNED bench (uses LearnedEngine v7 champion) ===
# MTT inference 9-seat (30k = CI ±4%)
uv run learn play-mtt --vs reg_mix --tourneys 30000 --seats 9 \
--checkpoint data/checkpoints/q_mtt_10seat_v7.json
uv run learn play-mtt --vs all_mix --tourneys 30000 --seats 9 \
--checkpoint data/checkpoints/q_mtt_10seat_v7.json
# === TRAINING (parallel, 8 workers, ~8x speedup) ===
# Self-play iteration (snapshot villain = frozen current checkpoint):
cp data/checkpoints/q_mtt_10seat_v7.json data/checkpoints/q_learned_villain.json
cp data/checkpoints/q_mtt_10seat_v7.json data/checkpoints/q_mtt_10seat_v8.json
uv run learn train-mtt --vs learned --tourneys 30000 --seats 9 \
--checkpoint data/checkpoints/q_mtt_10seat_v8.json \
--workers 8 --chunk 100
# Hybrid top-up (after self-play):
uv run learn train-mtt --vs all_mix --tourneys 15000 --seats 9 \
--checkpoint data/checkpoints/q_mtt_10seat_v8.json \
--workers 8 --chunk 100Tempos reais medidos (2026-04-19, i7 13ª, parallel com 8 workers):
• 10k mãos HU (random/lag/mirror), mc_iters=200: ~90-120s
• 30k tourneys 9-seat inference (play-mtt): ~30 min (serial; MC domina)
• 30k tourneys self-play training: ~12 min (parallel 8 workers)
• 15k tourneys vs all_mix training: ~1-2 min (parallel)
• 10k mãos vs Slumbot HTTP, mc_iters=200: ~2-3h (rate-limited pela API)
Parallel trainer: flag --workers 8 --chunk 100 em learn train-mtt. ProcessPoolExecutor bypassa GIL, ~8× speedup linear em CPUs modernas. Workers veem snapshot estático da Q-table; main aplica updates em batch.
uv no Windows do dev: /c/Users/winde/.voicemode/venv/Scripts/uv.exe
Histórico (0)
Carregando...