Mostrando las entradas para la consulta hhjreader ordenadas por relevancia. Ordenar por fecha Mostrar todas las entradas
Mostrando las entradas para la consulta hhjreader ordenadas por relevancia. Ordenar por fecha Mostrar todas las entradas

HHJReader versión Android. Abandono.

Me rindo.

como ya conté en Poker-red (http://www.poker-red.com/foros/showthread.php?86623-Pokerstars-en-android&p=1193616&viewfull=1#post1193616) he estado intentando desarrollar la versión Android del HHJReader (estupendo programa).

El HHJReader (http://isabella70.blogspot.com.es/search?q=hhjreader) es un programa en Java que hice hace unos años (en 2009!). El programa era capaz (de hecho lo sigue siendo) de leer manos del historial y sacar estadísticas de los jugadores en tiempo real.

Entonces dejé de jugar y abandoné el proyecto. Sin embargo hace unos meses volví a jugar, esta vez con la versión Android de PokerStars (en el móvil y en el tablet). Como cambié de plataforma decidí dedicar unas semanas a desarrollar una versión Android del mismo programa pero me ha resultado imposible. Me rindo. Abandono.

Es cierto que la versión en Android de PokersStars tiene un log donde guarda eventos del programa, incluso se ven las manos que recibe el jugador (Hero) y el board, pero no se guardan todos los eventos o, al menos, no he sido capaz de descifrarlo. Además sólo guarda las mesas que estás viendo, si tienes abiertas varias mesas sólo registra aquella que está en primer plano. Por último, la multitarea no va muy fina (al menos, cuando estás ejecutando el software de PokerStars mi programa se queda muy a menudo en modo suspensión).

Resumen, abandono el HHJReader versión Android. Voy a esperar a que haya terminales con Ubuntu Phone. Mientras tanto voy a evolucionar la versión de 2009 de HHJReader: se llamará HHJReader 2013 y estará orientado al Zoom que es lo que juego ahora. La versión anterior estaba orientada a torneos.

Si alguien quiere un programa Android que no funciona que me escriba :P

HHJReader 2.0. Descarga gratis

El proyecto HHJReader (estupendo programa) está parado.
Labot parece que tiene mucho trabajo y ya no tiene tiempo para ayudarme con ello. Mi intención de aprender a programar en Java sólo me dio para el básico "public class HelloWorld".
Así que, hasta que convenza a otro programador o aprenda a programar, he aparcado el proyecto.

He subido la última versión que desarrollamos. El enlace está al final de este mensaje.

Recordad las limitaciones de HHJReader 2.0:
- sólo "lee" ficheros de manos de PokerStars en Inglés.
- no puede abrir varios ficheros simultáneamente, pero sí puedes ejecutar el programa varias veces.

Si queréis saber qué es capaz de hacer este programa, podéis consultar las entradas de este blog sobre HHJReader: http://isabella70.blogspot.com/search?q=hhjreader

Para descargarlo podéis usar el siguiente enlace (no he encontrado ningún hosting mejor): http://www.filefactory.com/file/a2ga953/n/HHJReader_v2-0_zip

El programa se suministra "tal cual", no garantizamos ningún tipo de soporte ni ayuda.

FPDB. Free Poker DataBase

FPDB es un tracker gratuito (software open source). Es similar, en principio, a nuestro HHJReader (estupendo programa).

Las principales diferencias:
1. HHJReader está escrito en JAVA y es autocontenido, no requiere instalación ni librerías adicionales excepto el intérprete de JAVA. FPDB está escrito en Python y requiere algunas librerías. La instalación de FPDB es, cuando menos, tediosa.
2. HHJReader no guarda la información, trabaja sobre un único fichero que carga en memoria. FPDB utiliza una base de datos (Postgres o Mysql) donde almacena los datos.
3. HHJReader muestra la información en una ventana independiente mientras que FPDB lo muestra en modo HUD (Heads-Up Display) sobre la misma ventana de juego.
4. FPDB tiene más estadísticas que HHJReader y es configurable mediante un complejo fichero XML que hay que editar a mano.

Lo mejor de todo: después de un par de horas he conseguido hacer funcionar el FPDB en mi portátil. Adjunto prueba gráfica. Voy a jugar con FPDB un par de días y publicaré aquí un análisis más detallado sobre este software.

HHJReader. Perfil de los jugadores

Para terminar el repaso de los estadísticos de HHJReader (estupendo programa) vamos a fijarnos en la columna de perfiles (profile).



En esta columna indicamos el perfil del jugador en función de sus valores actuales de VP$IP, RPF y AF. La clasificación depende del nivel de juego y otros factores. En la imagen siguiente se ven los valores iniciales que utilizamos en HHJReader, aunque estamos ajustando estos valores continuamente. En realidad, lo hacemos tantas veces que vamos a hacer que sean configurables por el usuario.



En la imagen también se ve cuál es mi objetivo: ser un águila-triste ;)

La ventaja de los perfiles, sobre todo con HHJReader que no permite mostrar esta información en la propia ventana de juego, reside en que de un vistazo te clasifica cada jugador.

En los niveles ínfimos en los que me muevo abundan los siguientes tipos:
- MANIAC: te dan la tarde, son los protas de la mesa, no dejan pasar una mano sin subir o resubir. Por suerte, acaban siendo eliminados pronto.
- GAMBLER: va a todas las manos y las juega como si fueran buenas. Aquí es donde acabo yo siempre.
- FISH y CALLING STATIONS: van a todas las manos a ver si "aciertan" con el flop. Normalmente el flop no está de su lado y subvencionan al resto de la mesa :)

