https://www.liquidpoker.net/


LP international    Contact            Users: 353 Active, 0 Logged in - Time: 20:28

Poker Blogs

New to LiquidPoker? Register here for free!
Poker Blogs     Full list of blog posts     Featured Poker Blogs     Show last 20 posts

Poker Botting by jchysk, January 31


Some background:
I played poker pretty much full time from 2007-2009. I played about 3 million hands, mostly cash games, over 10,000 tournaments, and had done a great deal of analysis on my play. At the end of 2009, even though I was doing better than ever in poker, I felt like the game had become a job.

After doing research and speaking with a bunch of botters I knew it was possible to be fairly profitable. Already, many of the highest performing low-stakes SNG players on Sharkscope were bots. My long term goal was to build a self-improving botting system that could take on any poker game of any type.

Having spent such an immense amount of time analyzing the game and my play, I felt like utilizing all the information to write an AI would be the best use of that knowledge. I spent a good chunk of 2010 both writing an AI and setting up a botting system that would use that AI to play real money games online. I basically had my bots play until Poker Black Friday. In that time hundreds of thousands of SNGs and over 10 million hands were played.


So how does a bot work?
You must completely automate everything a human would do. Open the client, log in, pick the games using the filters and clicking through the results. Approve or close popups. Join games. Play games. Leave games. Close client.


Botting undetected:
Unfortunately most poker sites terms of service disallowed the use of bots with confiscation of funds and account closure as penalties for violation. The biggest and best sites to play on had these terms, so the first order of business is how to play and not get caught.

There were a number of mechanisms sites employed to enforce these terms including:
Resizing tables
Captchas
Different images for the same cards (although inperceptible to humans)
Pop-up boxes with a human asking a simple question
Scanning running software
Tracking mouse clicks
Checks for non-human play schedules

Also, when pokertableratings started getting popular and allowing the purchasing of hand histories, players themselves were finding and reporting bots by auditing play stats.


After looking at what tools were currently available I ended up choosing a piece of open source software called OpenHoldem and forking it for my own purposes. OpenHoldem had a tool called a TableMap that allowed you to capture images and text from a poker table and translate them into variables that could be used for the logic. Since this software couldn't be made visible to the poker clients being used, I ran poker clients in a headless virtual machine and output the display to a separate computer. Within the virtual machine I used software to place tables at specific resolutions and locations on the screen. A friend helped me write a program that turned the graphic windows from the virtual machine's output into their own separate windows that OpenHoldem could lock to and use the appropriate table map for. Since only the graphic display is being output from the virtual machine, there isn't even a remote desktop client such as VNC or Teamviewer running within.

So far this solves poker clients detecting running software and the resizing of tables. For images being slightly different, I just had to make very robust table map sets where they could account for a certain degree of error and utilize fuzzy fonts. For pop-ups and captchas I had alerts pop-up when there was a certain degree of deviation and I could manually take over for a minute to correct the issue. For the first few months I was always within range of a computer that would give an alert so I could respond to an anomaly. After an account had successfully solved a captcha the risk was lowered and I could feel safe going out to dinner or taking a nap without having to actively monitor play.

The same program that generated the graphic display windows for tables from the virtual machine would accept incoming clicks from OpenHoldem for when an action needed to be done and then would convey those clicks into the virtual machine. Since there were regions where buttons existed, using certain distribution rules, the location on the button could be randomly clicked so as to emulate human clicking behavior.

As far as bots not being caught for their measurably similar behavior, I gave them different personalities. Logic was slightly tweaked for more/less aggressive play in certain areas or overall. For example I could just slightly increase the aggression factor for a player and across every possible scenario they would take the slightly more aggressive approach. I could pick just a few stats such as call preflop raise and 3bet post-flop and tweak them by a percentage. In many cases, this made the bot play less optimally, but different enough to be unique. If a bot unexpectedly performed better in certain areas, I could figure out why and use that for future builds.


