Open Side Menu Go to the Top
Register
GTO+/CardRunnersEV? GTO+/CardRunnersEV?

01-24-2013 , 06:05 PM
Hi scylla,

first off, want to thank you for adding scripts. I've been messing around with them lately and it's a really amazing feature. I have a quick question, though...

Is there some way to break a script in the middle of running and load a tree I have saved within the script? I set something up to find an equilibrium and am fairly certain it's been found already, but this is probably going to be running another couple hours because I didn't set my bounds very intelligently. So basically I'd like to abort mission but see what the best tree is so far.

Thanks!
GTO+/CardRunnersEV? Quote
01-24-2013 , 07:24 PM
Quote:
Originally Posted by scylla


Is this what you mean?

SB's "raise to 3" range is fixed at 60%.
BB's 3bet range is fixed at 12%.
At point 2, SB just calls with some fixed range and checks down the flop.
Otherwise, at point 3 and beyond, you want the equilibrium where SB 4bets and BB makes an unexploitable shove?

If so, then yes, this can be done with a script.
Otherwise, please send a savefile to support with a bit more details about what you're looking for.

That's exactly what I mean. I'm not capable to write that kind of script though. Is it possible if you can paste it here?
GTO+/CardRunnersEV? Quote
01-25-2013 , 02:00 AM
Quote:
Originally Posted by scylla
You cóuld achieve that with a script.
Here's an example: www.cardrunnersev.com/rar/fractions.rar
This rar file contains both a savefile and a script.
To let the software detect the script, save it to CardRunnersEV's /scripts subdirectory.

Click the script icon in the main field's lower right to open the script window.
Load the script with "Load script" and run it with F4.
Awesome!
GTO+/CardRunnersEV? Quote
01-25-2013 , 06:36 AM
Quote:
Originally Posted by mythrilfox
Hi scylla,

first off, want to thank you for adding scripts. I've been messing around with them lately and it's a really amazing feature. I have a quick question, though...

Is there some way to break a script in the middle of running and load a tree I have saved within the script? I set something up to find an equilibrium and am fairly certain it's been found already, but this is probably going to be running another couple hours because I didn't set my bounds very intelligently. So basically I'd like to abort mission but see what the best tree is so far.

Thanks!
Sure, every time you run into a better performing tree, save it as a tmp tree.
For example, you could store the best EV found so far in variable 3.
Every time you find a better EV, save the current tree to tmp tree ... let's say nr 4; and also set variable 3 as the new best EV. Whenever you want to stop the script, press Break! (F4) and load the tmp tree with Alt+4.

If you need further instructions on saving/loading tmp trees in scripts, please watch the video Equilibrium 1 and Equilibrium 2. I'm pretty sure I use that operation in it.


Last edited by scylla; 01-25-2013 at 06:57 AM.
GTO+/CardRunnersEV? Quote
01-25-2013 , 06:53 AM
Quote:
Originally Posted by scylla
Ok, I've received your savefile.
It sure makes things a lot clearer.
See pic below for a screenshot of that tree



Now, the issue becomes a lot more clear when we're able to perform an EV run in this tree (F7), since this will allow for popups. However, currently this is not possible, because the tree is incomplete. For that reason, I've just made BB openfold the turn. It ain't pretty, but the tree is complete and we'll be able to perform an EV run (F7). See pic below:



And when we now, for example mouse over >=2pair we get a popup that shows which hands specifically are in that condition. Press Alt+C to toggle to combo mode and you'll see how many combos there are of each hand.



So, there's a total of 109 combos in total that are considered as >=2pair. Given that there's a total of 47*46/2=1081 ways of dealing BB a hand out of "all hands", this means that the frequency for >=2pair should be 109/1081*100%=10.1%.

If you want to see how the software arrives at the other frequencies, then just do the same thing and mouse over the appropriate condition to see the number of combos in it.