HHJReader. Estadística AF



Continuamos analizando cómo calcula el HHJReader (estupendo programa) sus estadísticos. Hoy toca el AF.

Definición de AF:
AF significa literalmente "factor de agresividad" (Aggression Factor), aunque es importante aclarar que se trata de agresividad post flop. Relaciona los movimientos (bet, call, raise) del jugador en su juego post-flop.

Cálculo del AF:
Para calcular el AF, contamos en las calles post-flop (flop, turn y river) cuántas veces se hace call, cuántas bet y cuántas raise. AF es la relación entre el juego agresivo (bet + raise) y el juego pasivo (call): en resumen, una división.
AF puede tomar cualquier valor desde 0 (nunca bet o raise) hasta infinito (nunca call).
En la siguiente versión de HHJReader incluiremos los valores de "agresividad por calles", esto es, el AF en cada una de las tres calles por separado.

Valores recomendados
Lo bueno del AF es que define el estilo de juego del jugador y depende menos del "entorno" (la mesa, los otros jugadores, etc.). A partir de 2.0 de AF se puede hablar de juego agresivo. Los jugadores que empiezan suelen ser poco agresivos porque, como todo el mundo sabe, es muy poco probable enganchar una jugada en el flop. Así que el jugador novato ve el flop, comprueba que no ha pillado nada y se tira o, como mucho, hace call para ver si tiene más suerte en el turn. Los jugadores más agresivos aprovechan esto para ganar la mano sin llegar al showdown o, incluso, para engordar el bote a costa de los calls de los incautos.

Es importante (y por eso vamos a incluirlo en futuras versiones) diferenciar el AF por calles. Lo lógico es que el AF en el flop sea mayor que en el turn y éste, a su vez, mayor que en el river. En el flop eres agresivo para tirar de la mesa las manos y proyectos que pueden competir contigo en el showdown, pero en el river ya no puedes mejorar tu mano y, si has sido agresivo en las otras calles como debe ser, el rival que ha aguantado hasta aquí tiene algo (o es tan pardillo como tú).
Otra forma de verlo: en el flop eres agresivo por norma (porque tienes un proyecto, porque tienes jugada o porque, ya que has visto el flop, prefieres dominar la mano a que la mano te domine a ti); en el river, por el contrario, eres agresivo porque has calculado que compensa.
Razones para ser agresivo en el river:
- jugarse un farol (que siempre es mala idea),
- aumentar el bote cuando tienes seguro la mejor mano posible -nuts- (que ocurre pocas veces)
- exprimir al máximo a un villano cuando has leído perfectamente su mano y sabes con seguridad que vas por arriba (esto no es fácil y menos con un 100% de seguridad).
El resto de las veces (que son muchas más) ser demasiado agresivo en el river cuesta dinero.


