Gå till innehåll

Simulera kurva för given winrate?


Waggho

Recommended Posts

Det diskuteras ju en del hur många händer som behövs för en hyfsad uppskattning av ens winrate, och svaret är väl i princip "väldigt många". Något jag tycker skulle vara intressant vore att se en simulerad kurva för spelet hos någon som vinner x BB/100, vilken man kan jämföra med sin egen kurva i exempelvis pokergrapher eller pokerpatterns eller bara studera för att se hur stora swings man kan förvänta sig. Jag tycker inte att det borde vara så svårt att rita en graf om man vet standardavvikelsen, vilken väl brukar ligga kring 15 BB/100. Tyvärr vet jag inte själv hur eller i vilket program man skulle kunna göra det. Som winrate skulle man kunna sätta in vad som helst, 1 BB/100, 2 BB/100, 3 BB/100, 0 BB/100 osv. (eller för NL 10 bb/100 osv.) Jag tycker i alla fall att det skulle vara väldigt intressant, nån som har lust att göra ett försök?

Länk till kommentar
Dela på andra webbplatser

Jag har gjort det för SnG och turneringar i matlab.

 

Kommandot

[b,Dmax]=simtours(2000,0.2)

kör 2000 SnGs med ROI=20%.

Vinsten B och största Downswing Dmax i intervallet skrivs ut.

 

m-filen simtours.m:

 

function [b,Dmax] = simtours(n,roi)

 

B=0;

Bmax=0;

D=0;

Dmax=0;

hold off;

 

for i=1:n

[a,b]=SnG10(roi); %anropar m-filen SnG10

B=B-1+b;

if B>Bmax

Bmax=B;

end;

D=Bmax-B;

if D>Dmax

Dmax=D;

end;

 

plot(i,B,'b'); %plottar graf av bankrullen

plot(i,-D,'r'); %plottar graf av downswingen

hold on;

end;

grid;

 

m-filen SnG10.m:

 

function [plac,pay] = SnG10(roi);

 

R=[5,3,2];

 

plac=ceil(rand*10/(roi+1));

 

if plac>3

pay=0;

else

pay=R(plac);

 

end;

 

 

Byt ut

[a,b]=SnG10(roi); mot [a,b]=tour300(roi);

om du vill simulera turnering med 300 spelare.

(Utbetalningsstruktur från Pokerstars)

 

m-filen tour300.m:

 

function [plac,pay] = tour300(roi);

 

R=[82.5 , 52.5 , 34.8 , 24 , 18 , 13.5 , 10.5 , 7.8 , 5.1 , 3.6 , 3.6 , 3.6 , 3.6 , 3.6 , 3.6 , 3.6 , 3.6 , 3.6 , 2.1 , 2.1 , 2.1 , 2.1 , 2.1 , 2.1 , 2.1 , 2.1 , 2.1];

 

plac=ceil(rand*300/(roi+1));

 

if plac>27

pay=0;

else

pay=R(plac);

 

end;

Länk till kommentar
Dela på andra webbplatser

Längre ner i tråden finns en länk till ett färdigt excelark. Då slipper du t.o.m. det jobbet.

 

Riktigt roligt att peta in olika siffror och peta på F9 för att se vad som händer.

 

Grymt excel-ark :) Galet hur det kan variera, trodde inte det kunde vara så extremt som det blir ibland.

Länk till kommentar
Dela på andra webbplatser

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gäst
Svara i detta ämne...

×   Du har klistrat in innehåll med formatering.   Ta bort formatering

  Endast 75 max uttryckssymboler är tillåtna.

×   Din länk har automatiskt bäddats in.   Visa som länk istället

×   Ditt tidigare innehåll har återställts.   Rensa redigerare

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Skapa nytt...