If you want to know why QQ+ is considered as beating 2 pair on this board, then please read my previous post on that (#2623).




PS:
Card removal with combos only work if SB is dealt one specific hand. If SB holds a range, then card removal is ignored.
Ok, thanks for the answer. First part of my question namely how the different hands are placed with each filter is confirmed.

I can also understand your reasoning.

To summarize till now; the following is as CREV works:

filter >=2p -- at paired board (no flush, no street)
all pocket pairs of same rank as the ranks @ board
all pocket pairs with rank > highest rank @ board
all AB hands where A and B are the 2 ranks at the table
all Hx hands with the rank of H equal to the rank of the pair @ board
NO Lx hands with the rank of L equal to the rank of non-pair rank @ board
NO pocket pairs between highest and lowest rank @ board
NO pocket pairs with rank < lowest rank @ board

filter >=2p -- at board with 3 different rank (no flush, no street)
all pocket pairs of same rank as the ranks @ board
NO pocket pairs with rank > highest rank @ board
all hands with the 1st card a first rank at the board and with the 2nd card a second rank at the board
The following 4 not; which is obvious, expected and as the program does
NO all Hx hands with the rank of H equal to the rank of the pair @ board
NO Lx hands with the rank of L equal to the rank of non-pair rank @ board
NO pocket pairs between highest and lowest rank @ board
NO pocket pairs with rank < lowest rank @ board

Now my previous last question:

we leave the flop random and just keep the filter >=2p
It is correct that when CREV is evaluating a paired board he adds to the filter >=2p as above AND when he is evaluating a 3 different rank board he adds to the filter >=2p as above ?

Why? Because now the result is confusing. >=2p filter will not contain the following hands
NO Lx hands with the rank of L equal to the rank of non-pair rank @ board
NO pocket pairs between highest and lowest rank @ board
NO pocket pairs with rank < lowest rank @ board
Consequently, the >=2p frequency is too low when running random board
Consequently, the >=TP >= MP frequency is too high when running random board
Therefore when using random boards (meaning not split up in 1 rank / 2 rank / 3 rank boards) the results SEEM to be like normal poker language but are actual a mix of normal poker language and your other-way-of-calculating.

Now, to me this is not important because:

We know that the frequencies with my original sieve are significant different at 3 rank compared to 2 rank flops. And such I can understand that even the >=2P frequencies are too low and that even >=TP >=MP frequencies are too high and causing errors that the magnitude of this error is significant lower then the magnitude of error you get by using random flop data at 2 rank or at 3 rank boards.
Therefore, this different way of equating is another (minor significance) reason why using data from random flops cannot be used for paired boards.

Lastly, from technical point of view it becomes impossible to directly compare results from 3 rank to 2 rank boards to see to which extent TP MP ... and such hands decrease/increase in frequency of occurance because of different kind of method of calculating.

This last paragraph was actual the reason that started all those wall of text.
And I hoped there was a way to set up the filters so:
- paired boards are equated as in normal-poker language
- random boards are equated as in normal-poker language and not with a mix

But this is just a nice to have from theoretical point of view. As the discussion in this thread reminded me, made myself more clear why this is actual of no concern.

Or does there exist a way the set filters so the same filters equate as in nomal poker language 1 rank / 2 rank / 3 rank / random rank flops?
GTO+/CardRunnersEV? Quote
01-25-2013 , 06:54 AM
Quote:
Originally Posted by Moveran
That's exactly what I mean. I'm not capable to write that kind of script though. Is it possible if you can paste it here?
Ok, please see these files.
www.cardrunnersev.com/rar/findequilibrium.rar

Save the .txt file to CardRunnersEV's /scripts subdirectory.
Then load the savefile.
To load the script, open the script window by clicking on the script icon in the lower right.
Select "Load script" to load the script.

This script varies variable 1 from 5 (line 2) to 100 (line 12) with a step of 5 (line 11).

In line 5 is sets the raise to 27 frequency to variable 1 and then makes BB make an unexploitable shove in line 6.

In lines 7 through 10 the software checks if the new EV for this tree exceeds the best EV found so far. If so, then it stores the current tree as tmp tree 4.

At the end of the script, the best performing tree is loaded.
GTO+/CardRunnersEV? Quote
01-25-2013 , 08:57 AM
Quote:
Originally Posted by scylla
You cóuld achieve that with a script.
Here's an example: www.cardrunnersev.com/rar/fractions.rar
This rar file contains both a savefile and a script.
To let the software detect the script, save it to CardRunnersEV's /scripts subdirectory.

Click the script icon in the main field's lower right to open the script window.
Load the script with "Load script" and run it with F4.
This looks a nice simple example of how scripts can be used...However, I am still very new to using them. Thus, would it be possible to just post a step by step of what each line is doing, so I can better understand what it is doing and ultimately write my own.
GTO+/CardRunnersEV? Quote
01-25-2013 , 09:01 AM
Quote:
Originally Posted by oracle3001
This looks a nice simple example of how scripts can be used...However, I am still very new to using them. Thus, would it be possible to just post a step by step of what each line is doing, so I can better understand what it is doing and ultimately write my own.
There's a whole series on writing scripts on youtube.
For links, start the CardRunnersEV beta and go to the "Videos" section.
GTO+/CardRunnersEV? Quote
01-25-2013 , 12:49 PM
Quote:
Originally Posted by scylla
Ok, please see these files.
www.cardrunnersev.com/rar/findequilibrium.rar

Save the .txt file to CardRunnersEV's /scripts subdirectory.
Then load the savefile.
To load the script, open the script window by clicking on the script icon in the lower right.
Select "Load script" to load the script.

This script varies variable 1 from 5 (line 2) to 100 (line 12) with a step of 5 (line 11).

In line 5 is sets the raise to 27 frequency to variable 1 and then makes BB make an unexploitable shove in line 6.

In lines 7 through 10 the software checks if the new EV for this tree exceeds the best EV found so far. If so, then it stores the current tree as tmp tree 4.

At the end of the script, the best performing tree is loaded.

In this find equilibrium example is there any particular reason why the call action for the SB has been set so unrealistically wide? Is it as part of the calc to find which hands are actually profitable to call (as well as the main function to find the "perfect" 4bet range?

Also I notice if I try and change the 4bet raise size, it loses the #1 checkpoint. Would it be better if it remained there if you are just altering the raise size?

Last edited by oracle3001; 01-25-2013 at 12:59 PM.
GTO+/CardRunnersEV? Quote
01-25-2013 , 01:23 PM
Quote:
Originally Posted by oracle3001
In this find equilibrium example is there any particular reason why the call action for the SB has been set so unrealistically wide? Is it as part of the calc to find which hands are actually profitable to call (as well as the main function to find the "perfect" 4bet range?
Oh, I'm sorry about that.
I should have mentioned that I simply entered some ranges at random.
You'll probably want to set some ranges for yourself that you feel make sense.

Come to think of it, I also should have mentioned that if you want more accuracy in this script, instead of making steps of 5% you should probably reduce them to steps of 1%.

Quote:
Originally Posted by oracle3001
Also I notice if I try and change the 4bet raise size, it loses the #1 checkpoint. Would it be better if it remained there if you are just altering the raise size?
Ah, sounds like a small bug.
That shouldn't happen.
I'll take care of it.
Thanks for pointing that out.
GTO+/CardRunnersEV? Quote
01-25-2013 , 06:47 PM
It's now pretty easy to load a file, play around a bit with temp files, make some changes, come up with some new stuff and click save... not realizing it's saving over the original. Or you open file a, save to temp, open file b, save to temp to be able to compare... and press save when had the temp from "a" open... essentially destroying file b and duplicating file a.

I wonder if a "You've fooled around with temp trees, are you sure this is what you want to save" would be too intrusive?

When hopping back between 2 temps, there are two annoying things:
1) the calc results are lost. Any way (other than screenshotting) to smoothly compare results in 2 trees? Couldn't you keep the last calcs stored?
2) the "tmp tree loaded" dialog is fine... until the 5th time you see it in a row and realize your mouse isn't broken, it's the dialog that' blocking things. How about making it non-modal, and autodestructing in 5...4...3...2...1... gone?
GTO+/CardRunnersEV? Quote
01-26-2013 , 03:28 AM
Is it possible to store weights when you store ranges in CREV? I know it works for Flopzilla, but for the latest version of CREV, it doesn't seem to store the weights. For example, I want to set a UTG range to 22+, A2s+, KTs+, QTs+, AJo+, KQo, SC's and set A2s-A9s and SC's to 50% weight. When I store it and load it later the weights are gone.
GTO+/CardRunnersEV? Quote
01-26-2013 , 05:35 AM
Quote:
Originally Posted by pasita
It's now pretty easy to load a file, play around a bit with temp files, make some changes, come up with some new stuff and click save... not realizing it's saving over the original. Or you open file a, save to temp, open file b, save to temp to be able to compare... and press save when had the temp from "a" open... essentially destroying file b and duplicating file a.

I wonder if a "You've fooled around with temp trees, are you sure this is what you want to save" would be too intrusive?
Yes, I should be able to ask for a confirmation in case you're trying to overwrite an existing file.

Quote:
Originally Posted by pasita
When hopping back between 2 temps, there are two annoying things:
1) the calc results are lost. Any way (other than screenshotting) to smoothly compare results in 2 trees? Couldn't you keep the last calcs stored?
No, can't be done.
Because the amount of data that's involved is huge.
I want to keep the savefiles small.