mañana más

El software HHJReader. Introducción

Hay miles de programas sobre poker. En este post de spainful en poquer-red tenéis una introducción muy completa sobre el tema.

El software fundamental para jugar en red es un buen analizador que te permita calcular estadísticas (sobre todo las propias) y analizar la evolución de las mismas. En el mercado hay dos paquetes muy populares de este tipo: Holdem Manager y Poker Tracker.

Yo los probé y detecté varios inconvenientes:
- son muy pesados, no van ágiles en mi portátil del curro;
- tienen una instalación y configuración compleja, no puedes instalarlos antes de jugar y desinstalarlos después;
- utilizan motores de base de datos también pesados;
- necesitan permisos de administrador;
- son caros.

Así que, aprovechando que sé algo de esto del software (y mi vecino Labot algo más) decidimos hacer nuestro propio tracker: HHJReader.

HHJReader (Hand History Java Reader) es un tracker en tiempo real para Poker Stars que está desarrollado en Java y ocupa menos de 1 MB. Os dejo una captura de este estupendo programa que comentaremos en próximas entradas.

HHJReader. Estadística VP$IP



Vamos a analizar cómo calcula el HHJReader (estupendo programa) algunos estadísticos. Hoy toca el VP$IP (Voluntary Put Money In Pot)

Definición de VP$IP:
número de veces que el jugador pone dinero voluntariamente en el bote para ver el flop, aunque luego no lo vea (eg, porque nuestro jugador hace call, otro jugador posterior hace raise y nuestro jugador se tira). Como en todos los estadísticos se cuenta las veces que el movimiento se hace pudiéndose hacer otro movimiento.

Cálculo del VP$IP:
muy fácil, es el número de manos en los que se pone dinero en el bote en preflop de forma voluntaria entre el número de manos jugadas; teniendo en cuenta algunas situaciones:
1. si es BB y hace check no se cuenta la mano.
2. si es BB y la mano viene con raise se cuenta la mano de forma normal (como si no fuera BB)
3. si el jugador está "ausente" (sit out) no se cuenta la mano. Esto es un problema porque el jugador ausente puede apuntarse a la mano una vez iniciada (y vista su mano) por lo que, ocasionalmente, aparecen VP$IP mayores de 100% (sic)

VP$IP recomendados
depende... de la posición, del número de jugadores, de si hay antes, de la relación entre antes y SB, del VP$IP de la mesa, etc.
Algunos autores hablan de 12-15% como valor óptimo, otros de 22-26% y otros del 60% del VP$IP de la mesa (éste es valor que más me gusta a mí).
No es muy útil ser el más tight del mundo y jugar sólo AA, KK, QQ si en cada mano van 4 rivales al flop.

Mi VP$IP
En la imagen que incluyo se puede ver que en esa mesa tengo un bonito VP$IP de 50% (39/78). Estos datos son de una mesa (los datos de HHJReader son siempre por partida o torneo). Eso es normal (o defendible) si tenemos en cuenta que estamos al final de un sit&go en el que he llegado al heads up (de hecho, gané la partida). Además, ésta debió ser una mesa muy mala porque mi W$SD es del 73% !!!


otro día seguimos con los demás estadísticos

HHJReader. Principales features (1)

Segunda entrada donde comentamos este "estupendo" programa.

El software lo hemos desarrollado adaptándolo al tipo de juego que hago: torneos MTT o Sit&Go de una mesa, aunque también funciona en mesas "normales".


