PDA

View Full Version : New SNG tracking program (stats/features help)


ChrisV
02-21-2005, 12:02 AM
I have tried out both PokerTracker and Aleo's spreadsheet for recording SNGs. I didn't really like either of them. The problems are:

Aleo's spreadsheet
------------------
- Manual recording is a pain
- Hand data isn't recorded at all
- Spreadsheet won't go beyond 750 tourneys

Pokertracker
------------
- Interface is horrible
- Requires you to request summary emails for all the tournaments - a pain.
- Missing a lot of functions - SD, confidences, cool graphs, ICM statistics etc. A lot of this results from PokerTracker's attempt to be all things to all people.

I'd like to write a new SNG-specific tracking program. I want it to do all stats about you - ITM, ROI, SD, confidences, hand stats, level stats, ICM stats, completely accurate $/hr stats - you name it. It will be able to do all this by parsing hand history files stored on your hard drive - no summary emails or anything required (for Party skins, anyway. Haven't looked at anything else).

What it WON'T do is track any data about your opponents, so it won't be a replacement for PokerTracker in that regard. I don't think most of PokerTracker's functions in that department are useful for SNGs anyway. VP$IP is a meaningless statistic for SNGs. Even VP$IP by level is meaningless as it changes so heavily depending on stack size.

Anyway, to the point of the post: I have a science degree and make a living writing code. What I don't have is any statistical knowledge. I can pick most of it up by examining Aleo's spreadsheet, but I need some help with the following:

- Given a sample of tournaments, how is Standard Deviation per tournament calculated?
- What do the Excel NORMSDIST and NORMSINV functions do? I need enough detail so that I can replicate the functions myself in code.

Full disclosure: I work for a software company and I will most likely release the product (if I ever finish it) under the auspices of the company. This will most likely include charging a fee for the product. Product royalties will not be paid for helping me out in this thread /images/graemlins/wink.gif

EDIT: After posting, I was struck by the brilliant idea of looking in Excel help, so I have all the NORM functions sorted now.

The other thing I guess I want to know is: Does anyone have any good ideas for features that aren't included in PokerTracker but would be useful for SNGs? Remember that I won't be recording any data whatsoever about opponents' hands, actions or results.

se2schul
02-21-2005, 12:23 AM
Why not open source the program, or release under a GPL type license? People can work with it, improve it, fix bugs, etc. It's a way of giving back to the poker community.

Steve

ChrisV
02-21-2005, 01:31 AM
I already "give back" plenty to the poker community by posting here.

It's possible I'd release it as GPL but I'd rather get some revenue out of it as my boss would look favourably on that. The decision is not entirely mine as I will be using the resources of the company (Visual Studio .NET and SQL Server developer licenses, as well as probably some company time) to develop the product.

Why don't YOU write an open-source version?

pokerlaw
02-21-2005, 01:54 AM
not familiar with programming so i am not sure how tedious this would be, but would you be able to breakdown my net overall results for each hand that I play. ex: show how many chips i am up/down in sit and go's when I am dealt AA. this would be interesting to see i feel.

citanul
02-21-2005, 02:01 AM
Chris,

As I've already noted my eternal love to you in other posts, it's clearly not necessary here. I'd love to help out with a tool of this sort, and have been thinking about developing something of the same sort, possibly restricted to SNG usefulness, possibly not, with a friend, for quite some time now. I have a good-ish set of features I think (though I can't be sure that I think that I have that set right now, since I'm pretty liquored up), and a lot of improvements on pokertracker that I'd like to see made, already in sort of in my brain list mode. If you get a chance, drop me a PM, and I'll shoot you a PM with my email address included, so that I can help out as much as I can with this project.

I don't really care of something costs money or not. I guess that that's my disclosure. My other disclosure is that I'm willing to make sacrifices to work on interesting projects with brilliant people. So now that we've gotten that off our chests, let's make a good program!

As a first question, I'd like to ask why it is exactly that you don't want to have any tracking of your opponents' cards and actions? Is it purely a complexity and database size issue?

Alright, I'm gonna go and collapse in a pile of semidrunkenness. I'll talk to y'all later.

citanul

ChrisV
02-21-2005, 02:08 AM
This will definitely be included. PokerTracker already does this but it is rather clumsy. It'll calculate both chip +/- and ICM equity +/-, and will be able to be filtered by hand, level, and probably a bunch of other stuff - whether you called or raised, position (early/mid/late) etc.

ChrisV
02-21-2005, 02:22 AM
There are a few problems with tracking opponents.