Quote:
Originally Posted by pasita
2) the "tmp tree loaded" dialog is fine... until the 5th time you see it in a row and realize your mouse isn't broken, it's the dialog that' blocking things. How about making it non-modal, and autodestructing in 5...4...3...2...1... gone?
Yes, I'll take care of that.
GTO+/CardRunnersEV? Quote
01-26-2013 , 05:35 AM
Quote:
Originally Posted by DDLJ
Is it possible to store weights when you store ranges in CREV? I know it works for Flopzilla, but for the latest version of CREV, it doesn't seem to store the weights. For example, I want to set a UTG range to 22+, A2s+, KTs+, QTs+, AJo+, KQo, SC's and set A2s-A9s and SC's to 50% weight. When I store it and load it later the weights are gone.
Turn ON "Clear mode" in the upper left.
GTO+/CardRunnersEV? Quote
01-26-2013 , 06:46 AM
Quote:
Originally Posted by scylla
Because the amount of data that's involved is huge.
I want to keep the savefiles small.
Even the values like EQ and EV that are are shown on the graph would be very helpful. If it's the size of the file, store in memory (I'm not looking at some values I calculated a week ago but a minute ago, before pruning my tree). If it's just the huge logistics of keeping the stuff organized when switching between trees... well, I've done enough programming to know that it can be a PITA to changing something like that. So I'll stick to screenshotting I guess.