Running multiple accounts:
The most obvious advantage of a bot playing is that it can play endlessly at its most optimal settings. You couldn't have a single account play forever because that would be impossible for a human to do and the most obvious red flag of botting. So creating multiple accounts across multiple sites was the best way to get the most of the bots and cover multiple stakes. I set up different VPNs in the same general area as where the account owner's location claimed to be.

At first I never had any of the bots on the same site and stake play at the same time since I figured it would be sub-optimal to ever have them potentially play against each other. Later I realized that could be a flag and I started semi-randomizing when they would activate and play.


More Automation:
I set up a scheduling system where each bot had its own schedule (e.g. Mon-Thu 11:00AM-7PM with 15% variance). When a bot was set to play, its appropriate VPN was turned on, the virtual machine would boot, the clients would be opened and logged into using a separate script that was able to graphically interact with the virtual machine. Once everything was open a program like TableNinja could be used to register for games that were to pre-defined settings. For sites without TableNinja compatibility I had to write a set of scripts that would check the filters and scroll through to register for the appropriate games.

A forked version of the Table Map system with OpenHoldem was designed to assist with picking games. Going down the games in the lobby or opening up a game lobby the players could be scraped and checked against the database of players and hands to figure out how juicy the game was. I never had this actually stop a bot from joining a game, but I was collecting the data with the plan for better game selection in the future.

Stop losses was a pretty important feature that I built early on. I would have regular iterations of the logic system and sometimes there would be flaws that would make the bot unprofitable. It wasn't always obvious in their play, but over hundreds of thousands of games the losses would prove otherwise. Essentially an account balance check was done at the beginning of play and then every time a new game was registered. If the balance was below the stop loss limit, it would stop registering for new games.


Actual AI:
So the high level logic was something along the lines of:
Evaluate current actions, current stack, potential effects of all available actions, pick the best one.

All knowledge on all the players would be taken into consideration from previous games by utilizing a database of hand histories. In a particular decision the main variables that influenced the decision were current bets by which players, stack sizes of all remaining players to act, the odds of all those players acting in which ways with what kinds of hands, ICM values, position.

For a simple example, if it was folded to on the button it would first evaluate the EV or raising. It first checked the call preflop raise rates of the blinds and overcall rate of the BB. That stat would be determined by any knowledge of those players from those positions at the current blinds. That stat gives a pretty good idea of what kinds of hands those would be, and then it can be calculated with the current hand and ICM equity values what the EV was. Next the EV of limping and folding would be evaluated in a similar fashion and the highest EV score would determine the action.

I build formulas to quickly evaluate all the major stats that would be used for measurement: PFR, CPR, 3Bet, 4Bet, CBet, etc. I would do some statistical analysis to build a dataset that I thought accurately reflected the stat using the variables I wanted. Then I would use symbolic regression with those variables to generate a reasonable formula. This was time consuming and required a lot of computing power. An example formula for cpfr looked like this: f(nplayersdealt,stackbbs,temppos) = (temppos)/(log((temppos)*((temppos)*(((stackbbs) + ((11.601799964904785)*((nplayersdealt)/((stackbbs) + (sin((((-5.0985198020935059)*(temppos)) - (nplayersdealt))/(nplayersdealt))))))) + (((mod((nplayersdealt) + (((nplayersdealt) + ((5.1521501541137695)*(temppos)))/(nplayersdealt)), -1.5626200437545776)) - (mod(nplayersdealt, log(nplayersdealt)))) - (nplayersdealt)))))). It took number of players in the hand, current stack size relative to big blind, and the current position relative to the dealer.

The formulas I was describing above were used to figure out the baseline adjustments of a particular stat based on the most important general knowledge factors. During actual gameplay there was another set of functions that ran in order to weight the stats based on the players' known data. This was grabbed from my shared PostgreSQL database across the bots per poker room. There was also a level of confidence associated with each stat based on how much data I had for it for that particular player.