Principales features (o funciones, como prefiráis):
1. Lee ficheros HH (hand history) de Poker Stars. Actualmente sólo lee ficheros en Inglés y sólo de Poker Stars pero la arquitectura modular del programa permite integrar dinámicamente analizadores (parsers) para otros sites o idiomas.
2. Seguimiento de ficheros durante la partida. Esto significa que los datos del programa se actualizan al cambiar el fichero mientras juegas. He visto que, por ejemplo, PokerStars actualiza las manos una vez finalizada la mano; en ese momento HHJReader detecta el cambio y actualiza las estadísticas con los datos de la última mano. No es un HUD (Heads Up Display) que muestra los datos sobre la posición de los jugadores pero si organizas bien las ventanas de la mesa y del HHJReader cumple una función parecida.
3. Un fichero por programa. Sólo muestra los datos de una mesa (o torneo). Si juegas varias mesas a la vez, tienes que abrir varias instancias del programa pero, de momento, no suma las estadísticas de un jugador que esté en varias mesas.
4. Muestra estadísticas básicas de los jugadores (VP$IP, RPF, AF, WTSD, W$SD) y la media de la mesa. Las estadísticas son, también, modulares por lo que es fácil (para nosotros) añadir nuevas estadísticas.
5. Clasifica los jugadores por perfiles (fish, maza, gambler, maniac, etc.).

En próximas entradas comentaremos con detalle el tema de las estadísticas y los perfiles.

HHJReader. Estadística RPF



Continuamos analizando cómo calcula el HHJReader (estupendo programa) sus estadísticos. Hoy toca el RPF.

Definición de RPF:
RPF significa Raise Pre-Flop, aunque parece ser más común PFR (pre-flop raise). Este estadístico indica el porcentaje de manos jugadas en las que entramos en preflop subiendo la apuesta.

Cálculo del RPF:
simplemente contamos las subidas en la calle inicial (pre-flop). Es indiferente si es un raise o un re-raise. Este parámetro está calculado en relación a todas las manos jugadas en todas las posiciones.

Valores recomendados
Casi todos los autores hablan de un valor óptimo por encima del 7%. También es habitual indicar que RPF debe ser, aproximadamente, la mitad del VP$IP (entrar subiendo la mitad de las manos jugadas). Desde luego, por debajo de 5% es demasiado pasivo. Y por encima del 15% eres el maniaco de la mesa.

Mi VP$IP
Sin llegar al 28% de la captura que incluyo, cuando ya estábamos en la fase heads up de un sit&go, yo suelo estar fácilmente por encima del 10%.


otro día seguimos con los demás estadísticos

HHJReader. Estadística W$SD



Continuamos analizando cómo calcula el HHJReader (estupendo programa) sus estadísticos. Hoy toca el W$SD.

Definición de W$SD:
W$SD significa Won Money at Show Down, es decir, botes ganados al llegar al showdown. Indica el porcentaje de veces que ganamos (o empatamos) al llegar a enseñar las cartas.

Cálculo del W$SD:
el cálculo es de los más sencillos; simplemente hay que dividir las veces que gana el jugador en el showdown por el número de veces que llega el jugador al showdown.

Valores recomendados
Lo más recomendable es ganar todas las manos: ¡100%! ;) Sin embargo los rivales también quieren ganar alguna vez. Lo normal es que los rivales tengan un nivel similar al nuestro y lleguen al showdown con jugadas aceptables (como nosotros). En definitiva, la realidad es que debemos movernos sobre el 50%. Por debajo de 50% es que seleccionas mal las manos que juegas (loose) y te sobra el último movimiento (el raise del river o el último call). Por encima de 50% significa que estás teniendo suerte, estás tirando cartas que son ganadoras (arriesgas poco en post-flop) o tienes un primo a tu derecha.

Mi VP$IP
Siempre por encima de 60%. Como decía ayer por falta de confianza en las últimas calles. No es que sea bueno ni tenga mucha suerte, la realidad es que dejo mucho dinero en el bote con cartas potencialmente ganadoras por temor a que los rivales hayan pillado sus proyectos.

Hay una frase típica en las salas de poker de USA que dice "I can't beat anything but a bluff" ("sólo le ganaría a un farol"), justificando que tus cartas acaben boca abajo en el muck (descartadas). Pues bien, hay que mentalizarse de que, a veces, hay que ver las cartas con una solitaria K ("king high") cuando intuimos que el rival no ha completado su proyecto. Es más satisfactorio ganar con K2o sin pareja que con AKs y escalera de color.


mañana comentamos el cálculo de perfiles