The first is that to do so requires the user to request a summary email for every tourney they play, otherwise you can't tell what happened after you busted out. I think that's a pain.

The other thing is that as you said it introduces a whole stack of extra complexity into the program. The biggest complexity comes in the user interface. PokerTracker has not solved these problems, the user interface is a useless mess. Things like exporting to notes, GameTime+ etc is the saving grace of PokerTracker as otherwise all the data would be useless.

Thirdly I just don't think most of the statistics that can be gathered are very useful. For example, if you play a few tourneys with me and I happen to have a stack of 2400 odd on the bubble each time, with a short stack around, you are going to erroneously believe that I am always tight/passive on the bubble. Believing that will not be good for you if next time I'm the one with the short stack. On the other hand if you've played 3 tourneys with me and I'm the short stack every time, you'll think pushing with 73 suited from the SB is my usual strategy. And you'll be largely correct, but let's not go there.

Fourthly, most players (especially the ones that matter - the idiots) you will just never collect enough data on to learn anything useful about.

Fifthly, the data is pretty unreliable. Peoples play improves over time, the data you have on them may be while they were drunk, there might be multiple people playing on the account, etc.

Finally, PokerProphecy, if it takes off, will be a far more comprehensive reference for other players. No hand history parsing software can hope to match that.

In short: too much effort for something that is going to end up a complex mess with very little actual benefit. The important functions to accomplish are (1) tracking profit, loss, ROI, all that stuff, and (2) letting the user know about general strategic errors they are making. (For example: what is their strategy of limping most hands on Level 1 actually doing to their ICM equity, on average?)

Michael C.
02-21-2005, 02:51 AM
Chris- You give back tons, and I just wanted to thank you personally. I just had the best poker weekend of my life, including winning my first STEP 5. While no doubt the cards were running good, I've been playing a lot better lately due to advice from this forum, and I've gotten more from you than anyone else. So thanks for all your advice, and count me in as a buyer for whatever you put out.

Dylan Wade
02-21-2005, 03:06 AM
I'll write one and you can make it open source. 1000$ through netteller. i'm serious.

ChrisV
02-21-2005, 09:05 AM
Thanks!

Hopefully I will actually finish this hare-brained scheme /images/graemlins/tongue.gif

se2schul
02-21-2005, 09:05 AM
[ QUOTE ]
Why don't YOU write an open-source version?

[/ QUOTE ]

Actually, I've been toying with the idea. The hard part is coming up with the spec.

ss

se2schul
02-21-2005, 09:49 AM
BTW, I wasn't implying that you don't give back to the community, or that you should give back more. I was just suggesting the open source as an alternative that you might not have considered. That way, other people can also help contribute to improving the product (finding/fixing bugs, adding features, enhancements, etc).

That said, I'd like to make something similar to what you're doing... My only reservations are choosing features to implement that would be useful for people and actually finding time to do it.

Anyway, good luck. If it looks useful, I'll pick one up.

ss

lorinda
02-21-2005, 09:59 AM
I already "give back" plenty to the poker community by posting here.

I think this is fair comment, same goes for Eastbay.

Why don't YOU write an open-source version?

Maybe not required as a potential businessman /images/graemlins/tongue.gif

Seriously, I'll have a think and drop you a line.

Lori

lorinda
02-21-2005, 10:04 AM
My first thought would be that all you programming guys, including rachel could get together and write one mean monster of a program.

With Chris saving us our own stats, his interface stuffing our pushes into Eastbay's program automatically and telling us if we've played optimally and pokertracker looking to see if we've been unlucky using rachel <some letters I always forget>'s EV vs actual results tool, we could get a program that's all singing, all dancing and rather expensive /images/graemlins/tongue.gif

Lori

AtticusFinch
02-21-2005, 03:21 PM
The standard deviation is the square root of the variance. The variance is the average of the square of the difference between each result and the mean.

For example, say you have 3 results: 1, 2, and 3. The mean is 2, so the variance is:

((1-2)^2 + (2-2)^2 + (3-2)^2) / 3

And the standard deviation is the square root of this.

Best of luck.

eastbay
02-21-2005, 03:24 PM
I hope you don't plan on sleeping for about 3-4 months. /images/graemlins/crazy.gif

Seriously, I think this is a worthwhile endeavour and I wish you the best of luck with it. I expect I'd be a customer if it worked out well.

eastbay

ChrisV
02-21-2005, 06:02 PM
I don't think the workload is that bad, depending on how complicated I end up making the feature set.