Thanks for looking at the other stuff. I guess the "overwrite existing" stuff should only come to play after loading a temp tree... no-one wants to see that every time they're saving a tree in progress.
GTO+/CardRunnersEV? Quote
01-26-2013 , 05:02 PM
Ok bought it today.

When using this as a training/hand rewiew tool. I can put the line a villian did play and fiddle around which would have been the most ev play? Thats how I would start to use this programm..
GTO+/CardRunnersEV? Quote
01-26-2013 , 05:13 PM
Quote:
Originally Posted by icantfoldatc
Ok bought it today.

When using this as a training/hand rewiew tool. I can put the line a villian did play and fiddle around which would have been the most ev play? Thats how I would start to use this programm..
It's probably easiest if you mail a savefile to support.

Cheers,

Scylla
GTO+/CardRunnersEV? Quote
01-27-2013 , 08:21 AM
Quote:
Originally Posted by scylla
Ok, please see these files.
www.cardrunnersev.com/rar/findequilibrium.rar

Save the .txt file to CardRunnersEV's /scripts subdirectory.
Then load the savefile.
To load the script, open the script window by clicking on the script icon in the lower right.
Select "Load script" to load the script.

This script varies variable 1 from 5 (line 2) to 100 (line 12) with a step of 5 (line 11).

In line 5 is sets the raise to 27 frequency to variable 1 and then makes BB make an unexploitable shove in line 6.

In lines 7 through 10 the software checks if the new EV for this tree exceeds the best EV found so far. If so, then it stores the current tree as tmp tree 4.

At the end of the script, the best performing tree is loaded.
Thank you very much!!
Is it possible to have call and unexplo push in the same "action"?

Lets say I 4bet
I want here the villian to have an opportunity to call, fold or unexplo-push

Because I want to exclude some hands in the push, that I think villian will call. I couldn't manage to do this
GTO+/CardRunnersEV? Quote
01-27-2013 , 01:22 PM
Quote:
Originally Posted by scylla
Ok, please see these files.
www.cardrunnersev.com/rar/findequilibrium.rar

Save the .txt file to CardRunnersEV's /scripts subdirectory.
Then load the savefile.
To load the script, open the script window by clicking on the script icon in the lower right.
Select "Load script" to load the script.

This script varies variable 1 from 5 (line 2) to 100 (line 12) with a step of 5 (line 11).

In line 5 is sets the raise to 27 frequency to variable 1 and then makes BB make an unexploitable shove in line 6.

In lines 7 through 10 the software checks if the new EV for this tree exceeds the best EV found so far. If so, then it stores the current tree as tmp tree 4.

At the end of the script, the best performing tree is loaded.
Been playing around with this and it seems like it doesn't really work. When I run the script I get different outcomes every time. The bluffrange completely changes and doesn't make any sense. And sometimes the program for some reason excludes JJ but want me to play with TT - even if the JJs EV are much higher.
I changed the step to 1% and even to 0.25%
GTO+/CardRunnersEV? Quote
01-27-2013 , 02:13 PM
Quote:
Originally Posted by Moveran
Been playing around with this and it seems like it doesn't really work. When I run the script I get different outcomes every time. The bluffrange completely changes and doesn't make any sense. And sometimes the program for some reason excludes JJ but want me to play with TT - even if the JJs EV are much higher.
I changed the step to 1% and even to 0.25%
I have just tried running it multiple times and observing the same strange behaviour.
GTO+/CardRunnersEV? Quote
01-27-2013 , 02:15 PM
Quote:
Originally Posted by Moveran
Thank you very much!!
Is it possible to have call and unexplo push in the same "action"?