A major issue with this approach was dealing with heteroscedasticity with the initial analysis. I had way more data on how people play AA than anything else simply because it shows down more often since players are more likely to play it. It becomes increasingly difficult to find out how players play a hand like 22 in rare scenarios, even with millions of hands to analyze.

After awhile of accumulating data I felt that playing against an unknown was possibly the place where I felt most optimized. Not in the sense that I could play better against them than a known player, but relatively to someone else approaching an unknown. Using data I could figure out the distribution of common play tactics of an unknown. One tricky part was you couldn't simply average the distributions by their likelihood of occurring. Playing sub-optimally against one type of strategy could have a far more negative impact than playing sub-optimally against another type. So in some instances it's better to assume the player is going to be aggressive even if it's actually more common for the player to be passive just because it's less harmful against the passive players than it is when they're aggressive.

Improvements were surprisingly slow and undoubtedly where my system needed the most work. After a bot was consistently beating a certain game, moving up in stakes usually didn't go well. It would take quite some time of break even or even negative play before adjustment pushed it into the positive zone. I'd say it took well over half a million hands at each stake to get it where I wanted it to be. Utilizing a great deal of the incoming revenue as a research budget for higher stakes made it so there wasn't very much profit, but kept progress up.


Conclusions:
It was a fun project. My original long term goal was to build a self-improving NL cash game AI and I did spend quite some time building out logic systems for cash games. I figured building SNG bots would be much easier to make profitable, and then once they were running I'd switch over to cash games. I had many of my friends who were profitable at all different stakes and games send me collectively millions of hands to help me out. In exchange I could analyze their respective games and show them very specific instances where they could improve. Having the hole cards of many different profitable players helped immensely with finding core patterns that link to profitability.

To model some of the decision making I put all the players' hand histories into separate databases so that only the knowledge that the player had on the opponents was available. A model I would put together on something as simple as preflop actions from a particular position I could compare with another player's hand histories to see if they would take the same approach using the knowledge they uniquely had on their opponents.

This project helped me learn a lot about programming, statistics, and higher level mathematics. Poker AI specifically isn't something I would ever get into again. For the amount of work that is required there are similar kinds of projects that can yield much higher gains. For example an automated financial trading system. I also can't recommend that anyone else to get into poker botting beyond a hobbyist activity. The number of specialized areas that I needed to branch into in order to piece everything together was much greater than anticipated and often required me to reach out to those more proficient in those areas. Honestly, I think it's something that a strong team should be assembled to pursue and then financially it's likely not worth it compared to other ventures.


Comments (21)       read entire blog


New car poll by JohnnyBologna, January 30


http://www.liquidpoker.net/userpoll/draw.php?poll_id=1411
Poll: which car to get?
(Vote): acura tsx
(Vote): hyundai genesis sedan
(Vote): other?

 photo 2012_acura_tsx_sedan_base_fq_oem_7_2048.jpg

 photo Hyundai-Genesis_2012_800x600_wallpaper_08.jpg

Both are 2012 cars. used at car max around 20k with like 30-50k miles.

So shoot away your opinions good or bad! i just need info.


just moved to florida and dont have a car. will be sharing with my wife. price range is around 20k dollars want a relatively new lightly used car around 2010 and up. i am 27 years old i dont want anything super fancy like bmw or mercedes. i feel uncomfortable driving those types but i do want a little 'pezaz' that im not driving a boring ass car.

the genesis is more luxury and a little more expensive so i dunno if im suitable for that type of car? it uses a little more gas and is bigger so i dunno if i should be more conservative and get the 4 liter tsx or just yolo it? the genesis kind of looks like a bentley knock off with their new winged logo tho. just my thought let me know!


Comments (6)       read entire blog


Back to poker by Rocks2BeGood, January 30


Yo guys,

Im back to poker.
Noticed the past periods i really have missed the game.
So i deposited 200 dollars and i am grinding back up since about 2 weeks.
Played a week on Pokerstars then moved to FTP because of a bonus.
Doubled my roll allready and feeling pretty strong.