HHJReader. Estadística WTSD



Continuamos analizando cómo calcula el HHJReader (estupendo programa) sus estadísticos. Hoy toca el WTSD.

Definición de WTSD:
WTSD significa Went To Show Down, "llegado al show down", e indica el porcentaje de manos que después de ver el flop se llega a mostrar las cartas o, lo que es lo mismo, el número de veces que te juegas el bote con otro jugador a "la mejor jugada en mano".

Cálculo del WTSD:
se cuentan las veces que un jugador ve el flop y las veces que llega al showdown. Simple, ¿no?. Para calcular el WTSD no tenemos en cuenta si el jugador ve el flop gratis (BB) o si tiene que poner dinero para verlo.

Valores recomendados
Depende, pero la referencia más común estaría entre 20-25%. Hay que tener en cuenta que este valor no depende sólo del jugador: en niveles bajos hay gente que no se tira de una mano ni loco. En general, un WTSD bajo significa que te tiras con facilidad de la mano, estás regalando pasta y un WTSD alto puede significar que llegas muy alegremente al showdown o que no eres suficientemente agresivo post-flop.
Una reflexión al respecto: si juegas un 20% de manos (el VP$IP más las veces que haces check desde BB) y llegas al showdown un 25%, estás enseñando tus manos sólo un 5% de las veces que juegas. Es decir, el 95% de las partidas tus cartas no sirven para nada (bueno, para decidir los movimientos a hacer), es decir, el 95% de las veces obtendrías el mismo resultado con AA o con 72o.


Mi propio WTSD
Yo, por ejemplo, tengo un WTSD por debajo de 20%. Lo cual quiere decir que me tiro fácilmente en el juego post-flop. Soy el típico que nunca pilla nada en el flop y, sin embargo, ve mil proyectos posibles en manos de los rivales.
Combino un WTSD bajo con un alto W$SD (ganar en el showdown) lo que indica claramente que tiro manos ganadoras y que debería llegar más veces al showdown.


mañana hablaremos del W$SD

FPDB. Primeras impresiones (negativas)

Sigo probando FPDB. Después de un par de días ya puedo anunciar que he encontrado algunos problemas, justificables si tenemos en cuenta que es una versión no estable y que, qué coño, es gratuita. En cualquier caso, la primera valoración es que FPDB no es recomendable para su uso de manera seria. Personalmente voy a hacer otro par de pruebas y volveré a usar HHJReader (estupendo programa). Ya veremos si en próximas versiones se arreglan estos problemas.

Problemas detectados:
- no funciona bien la detección de los asientos mostrando la ventana de información en cualquier sitio excepto cerca del jugador al que corresponde. Para solucionar este problema, he añadido a las estadísticas el nombre del jugador para poder colocar la ventana junto a su dueño. Esto obliga a dedicar unos minutos a recolocar las ventanas cada vez que abres una mesa.
- la actualización de los datos no es instantánea. Fijaros en la imagen que adjunto: FPDB ha registrado 15 manos de Isabella7070 (como se ve en la ventana de detalle) pero en la ventana de estadísticas muestra los datos de 11 manos.
- y, lo peor de todo, al cerrar la ventana de FPDB, la ventana de PokerStars se ha quedado colgada. Me ha pasado dos veces hoy, una de las veces con JJ en una mano que no he podido jugar. Este problema, por si sólo, descarta el uso de FPDB para su uso en serio.


Sofware. Holdem Ranger