Lets say I 4bet
I want here the villian to have an opportunity to call, fold or unexplo-push

Because I want to exclude some hands in the push, that I think villian will call. I couldn't manage to do this
You can't really do that in an "organic" way, but I suppose there is an artificial way of splitting BB's decision into two decisions and that is to let him make a tiny (for example 10 cent) raise with the intended push/fold range.

In this manner you'll separate the call range from the unexploitable push range.

See the pic below.

SB raises, and BB calls with the intended calling range. Pretty straightforward.

However, we now need to move BB's push/fold range to a next decision so that the unexploitable shove can be performed there. For that, I just let him make a tiny 10 cent raise to 27.1. After that, SB also makes the same tiny raise. And now we arrive at a new decision for BB where he can now push/fold with the trimmed down range.

It's certainly not pretty, but it works.

GTO+/CardRunnersEV? Quote
01-27-2013 , 02:26 PM
Quote:
Originally Posted by Moveran
Been playing around with this and it seems like it doesn't really work. When I run the script I get different outcomes every time.
Under slightly different conditions I assume?

Quote:
Originally Posted by Moveran
The bluffrange completely changes and doesn't make any sense.
Yes, I make a point of that in the video on finding equilibria.
A raising range is typically subdivided into:
- a value range, with which you intend to proceed if villain does not fold
- a bluff range, that you intend to fold if villain fights back

The bluff range can be incredibly weird, due to the value of each bluff depending on complex card removal effects. After all, you intend to fold these hands if villain does not fold. The only criterium therefore of selecting this range is how it will affect villain's range (via card removal). I've seen some really weird stuff happen with these bluff ranges. However, if you adjust them by hand so that the number of bluff-combos does not change, you should arrive at a comparable result that's more easily interpreted.

Quote:
Originally Posted by Moveran
And sometimes the program for some reason excludes JJ but want me to play with TT - even if the JJs EV are much higher.
I changed the step to 1% and even to 0.25%
Again, card removal. For some reason that I can't really judge, holding TT in your range is smarter than JJ, due to the effect on villain's range.

These card removal effects can be really weird, and are more of a computer range than something that can be understood by the human brain. Also ... as discussed in the videos on unexploitable shoving, the results that you get are not perfect. They're just the best range that the software ran accross while running the script. You may need to do some creative interpreting to arrive at something that makes more sense to a human. For example, by replacing the TT by JJ anyhow. Most likely, the effect of such changes will be very minimal.


PS: Feel free to send me a savefile of a result. Maybe I'll be able to make some sense of it.

Last edited by scylla; 01-27-2013 at 02:32 PM.
GTO+/CardRunnersEV? Quote
01-27-2013 , 02:42 PM
Quote:
I've seen some really weird stuff happen with these bluff ranges. However, if you adjust them by hand so that the number of bluff-combos does not change, you should arrive at a comparable result that's more easily interpreted.
In the "find equilibrium" example how do we achieve this, as the script sets all the 4bet raises to x% of hands based on EV.

Can we simply add another condition that contains our 4bet bluff hands, under the 4bet action with a certain non-100% weight? Would is also be possible to estimate the % time we should use 4bet bluff range as part of the calculation?
GTO+/CardRunnersEV? Quote
01-27-2013 , 02:49 PM
Quote:
Originally Posted by oracle3001
In the "find equilibrium" example how do we achieve this, as the script sets all the 4bet raises to x% of hands based on EV.

Can we simply add another condition that contains our 4bet bluff hands, under the 4bet action with a certain non-100% weight? Would is also be possible to estimate the % time we should use 4bet bluff range as part of the calculation?
I would just select one suited hand that is not selected for every suited hand that is selected but that makes no real sense to me.

Same of the offsuit hands.

Same for the pockets.

Or, alternatively, you could just check for what % of the time there's a bluff.
GTO+/CardRunnersEV? Quote
01-27-2013 , 02:52 PM
Quote:
I would just select one suited hand that is not selected for every suited hand that is selected but that makes no real sense to me.

Same of the offsuit hands.

Same for the pockets.

Or, alternatively, you could just check for what % of the time there's a bluff.
I am really sorry, I don't understand any of this.

The question I was asking if how do we alter the find equilibrium example to say for a simple example well we are definitely going to use say all Ax(s) as our 4bet bluffs should any "bluffs" be allowed against our opponents unexpl push and secondly how often should we be using 4bet bluffing Ax(s) i.e what weight for that range.

Last edited by oracle3001; 01-27-2013 at 03:13 PM.
GTO+/CardRunnersEV? Quote

      
m