Are there still any old school players which ive talked too in the past?

If you wanna talk or something hit me up at my stream

http://www.twitch.tv/ronvdenden

See you soon with an poker update.

Greets.

Ron






Comments (1)       read entire blog


The Poker Life, a new chapter by Whiplash, January 30


Hello everyone, I am about to go on a great adventure once again, and I figure it deserves a primer. This is the first blog I've posted since my departure from Korea, and I'd like to discuss what I've been up to and where I'm headed. I'll give a quick summary of my previous blogs for those who don't want to read my previous blogs.

Life in Korea blogs, read these if you want a more detailed look on the last 2 years of my life and what has led me to this point:
Part 1
Part 2
Part 3
Part 4
Part 5
Part 6
Part 7
Part 8
Finale

TLDR summary for the past ~2 years of my life: I loved Starcraft, went to Korea to cast proleague, it didn't work out. I lost my passion for Starcraft but gained it for Dota 2, and started casting it. Unfortunately that didn't work out as well (but I kept my passion). With no work, I had to return to the United States. I decided that I wanted to peruse a career path as a Poker player following my experiences in Korea.

I wasn't entirely sure if I wanted to post this blog on teamliquid, liquiddota, or liquidpoker. I did start at teamliquid back during the Brood War days, so regardless of where I'm headed I would like to post the first part of this blog here. I'll post a mirror on liquidpoker (this is that mirror) and continue my future poker blogs there.

I'll start with my return to the US from Korea. It was weird readjusting to life in the States, but after about a month things were feeling normal. I moved back to my hometown of Naples, Florida to refocus, re-energize, and prepare for the future. My plan was to get a job and save money for poker, then move to Canada in early 2015 to play full time with friends. While in America I also wanted to get in better shape and eat healthier. I'm proud to say that I accomplished both of my goals; I saved up money for Canada and I lost around 30lbs + gained some muscle. I also put a lot of time and studying into poker over the past few months (surprise). I started playing on Bovada, watched a lot of videos from various poker sites, checked out a few books, and talked to many of my poker friends about the game. I've only begun to scratch the surface of poker but I am having a blast doing it. Naples has been a good place for me; I got to reconnect with old friends, physically and mentally recover from my time in Korea, and enjoy a much less stressful lifestyle. Alas, Naples is boring and I need to move on to grow as a person. It's time to travel to a new county and begin my new journey into poker!

There will be three of us total. Everize, his friend Riddick, and myself. We are moving from the US to Canada because poker laws are much less stringent north of the border. I will arrive in Canada February 1st to join them and we will begin grinding after we settle in. The plan is to play for around 5-6 months, get as good as possible, and evaluate where we stand around mid year. We all plan on playing/studying around 40-50 hours of poker per week. They are both a lot better at poker than me, and with Everize willing to help teach me I feel like this will be a great environment to quickly improve in. I have become fairly confident playing 2/5nl and I plan on moving up to 10nl when I get to Canada. Even if I run into some rocky bumps in the poker road, I have money set aside so I could play for 5 straight months without earning a single cent from poker, and that doesn't include the money I set aside as for poker bankroll. By mid-year I want to support myself entirely from Poker. It won't be easy, but I believe it is possible with a strong mindset and work ethic. If poker doesn't work out for me I can always go back to school, but I honestly can't see myself failing.

I'll write a blog after we've settled into Canada. We're moving to Toronto/GTA so if any fellow liquidians live nearby don't be a stranger! Thanks it from me, thanks for reading this blog, I'll talk to you guys soon.


Comments (9)       read entire blog


something obvious by MyAnacondaDont, January 29


shouldn't all satellites not have rake?
the tournament you get satellited into rakes you, why would you need to be raked twice.
Be fair to the poor people trying to satellite into the big time.


Comments (4)       read entire blog


Savoring a Victory by 2primenumbers, January 29


life


Comments (2)       read entire blog