I've already done the database schema and started the import routines. That's the easy stuff... I should be done with that really quickly (god bless regular expressions).

ChrisV
02-21-2005, 06:04 PM
Thank you sir.

rachelwxm
02-22-2005, 03:11 PM
ChrisV, what you mentioned is by no means an easy task especially I have looked at parsing HHs a while back. What you want to achieve is 100 times more difficult than what I have ever in mind. With regarding to your questions:

[ QUOTE ]


- Given a sample of tournaments, how is Standard Deviation per tournament calculated?


[/ QUOTE ]

it's sqrt((pnl-<pnl>)^2)

[ QUOTE ]

- What do the Excel NORMSDIST and NORMSINV functions do? I need enough detail so that I can replicate the functions myself in code.


[/ QUOTE ]

These are just cumulative and inverse cumulative normal function. There is analytically approximation for Cumulative normal expansion and inverse is just root solving using any numerical method.

ChrisV
02-22-2005, 08:40 PM
[ QUOTE ]
ChrisV, what you mentioned is by no means an easy task especially I have looked at parsing HHs a while back. What you want to achieve is 100 times more difficult than what I have ever in mind.

[/ QUOTE ]

Parsing hand histories with regular expressions and storing the results in a database is really, really easy. I could write a program that parses Party tourney histories and calculates everything on Aleo's spreadsheet in less than a week.

Hood
02-23-2005, 12:30 PM
I started work on a very similar program a few days ago. It's goal was to do what my spreadsheet does without having to type in data, and offering more flexibility on the stats. It's written in .NET, and it currently supports the following:

- Imports PP hand histories (can iterate through set directories, and also set up watches on directories).

- Pulls out related details for each tourney for a set player name (oh lovely regex /images/graemlins/smile.gif)

- Displays all the tournies in a list, along with cumulative profit/ITM/ROI details (like AMs spreadsheet).

- Shows an stats overview: #tournies, average time, ITM, ROI, etc (like AM's spreadsheet).

- Graphs the ROI and ITM.

I plan on adding a few more features (being able to filter down the stats being the main one), tidying it up a bit, move it to a decent database format, and releasing it on the forums in about a week to betatesting.

Edit: What it won't do - for now at least - is break anything down on a per-band basis. The HH parser only gets start/end time, game type, cost, vig, finish position and prize. It also only looks for one player's name (yours). I'm not aiming to replace what PT does.

It seems silly that we are both working towards the same goals, so if you're interested in teaming up let me know through PM and we'll chat (however we may hit problems in regards to pricing and your company).

Phil Van Sexton
02-23-2005, 12:42 PM
You probably already know this, but PokerTracker uses an MS Access database that is easy for any program to read.

I'd suggest just writing an add-on to PT and use its database (at least in phase 1). This eliminates the need for you to parse and store the tounry data, and allows people to easily use PT and your tool together.

EdgePort
02-23-2005, 04:55 PM
Using Access is the worst thing about PokerTracker. I highly recommend NOT doing this. I have also done a little work on a program somewhat similiar to this. From all the people here, it sounds like we have some stuff done and others willing to work on it. My code is in java because I want to be able to use any platform for it.

I'm thinking of an open source project, who else woudl be interested in working on this project???

Hood
02-23-2005, 05:00 PM
I agree with your comments regarding Access. The code I'm writing will be migrated over to the Firdbird database, which, like access, has an embedded server (one database file). It also has a great .NET wrapper.

I'd be interested in opening up my code if there is general interest. I'm writing it in VB.NET, but would be willing to switch to C# if needed.

se2schul
02-23-2005, 05:20 PM
I could lend a few hours to the open source effort, depending on the technologies used. Like you, I vote for "Not Access" for the DB. Perhaps MySQL?
LOL

Phil Van Sexton
02-23-2005, 05:20 PM
[ QUOTE ]
Using Access is the worst thing about PokerTracker. I highly recommend NOT doing this.

[/ QUOTE ]

Access is perfectly adequate for doing the queries that would be required. This is not really a challenging task.

Like yourself, many people have started writing their own replacements for features in PT, but few actually complete the task. It doesn't matter if your own software uses a better DB than Access if your software never gets completed.

If you want better SnG reporting, it's silly to spend time rewriting parsers and databases that do the job already. You can always swap out the database implementation in a later release.

EdgePort
02-23-2005, 05:41 PM
[ QUOTE ]

Access is perfectly adequate for doing the queries that would be required. This is not really a challenging task.

