SnG BreakEven Analysis Tool Version2

    • eisi2
      eisi2
      Bronze
      Dabei seit: 16.09.2007 Beiträge: 543
      Hab jetzt eine bessere genauere Version erstellt

      http://www.megaupload.com/de/?d=N8OGK8N1

      Diesmal gibt man die Anzahl an Breakevenswings an und das Programm berechnet in 100000 Simulationen die Endbankroll und wird in eine Textdatei (optional) gespeichert welches in Excel eingefügt werden kann und eine Normalverteilung zeigt.

      dazu kopiert man einfach den Text der Textdatei und fügt es im Tabellenblatt (Eigene) in A1 ein.

      Werd auch noch paar Grafiken veröffentlichen und analysieren ;)
      jetzt möcht ich euch mal das Programm geben ;)


      Was mich verwundert hat, ist dass 100 BE swings mit 15% ROI genauso wahrscheinlich sind wie 1000 BE swings mit 5% ROI

      lg



      -----------------------------------------------------------------
      edit:


      Hab ein Tool gefunden das ich eigentlich erstellen wollte ^^
      Aber nachdems es schon gibt hab ich jetzt ein anderes Projekt gestartet :)
      Hier das Tool (nicht von mir) das sehr gut zeigt warum BRM so wichtig ist.
      http://www.megaupload.com/de/?d=ESLQEIJR
      (Ist eine Excel 2007 Datei)


      Und jetzt zu meinem ^^
      http://www.megaupload.com/de/?d=BK6PHIEC
      (C# Konsolenanwendung)


      Hab versucht nicht die Downswings darzustellen sondern wie oft und in welchem Ausmaß break even swings vorkommen bei einem bestimmten ROI mit bestimmten ITM Platzierungen.

      Das impliziert natürlich downswings, jedoch stell ich damit größere "nicht gewinn spannen" besser dar.

      Hier einfach mal ein Auszug aus der Textdatei (zur Erklärung)


      ----------------------New Simulation----------------------
      33$+3$ - Player:9
      Simulations: 10000000 Games: 20000
      1: 148,5$ 2: 89,1$ 3: 59,4$
      chance 1: 39% chance 2: 29% chance 3: 32%
      ROI: 5% ITM: 36,7840252233316%

      more than 10 straight losses: 15122040 / 280290523 = 5,39513068017644%
      biggest straight loss: 49


      Over 10 SnG Break Even swings: 2033341 / 10000000 = 20,33341%
      Over 30 SnG Break Even swings: 1063868 / 10000000 = 10,63868%
      Over 50 SnG Break Even swings: 768718 / 10000000 = 7,68718%
      Over 100 SnG Break Even swings: 478197 / 10000000 = 4,78197%
      Over 300 SnG Break Even swings: 191691 / 10000000 = 1,91691%
      Over 1000 SnG BreakEven swings: 45585 / 10000000 = 0,45585%
      biggest BreakEven swing: 16192


      Simulation:
      Anzahl der durchgeführten Swingsituationen. Eine Simulation besteht aus einem od. mehreren Spielen und analysiert diese.

      Games:
      Anzahl der begonnen Spiele in einer Simulation. Ein Spiel wird abgeschlossen wenn die bankroll nach der Runde positiv beendet wird bzw. die max. Spielanzahl erreicht ist.

      Preise der Plätze (buyin ist nur im Programm abgezogen)

      Chancen der Platzierung ITM: (von 100% auf die ersten 3 aufgeteilt)
      z.B 35 29 36 - bitte darauf achten dass man 100% hat... Fehlerbehandlung/meldungen wurden nicht programmiert

      ROI:
      ROI sollte klar sein - bitte bei der Eingabe aufpassen, dass man in % den ROI angibt sprich wenn ihr 10% habt (=0.1) dann gebt 10 (ohne % zeichen) ein

      ITM:
      wird berechnet

      more than 10 straight losses:
      [i]Anzahl/Wahrscheinlichkeit der downswings ohne eine ITM Platzierung[i]

      biggest straight loss:
      größter Swing ohne ITM Platzierungen

      Over 10 SnG Break Even swings: 2033341 / 10000000 = 20,33341%
      .....
      Das sind die interessanten Zahlen und zeigt euch an wie oft ihr bei der Simulation einen 11 BI Swing.. hinnehmen musstet, bis ihr wieder bei der alten BR seit.

      biggest BreakEven swing:
      Zeigt den größten Swing an bevor man wieder seine BR zurück erkämpft hat. Umso mehr Simulationen, umso größer wird diese Zahl sein.

      edit: Am Ende ist (y = no und n = yes) ... hab ich vertauscht - wird noch ausgebessert.

      Bei meinem Programm gibt es leider keine Fehlerbehandlung (dafür hab ich mir dann nicht mehr die Zeit genommen)

      Damit alle Statistiken auch irgendwo gespeichert werden, wird unter C:\SnG_BreakEven.txt eine Textdatei mit allen Simulationen erstellt.

      Also dann viel Spaß mit meinem Programm ;)
      (is zwar net super aufregend aber für den einen oder anderen vielleicht doch ganz interessant)

      edit: Hier mein alter Beitrag


      Hab mal bissi in C# programmiert und ein kleines Tool erstellt, welches die Chancen broke zu gehen berechnet.

      Unter einem bestimmten ROI, mit bestimmtem buyin....

      kleine kurzerklärung:

      buyin - ist rake und "buyin" zusammen
      games - anzahl der zu spielenden SnGs (je weniger, desto mehr varianz)
      player - anzahl der spieler (9/10)
      rake - is klar
      brm - hilfsvariable fürs bankrollmanagement (40BI ...);
      first, second, third (die plätze welche mom. aber noch nicht untereinander verschiedene ITM werte annehmen können)
      roi - ROI z.B. 5% = 0.05
      itm1,itm2 - variablen für die In The Money Berechnung (die Grundlage um die Varianz zu berechnen.

      Is mom. noch recht einfach gehalten und ich bin jetzt auch net der superprogrammierer aber wers haben/ weiterentwickeln möchte, stell ichs gerne zur Verfügung

      Hier der Quellcode:

      code:
      using System;
      using System.Collections.Generic;
      using System.Text;
      
      namespace SnG_Varianz
      {
          class Program
          {
              static void Main(string[] args)
              {
                  int buyin, games, player, rake, brm;
                  double first, second, third, roi, itm1,itm2;
                  
                  //bra = anzahl der durchgeführten simulationen
      
                  int[] bra = new int[10000];
                  games = 1000;
                  brm = 30;
                  roi = 0.05;
      
                  buyin = 210;            
                  rake = 10;
                  player = 10;            
                  
                       
                  first = 0.5 * (buyin - rake) * player;
                  second = 0.3 * (buyin - rake) * player;
                  third = 0.2 * (buyin - rake) * player;
      
                  itm1 = inthemoney(first, second, third, roi, buyin, rake, player);
      
                  double broke;
                  for (int i = 1; i <= 10; i++)
                  {
                      brm = i * 5;
                      
                      broke = brokecalc(bra, games, brm, buyin, player, first, second, third, itm1);
                      Console.WriteLine(brm+ "BI ("+brm*buyin+"$): - broke: " + broke + "%");
      
                  }
      
                  Console.WriteLine();
                  itm2 = inthemoney(first, second, third, 0.03, buyin, rake, player);
                  
                  for (int i = 1; i <= 10; i++)
                  {
                      brm = i * 5;
      
                      broke = brokecalc(bra, games, brm, buyin, player, first, second, third, itm2);
                      Console.WriteLine(brm + "BI (" + brm * buyin + "$): - broke: " + broke + "%");
      
                  }
      
                  Console.ReadLine();
      
              }
      
      
              static double brokecalc(int[] BRArray, int games, int brm, int buyin, int player, 
                  double first, double second, double third, double inthemoney)
              {
                  Random ra = new Random();
                  int rand;
      
                  double bankroll = 0;
                  double broke = 0;
      
                  for (int n = 0; n < BRArray.Length; n++)
                  {
                      bankroll = buyin * brm;
                      for (int i = 0; i < games; i++)
                      {
                          bankroll -= buyin;
                          rand = ra.Next(1, player * 1000 + 1);
      
                          if (rand > 0 && rand <= inthemoney)
                              bankroll += first;
                          if (rand > inthemoney && rand <= inthemoney * 2)
                              bankroll += second;
                          if (rand > inthemoney * 2 && rand <= inthemoney * 3)
                              bankroll += third;
                          if (bankroll < 1)
                              i = games;
                      }
      
                      BRArray[n] = (int) bankroll;
      
                      if (BRArray[n] < 1)
                      {
                          broke++;
                      }
      
                     
                  }
                  broke = broke / (BRArray.Length / 100);
                  return broke;
              }
      
              static double inthemoney(double first, double second, double third, double roi, int buyin, int rake, int player)
              {
                  double itm;
                  first = 0.5 * (buyin - rake) * player;
                  second = 0.3 * (buyin - rake) * player;
                  third = 0.2 * (buyin - rake) * player;
                  itm = ((roi + 1) * buyin) / (0.3333333333333333333 * (first + second + third));
                  Console.WriteLine(buyin - rake + "$+" + rake + "$ - Player:" + player);
                  Console.WriteLine("1. " + first + "$ 2.: " + second + "$ 3. " + third + "$");
                  Console.WriteLine("ROI: " + roi * 100 + "% ITM: " + itm * 100 + "%\n");
      
                  // ITM % Verteilung für die ersten 3 Plätze (mom. alle gleich verteilt)
                  itm = itm / 3 * player * 1000;
                  return itm;
              }
          
          }
      }
      


      So sieht das ganze mom. aus



      Werd mich noch bissi damit beschäftigen und vielleicht auch noch grafisch erstellen ;)

      lg Eisi



      hat nur wenig mit dem neuen Programm (siehe oben) zu tun.
  • 5 Antworten
    • Belizean
      Belizean
      Bronze
      Dabei seit: 01.03.2007 Beiträge: 1.122
      und wie bekomme ich das jetzt als nicht kenner/könner auf meinen pc ??? ...kopieren im editor einfügen und dann ? sorry..kenn mich damit nicht so aus..aber da ich ein solides 80-100 bi management habe ...liege ich da ja schön unten :-) -...
    • eisi2
      eisi2
      Bronze
      Dabei seit: 16.09.2007 Beiträge: 543
      Original von Belizean
      und wie bekomme ich das jetzt als nicht kenner/könner auf meinen pc ??? ...kopieren im editor einfügen und dann ? sorry..kenn mich damit nicht so aus..aber da ich ein solides 80-100 bi management habe ...liege ich da ja schön unten :-) -...
      wenn du willst kann ich dir die .exe datei zur Verfügung stellen.
      ansonsten empfehle ich dir das Programm von meinem oberen editierten post

      Original von eisi2
      [...]
      Hier das Tool (nicht von mir) das sehr gut zeigt warum BRM so wichtig ist.
      http://www.megaupload.com/de/?d=ESLQEIJR
      (Ist eine Excel 2007 Datei)


      Und jetzt zu meinem ^^
      http://www.megaupload.com/de/?d=BK6PHIEC
      (C# Konsolenanwendung)
      [...]

      -------------

      ach ja zu meinen noch etwas... die simulationen werden recht schnell berechnet also ihr könnt je nach rechner da schon eine sehr sehr große samplesize angeben.

      hab schon 25 000 000 Simulationen mit 50 000 games gemacht (ok das hat etwas gedauert aber war nach 1min. trotzdem da)

      und ich hab am Schluss bei End? y/n die buchstaben verstaucht (y = no und n = yes) ... naja kann passieren... besser ich dann später aus... jetzt geh ich mal schlafen *gg*
    • Belizean
      Belizean
      Bronze
      Dabei seit: 01.03.2007 Beiträge: 1.122
      ok danke
    • 00Visor
      00Visor
      Bronze
      Dabei seit: 26.11.2007 Beiträge: 14.438
      Sehr nice. Aber erklärt bitte nochmal, was diese "BreakEven-Swings" jetzt bedeuten.
      Ich vermute mal, du berechnest, bei welchem SnG zum ersten Mal wieder die Startbankroll erreicht wird. Das heißt, wenn das erste gewonnen wird, ist der Wert 1.
      Wenn man wissen will, wie oft und in welchem Ausmaß, break even Swings vorkommen, sollte man jedoch schauen, wie oft solche Swings allgemein in einer 10k Samplesize vorkommen und nicht beim ersten breakeven sofort terminieren.
    • eisi2
      eisi2
      Bronze
      Dabei seit: 16.09.2007 Beiträge: 543
      Original von 00Visor
      Sehr nice. Aber erklärt bitte nochmal, was diese "BreakEven-Swings" jetzt bedeuten.
      Ich vermute mal, du berechnest, bei welchem SnG zum ersten Mal wieder die Startbankroll erreicht wird. Das heißt, wenn das erste gewonnen wird, ist der Wert 1.
      Wenn man wissen will, wie oft und in welchem Ausmaß, break even Swings vorkommen, sollte man jedoch schauen, wie oft solche Swings allgemein in einer 10k Samplesize vorkommen und nicht beim ersten breakeven sofort terminieren.
      jep, genau so ist es mom.
      Ich terminiere beim überschreiten der alten BR aber arbeite noch daran dies zu verbessern.

      So sieht man halt wenn man das 1. SnG verliert wie lang es dauert bis man wieder bei der alten BR ist (bzw. wie wahrscheinlich, dass bestimmte swings möglich sind) ... da man aber nach einem kleinen up schon wieder down gehen kann und dann wieder up/down.. usw. .., das ist noch net drinn.


      ich könnte theoretisch bei verschiedenen samplesize einfach am ende immer die Bankroll ansehen und von den Ergebnissen eine Binomialverteilung erstellen (natürlich wieder ROI, player, rake.... beachten)... wäre das erste was mir so einfallen würde aber ich glaub fast, dass ich dann nur eine Normalverteilung zum bestimmten ROI sehe ...

      Ich entwickle das ganze jedenfalls noch weiter und geb euch updates ;)