Hey liquid poker! Spanish classes. by leleds, January 28


Hey guys! I played some poker in the past, only microstakes, but i quit because I´m going to college now.
So, i want to know if any of you guys want to take some Spanish lessons. It will help me to pay my tuition.

The feed will be 15 dls per hour. Its one on one; it can be basic, middle, advance, conversational, or whatever you need.The classes will be through skype.
I accept netteller, pokerstars and skrill.

Thanks for reading.

http://i.imgur.com/ccc9OlB.jpg


Comments (5)       read entire blog


Back to MTT/SNG by Ryan Neilly, January 26


Hey LP, so my cash game hiatus for the year is on standby

After spending tons of time going through all the game selections I have at my fingertips
MTT's and On Demand SNG's look really good.

I decided to give them a run.

I've won the 3r 2x and the 6r and a couple $11s so far building up last week, those on demand sngs are really great games too and tend to win my fair share.

Finally got to 1k from the 100 I started in there with. I wasted like 2 weeks playing cash games.

I've changed my tourney game around some, still have a lot of work to do, right now im rebuilding from the bottom levels, so things will be coming back to me as they do, and studying a lot.

I forgot I was a student of the game for a while there. I'm 100% just looking to soak everything up like a sponge and keep crushing.

The comments sections of my blogs are all derailed. I'm quite happy in my life, those comments are just distractions and mostly about things my bipolar mind was doing last week which is like moot now ;P

Prolly won't post more than 1-2x a year, no reason to, no positivity comes out of it. Just trolls.

GL to everyone and have an amazing 2015 LP,
Ryan




Comments (13)       read entire blog


voyeurism by Romm3l, January 26


a quick thought experiment - might be interesting if you share my views. i would probably look down upon people who buy glossy magazines to keep up to date with salacious gossip and scandalous stories concerning what's happening in the personal lives of a-list celebrities. i might think of people who indulge in that kind of thing as vulgar proles. yet i might think nothing of people interested in poker who follow gossip concerning who is winning and losing big in the nosebleed games on hsdb, or stories of what's going down in macau. are these two things the same thing, and is there inconsistency in my views? or are they different and if so, why?


Comments (9)       read entire blog


Legal Battle Armor by 2primenumbers, January 25


no fraud


Comments (0)       read entire blog


Snow!!!! by 2primenumbers, January 24


true


Comments (0)       read entire blog


thoughts? by mnj, January 24


http://www.huffingtonpost.com/2015/01/23/rainn-wilson-happiness_n_6529156.html


Comments (2)       read entire blog


if you know C++, click this for quick $64 by bigredhoss, January 23


i have a random $64 on paypal, if anyone can complete and send this code bug-free while following my criteria within 3 hours of posting this, it's yours. most of the code is already done.

it is a gas tank moniter. there's a constructor that creates a gas tank holding 20 gallons, which is empty upon creation. there's a function to fill it and return #gallons filled, a function to use the gas and return #gallons used, and a function telling the user how many gallons are left in the tank. there's also a function to tell when the fuel is getting low, which is when there are <= 5 gallons left.

1. basically, the switch cases are wrong/incomplete, and probably a couple bugs somewhere else in the code. there should be an output something like:

Gallons filled tank 1 -> 20
Gallons filled tank 2 -> 5
fuel OK
Low fuel light
gallons left -> 4
Gallons filled tank 1 -> 16
Gallons filled tank 2 -> 0

2. add whatever functions/variables are needed but don't change any of the class constructors/variables/functions, and don't make any of the currently private class data public. i don't care if you think it looks shitty, leave the basic structure of the program the same.

3. don't add your own comments or remove any of mine.

4. don't import any additional libraries.

sorry for the shitty formatting, idk how to get the code to format the way it appears in codeblocks.



+ Show Spoiler +




Comments (17)       read entire blog


Is poker tracker best program? by HungarianGOD, January 23


Hey guys,