Like yourself, many people have started writing their own replacements for features in PT, but few actually complete the task. It doesn't matter if your own software uses a better DB than Access if your software never gets completed.

If you want better SnG reporting, it's silly to spend time rewriting parsers and databases that do the job already. You can always swap out the database implementation in a later release.

[/ QUOTE ]

I disagree. If it is an open source project, then it should only use open source tools. It is also easier to start out a project the correct way then changing it later.

Hood
02-23-2005, 05:46 PM
I totally agree. Most projects never get finished because things get overcomplicated, I've worked with enough to know the traps. As I say I've already got mine in a basic working state (I'm now using my software instead of my old spreadsheet). I'm going to tidy a few things up and release it here. If there's then interest in developing it further, I'd consider making this a community project and opening up the source.

[ QUOTE ]
Access is perfectly adequate for doing the queries that would be required. This is not really a challenging task.

Like yourself, many people have started writing their own replacements for features in PT, but few actually complete the task. It doesn't matter if your own software uses a better DB than Access if your software never gets completed.

If you want better SnG reporting, it's silly to spend time rewriting parsers and databases that do the job already. You can always swap out the database implementation in a later release.

[/ QUOTE ]

EdgePort
02-23-2005, 05:57 PM
If you are willing to open source it. I am certainly willing to contribute to it.

I think you said it is in VB.Net, which I personally have a lot of experience in, but would rather see a program in Java. Why Java? Platform independence, and free tools.

Either way, once you are ready to release the program and opne up the code, I will be happey to take a look.

jcm4ccc
02-23-2005, 06:07 PM
I've made this point before and never got much agreement, but standard deviations and confidence intervals are pointless (and, worse, misleading) for single tournaments. The distribution does not approach normality and never will.

You can calculate a standard deviation and a confidence interval for individual tournaments, using the basic statistics. But the standard deviation you will get has no useful meaning, and the confidence interval will be dead wrong. Confidence intervals absolutely rely on a normal distribution.

If you want to use confidence intervals, you need to combine the results of tournaments. For example, you can look at the mean, standard deviation, and confidence intervals for a set of 25 tournaments. You can do this because of the Central Limit Theorem, which states that for a large enough sample size n, the distribution of the sample mean will approach a normal distribution. This is true for a sample of independent random variables from any population distribution, as long as the population has a finite standard deviation.

eastbay
02-23-2005, 06:51 PM
[ QUOTE ]
I've made this point before and never got much agreement, but standard deviations and confidence intervals are pointless (and, worse, misleading) for single tournaments. The distribution does not approach normality and never will.


[/ QUOTE ]

That's because it didn't make any sense then and it doesn't make any sense now. What the heck are you talking about with this "single tournaments" stuff? Nobody in their right mind is doing statistics with a sample size of 1.

Or maybe I'm not following you, but when you say "single tournaments", what else am I to think?

eastbay

Phil Van Sexton
02-23-2005, 07:05 PM
[ QUOTE ]
I disagree. If it is an open source project, then it should only use open source tools. It is also easier to start out a project the correct way then changing it later.



[/ QUOTE ]

I guess your tool won't run on a propietary OS like Windows either.

Just kidding. I'm not going to get into a software engineering discussion. I have enough of those in my real job.

I hope it works out either way.

jcm4ccc
02-23-2005, 07:39 PM
[ QUOTE ]
[ QUOTE ]
I've made this point before and never got much agreement, but standard deviations and confidence intervals are pointless (and, worse, misleading) for single tournaments. The distribution does not approach normality and never will.


[/ QUOTE ]

That's because it didn't make any sense then and it doesn't make any sense now. What the heck are you talking about with this "single tournaments" stuff? Nobody in their right mind is doing statistics with a sample size of 1.

Or maybe I'm not following you, but when you say "single tournaments", what else am I to think?

eastbay

[/ QUOTE ]

If you are saying something like:

I have a mean profit of $2.50 per tournament, with a standard deviation of $1.00. I am 95% confident that my true mean lies between $1.85 and $3.15. -- then you are using "single tournaments" to calculate the means, standard deviations, and confidence intervals, regardless of the size of your sample. This is an incorrect use of confidence intervals, because the results of single tournaments are not normally distributed.

What you should be saying is something like this:

Over 25 tournaments, I average $50 in profit, with a standard deviation of $10. I am 95% confident that my true mean lies between $42.50 and $57.50.

This would be a correct use of confidence intervals, because the sample mean of 25 tournaments is normally distributed.

ChrisV
02-23-2005, 08:27 PM
Why does platform independence matter? Aren't all poker clients tied to Windows anyway?

eastbay
02-23-2005, 08:31 PM
[ QUOTE ]
Why does platform independence matter? Aren't all poker clients tied to Windows anyway?

[/ QUOTE ]

The usual "open" dogma, probably. I agree that it's irrelevant here.

eastbay

ChrisV
02-23-2005, 08:32 PM
What database format are you currently using?

I'd prefer eventually to use Microsoft SQL Server but really any SQL implementation would be OK.

I'm definitely going to break it down hand by hand because I want it to show how I do in ICM terms on each level. I haven't decided yet whether I'll do any opponent tracking or not.

EdgePort
02-23-2005, 09:01 PM
[ QUOTE ]
Why does platform independence matter? Aren't all poker clients tied to Windows anyway?

[/ QUOTE ]

Pokerroom.com can be played on any computer that has a web broswer and java. and just because your game client has to run on windows, doesn't mean you have to use your tools for analysis on windows.

EdgePort
02-23-2005, 09:05 PM
[ QUOTE ]
What database format are you currently using?

I'd prefer eventually to use Microsoft SQL Server but really any SQL implementation would be OK.

I'm definitely going to break it down hand by hand because I want it to show how I do in ICM terms on each level. I haven't decided yet whether I'll do any opponent tracking or not.

[/ QUOTE ]

SQL Server needs to be purchased and you have to run the server as a separate application. Yes I know you could use MSDE, but it still needs to be run as a separate application. Something where that isn't the case would be good. firebird someone mentioned, I think derby can do that as well.

ICM calcs would be great...

se2schul
02-23-2005, 09:30 PM
[ QUOTE ]
Pokerroom.com can be played on any computer that has a web broswer and java. and just because your game client has to run on windows, doesn't mean you have to use your tools for analysis on windows.

[/ QUOTE ]

Most people who use this tracking software will be using Party or some other client exclusive to Windows. If they're running the client on windows or in an emulator, there's no reason they can't run this program the same way. Really, there is at most a 1-2% market for this thing to be platorm independent.

The Linux advocate in me says make it platform independant, however common sense rears its voice and says that when 98-99% of the market use windows, and the lead programmer is most comfortable in Windows, then program it in Windows (even if you do it open source).

Steve

Phil Van Sexton
02-23-2005, 09:35 PM
[ QUOTE ]
Why does platform independence matter? Aren't all poker clients tied to Windows anyway?

[/ QUOTE ]

If you ever want to package your app as a web based service, it would be handy if it's core engine could run on another OS. For example, these subscription based services that contain server side databases with information on opponents.

I'm sure people would subscribe to a web based PokerTracker with a shared DB, but this is fairly impractical since PT is written in PowerBuilder and makes use of non-ansi SQL when talking to Access.

This doesn't seem to apply to your app, but maybe it's something the open source guys would like to do in the future.

MrPotatoHead
02-23-2005, 09:37 PM
I think the inconvenience of running MSDE/SQL Server is far out weighed by the benefits gained. It is very self maintaining and scales well. If you play 40-50 sitngos a day after a year you might have a million hands in the database. If you want to do some serious comparisons with ICM you might want to import another 10 million hands from some of your friends. Never underestimate the importance of an industrial strength backend, particularly if you sit in front of your computer for 16 hours a day playing poker.

EdgePort
02-23-2005, 09:58 PM
[ QUOTE ]
I think the inconvenience of running MSDE/SQL Server is far out weighed by the benefits gained. It is very self maintaining and scales well. If you play 40-50 sitngos a day after a year you might have a million hands in the database. If you want to do some serious comparisons with ICM you might want to import another 10 million hands from some of your friends. Never underestimate the importance of an industrial strength backend, particularly if you sit in front of your computer for 16 hours a day playing poker.

[/ QUOTE ]

This is exactly why I am using derby (aka IBM Cloudscape) for the app I had started. Using JDBC, so that it could be moved to any JDBC compliant SQL app (mySQL, Postgres) later. But the platform really doesn't matter for this discussion. Until anyone is willing to open source what they have and others are willing to help out, none of it matters.

rachelwxm
02-24-2005, 12:40 PM
[ QUOTE ]

I'm definitely going to break it down hand by hand because I want it to show how I do in ICM terms on each level.

[/ QUOTE ]

My program tracks ROI breakdown by levels. Not individual hand though. And using database is beyond my current ablity although I have worked on a project for FoxPro 10 years ago.