Holdem Ranger (http://www.HoldemRanger.com) es una calculadora de probabilidades (equities) para poker similar al más popular Poker Stove. Me gusta y, además, su autor ha hecho público el código para su uso y mejora. Es posible que en el futuro lo integremos de alguna manera en HHJReader.



Algunos usos de Holdem Ranger y el resultado de comparar algunas manos:

1. comparar dos manos directamente en el preflop:
AA vs 65s: 0,77 (no es tanto)

2. comparar manos a grosso modo.
En el preflop no es tan importante la lectura precisa del rival, así que en lugar de poner un rango pongo una mano del rango y así el cálculo es mucho más rápido. Por ejemplo, la probabilidad de una pareja menor contra dos cartas mayores es, más o menos, constante:
55 vs QT: 0,51
77 vs Q9: 0,53
22 vs AK: 0,52

3. situaciones con más rivales.
Por ejemplo, en una mesa loose con 4 jugadores viendo el flop, el juego super tight (eg, 5%) no es tan rentable.
5% mejores jugadas (99+,AJs+,KQs,AKo según Poker Stove) vs 77 vs 23s vs T9: 0,35
Este resultado es importante: Tres fishes juntos tumban cualquier jugada del jugador más tight. Por eso es tan importante al valorar tu VP$IP compararlo con el VP$IP de la mesa.


4. enfrentar una jugada cualquiera (eg, 72) con los rangos preflop más típicos
Esto es útil cuando tenemos un rival del que conocemos su rango en diferentes posiciones o circunstancias.

72 vs 5% de las mejores manos: 0,2 (1:4)
72 vs 12% de las mejores manos: 0,25 (1:3, esto ya es un proyecto)
72 vs 30% de las mejores manos: 0,28 (no hay mucha diferencia porque en las manos incluidas en este 30% no aparecen muchos sietes o doses, nuestro 72 está igual de dominado, más o menos, por el 12% o por el 30%)
32 vs 30% de las mejores manos: 0,30 (el 32 es mejor que el 72, en este caso)


Los rangos que he utilizado son los del Poker Stove aunque yo me fio más de Andy Bloch y, por tanto, personalmente suelo usar la clasificación que publicó Bloch en el libro "The Full Tilt Poker Strategy Guide: Tournament Edition".


Estos son los rangos y las diferencias entre Poker Stove y Andy Bloch:

5% mejores: 99+,AJs+,KQs,AKo (Andy Bloch saca el 99 e incluye ATs)
10% mejores: 88+,A9s+,KTs+,QTs+,AJo+,KQo (Andy Bloch saca A9s, KQ e incluye 77, JTs)
12%: 77+,A9s+,KTs+,QTs+,JTs,ATo+,KJo+
15%: 77+,A7s+,K9s+,QTs+,JTs,ATo+,KTo+,QJo
20%: 66+,A4s+,K8s+,Q9s+,J9s+,T9s,A9o+,KTo+,QTo+,JTo
30%: 55+,A2s+,K5s+,Q7s+,J8s+,T8s+,98s,A7o+,A5o,K9o+,Q9o+,J9o+,T9o

Programación . Cálculo del ICM

ICM significa Independent Chip Model y, de forma muy resumida, es un modelo que sirve para calcular el valor de las fichas (chips) durante la disputa de un torneo (S&G o MTT). La idea detrás de ICM es que las decisiones en un torneo no se pueden basar, como en Cash, en el valor nominal de las fichas.

Intuitivamente esto ya lo sabíamos: en una mesa de Cash hay 300$ en el bote, la cantidad a subir o los pot odds para ver una apuesta de 10$ se pueden calcular directamente. Sin embargo, en un S&G, si sólo te quedan 10$ sólo los deberías jugar con un equity mayor de 0,5; otro ejemplo, si tienes 6.000$ y uno de los rivales tiene 290$ puedes hacerle shove con un rango bastante amplio porque 290$ de tu pila valen mucho menos que los últimos 290$ de su pila; un tercer ejemplo, sigues con 6.000$, tienes TT y un rival con más fichas hace shove, en este caso la intuición (del cash) te dice que es una buena oportunidad para ganar 6.000$ mientras que ICM te recuerda que perder 6.000$ significa perder el torneo y que deberías hacer fold. En ICM, 12.000$ nunca es el doble de 6.000$, es bastante menos

En el foro de Poker red Sergeon colgó una introducción a ICM a partir de varios artículos, a su vez, del foro 2+2.

Vamos a incorporar algunos cálculos basados en ICM a HHJReader (estupendo programa). De momento, hemos programado una calculadora de ICM en Excel. Aquí vemos el resultado y el código utilizado (traducido a VBA a partir de JAVA). Con este código cualquiera puede construirse su propia calculadora usando Excel o, directamente, en Visual Basic.



El código:

' Calculo de ICM en VBA para excel
' Autor (de la adaptación a VBA): Isabella70
' Fecha: 2009-06-10
' Fuente de las fórmulas en JAVA: http://pokerai.org/wiki/index.php/ICM_Equity_Calculator
'
' Uso:
' - la función recibe un número (1-n) que es id del jugador
' - "Payoffs" es un rango en el excel (una columna) que tiene los premios a repartir
' (pueden ser porcentajes o neto)
' - "Pilas" es otro rango del excel (otra columna) que contiene las pilas actuales
' de los jugadores

Function getEquity(i)
' la función recibe el jugador cuyo EV queremos calcular
currentPlayer = i
premios = Range("Payoffs")
pilas = Range("Pilas")

' calculamos el total de chips
Dim total As Double
total = 0
For Each chip In pilas
' hay tantos jugadores como pilas diferente de 0
If chip = 0 Then
Exit For
End If
total = total + chip
Next chip

' la función recursiva calcula el EV del jugador en cada nivel
' 1 si es el ganador, 2 si es el segundo, etc.
getEquity = getEquityRecursivo(premios, pilas, total, currentPlayer, 1)

End Function

Function getEquityRecursivo(payouts, stacks, total, player, depth)
Dim eq As Double

' los rangos son bidimensionales, en este caso siempre hay 1 columna
stack_player = stacks(player, 1)
payout_puesto = payouts(depth, 1)

' EV: probabilidad de ganar por premio
' la probabilidad es la relación entre las fichas del jugador y todas las fichas en juego
eq = payout_puesto * stack_player / total
' sólo calculamos el EV de los puestos con premio, el resto es 0
If depth <= UBound(payouts) Then
For ist = 1 To UBound(stacks)
st = stacks(ist, 1)
If ist <> player And st > 0 Then
Dim c As Double
c = stacks(ist, 1)
stacks(ist, 1) = 0
' Debug.Print "+ Player: " & player & " depth: " & depth & " eq: " & eq
eq = eq + getEquityRecursivo(payouts, stacks, total - st, player, depth + 1) * st / total
' Debug.Print "- Player: " & player & " depth: " & depth & " eq: " & eq
stacks(ist, 1) = c
End If
Next ist
End If

getEquityRecursivo = eq
End Function


Existen en Internet muchas calculadoras de ICM, por ejemplo en, como no, ICM Poker.

El código en Java lo hemos sacado de POKERAI. ICM Equity Calculator (Pokerai).

Manos iniciales. Porcentajes de manos jugadas

En el post anterior obtuvimos la tabla de manos iniciales según la clasificación de manos de Los Pelayos.



Ahora hay que elegir los porcentajes que queremos usar. Yo uso algo parecido a esto:

  
POS NORMAL SUBIDA
10 UTG 14% --
9 12% 6%
8 12% 6%
7 12% 6%
6 24% 12%
5 24% 12%
4 CO 40% 20%
3 BUTTON 40% 20%
2 SB 35% 18%
1 BB -- 40%


La columna "NORMAL" es el porcentaje de veces que pego en el preflop si no hay una subida anterior. Por defecto, intento "pegar" siempre. Si hay algún limper veo y no pego.

La columna "SUBIDA" es el porcentaje de veces que veo una subida. Es la mitad que la columna anterior porque asumo que los demás (villanos) juegan un rango similar al mío.

¿por qué en SB pego menos que en últimas posiciones? por variar el juego y porque en mis mesas nadie se tira ante una subida del SB. Así es la vida en microlímites de PokerStars.

¿por qué en UTG pego más que en las otras primeras posiciones? porque me gusta jugar así y porque como juego agresivo en preflop la gente se tira más así.

Si hay antes, soy más agresivo (como 3 posiciones más agresivo).

Esta tabla me da un VP$IP de, aproximadamente, 20% dependiendo de lo agresiva que sea la mesa. Más agresiva la mesa, más tight soy yo.

Mañana veremos un programa que me ha desarrollado mi vecino Labot para calcular estadísticas: el HHJReader.