I have gotten to play heads-up against a couple somewhat strong players recently, so I want to purchase a program to help get stats and analyze hands. I used an old version poker tracker a while back, and thought it was fairly good. Is there something better that you guys would suggest? I will probably move to studying PLO in a few months, so perhaps something that is helpful PLO would be desirable as well. What program would you suggest picking up now?

As always, thanks for the advice

~N


Comments (8)       read entire blog


stds from kissing? by mnj, January 21


hey everyone, i was just curious if LP knew which diseases one can get from kissing another person on the mouth?

i checked online, and most sex ed websites simply state taht you can get STDs and STIs from kissing but weren't specific.

was sad i couldnt find a conclusive yahoo answers


Comments (26)       read entire blog


NJ Poker FTP by Ryan Neilly, January 21


Hey guys, I wanted to let the LP know that 888 poker and WSOP.com just merged in NJ, my friend told me last night.

Going a week every month to grind there now myself. CG's run to 5/10+, MTT pools are now finally right solid.

Also, I asked Tony (AC pokerbuddyetc), if this was true. He said on the website, it says "coming early 2015" He confirmed this is all real. (got image off twitter)

http://i.imgur.com/8JmX8T7.jpg

In the start of 2014, they said nothing would happen with online poker, but in 2015 we should expect big things in the USA. This is a very good sign.

New Jerseys not too far from me, be there Feb 6-13th, if any LPers are near AC, let me know.

Goin to give her a whirl.

Playing a mixture of anything profitable these days, nothin to brag about, been consistently..... bad! KJss, grinding up ACR from $100, should be in some good games really soon Its been a fun grind, had a really swingy tough month.

I was too stubborn in one of my sessions...I took at shot at 25 w/ like 385 and left with 190ish, that was my one mistake this month, that was like a week ago... started on the 10th this month (moving sucks in the winter)

Ok enough rambles
Hope u guys are great,
wish you all the best

found a great game selection,
Cheap MTTs and those cheap on demand SNG's, with rb and the beast on that, its actually a really good route for me to take. Solid daily, low risk, high reward, stack the cash, then play big again whenevz, no rush. stakers there if i need em. they rape ya tho, time to do 100% to the tip top.

I was playing WAYYYY to loose, and I needed to play a month of CG's, this has definitely been a month where I've learned more than I feel I've ever taken in, in months past.

Patched a few big leaks in my game that were bad habits for about 2 years and they just worked for the last 1.5 years and feel really good with where my game is and where its heading.

time to get back among the top players.
working hard studying hard

Tonight studying, won some nice stuff last night.

GL LP,
Ryan


Comments (13)       read entire blog


Driving up the Eastern USA by 2primenumbers, January 21


pleasing


Comments (0)       read entire blog


bambambum by spets1, January 20


Oh yeah its NSFW by the way braaas.
Open up at you own risk, might getta spanking
+ Show Spoiler +




Poll: who wins?
(Vote): one
(Vote): two
(Vote): three
(Vote): four
(Vote): five

Results:
+ Show Spoiler +




What country makes the best laksa?


Comments (7)       read entire blog


downswing + recovery by Into Infinity, January 18


i think the curse is finally over...

http://i.imgur.com/GhpbV5N.png

stuck in 4k crew reporting in


Comments (9)       read entire blog


Banned myself by LikeASet, January 18


Heh, banned myself from table games because that shit be my kryptonite. I'm not mega degen but I know I was on the path to the dark side. Banned myself for 90 days and not going dabble in black jack/ pai gow until summer. I would sometimes go to pai gow or black jack after a losing session from my live pokers and be like in fuck it mode, probably resulted in an increase loss of a couple thousand or a tad more. I just want to make sure I don't mix too much play at where I "work" for my monies.

Has anyone else ever done something like this?


Comments (6)       read entire blog




Next 20 blog entries



Poker Streams

















Copyright © 2024. LiquidPoker.net All Rights Reserved
Contact Advertise Sitemap