Elo ratings:
We'll assume Elo may be one of the following
- accurate representation of player skill
- overestimated. Player having (or is about to have) a bad day and rating hasn't dropped yet; inflated because enemy was having a bad day; player farmed rating by hand picking opponents; still warming up and not playing at his best; something else along the lines
- underestimated (somewhat opposite of the above). Practicing new strats; yesterday was a bad day and he hasn't regained rating yet; came back from a long break, but things just clicked, so he's strong again; farmed by a stronger opponent

Because we are betting on everyone ,or at least I am for this discussion, underestimating and overestimating should average out, so it should not be a problem.

The automatic ratings are not emotional.

The system tracks more games than a human would bother to.

We could assume Elo isn't accurate and subtract a bit from the expected winpct. of the higher rated player (eg 70% to 60%)
- if we are right, we magically make the next bet correctly, pessimism wins!
- if wrong we lose the opportunity to bet more. In the long run this is as fatal as betting wrong, because the lost potential adds up. For example we win only 60 coins after some bets, when we should have won 100. The next time we lose 100, we are 40 behind, instead of where we started.
- overall I believe it's not a good idea, because the rating already is an estimate. If we don't trust it, why use it in betting decisions at all?

There are cases where Elo is considered to fail. I believe it's more wrong interpretation of the data more than anything else.
- Elo isn't global. The ratings of players of different player pools can't be accurately compared. For example in two groups of 100 players each, players only face others from their group, never in the other one. Everyone will have a rating, but a rating from the first group will have nothing to correlate it to the rating in the other group.
There is data to correlate them, but the rating system wasn't designed with this in mind. Such data includes player ability spread somewhat equally across the population; shared learning materials.
- one map players, having a "wrong" rating. This is just a variation of the above. The rating is just for that map. The other maps were not played, or at least not enough, so the single map rating outweights everything else.
- matchups between players of specific playstyles, or people that play eachother relatively often. In those cases the players have more domain knowledge and do things they probably wouldn't do on average. The rating probably isn't very up to date.


Simulation:
There are two main ways to simulate betting. Random number generation or a combinatorial calculation.

Pro random numbers:
- easier to program, assuming ready made decent generator
- simulation might be faster

Contra random numbers:
- Believed to be less accurate. Random numbers are not that random.

Pro combinatorial approach:
- works by enumerating and counting all possible scenarios. Best to imagine this for a card game. If we draw a specific card, what cards can our opponents have, which one can they play, what if they win, what if they lose, what if they stop playing (if caught cheating or heart attack) etc etc
- we don't depend on random numbers
- believed to be most accurate

Contra combinatorial:
- harder to program, because we have to imagine a lot of combinations.
- simulations may run very slow if we suck at combinatorics and count things we can skip


Deriving the expected win percents (winpct) from the qlrankstv bot and others:
- from the Elo rating. The formula is 1 / (1 + (10 ** -((player_a - player_b) / 400))) * 100. So for a positive 100 rating difference, player_a is expected to win about 64% of the time. For a negative 200 - player_a wins 24% of the time.
- from the odds of the bot. The bot is using decimal odds, aka European odds format. Google it. The winpct is simply 100/odds.
- from your own observation and knowledge. See T1E's comment for an example. (http://esreality.com/post/2597605/betting-ana...pid2597623)
- offtopic - other formats that exist are fraction odds (UK format) and moneyline odds (American format). I have nfi wtf.

Betting systems.
I'm about to repeat what others have proved many times - betting systems don't give a long term advantage to the better. They are, however, very interesting and I had to check them out to convince myself.
We assume the bot doesn't allow to take credit (negative bank balance), so we are bounded from below. In casinos you may have another limitation, you may have a betting limit, bounded from above. In other words, bet floor = minimum bet; bet roof = max bet.

We'll call a fixed amount of money we bet a unit bet.
It is for example 1% or 2% of our bank. Assume that 1 unit = 10 coins for all my tests, unless stated otherwise.

I wont discuss the betting systems in detail, I'm providing their names, so you can google them, if it's interesting.

The first and simplest betting system is called flat betting. Bet one unit on something every time.
For example someone has 1.06 odds to win. This means he has 100/1.06 = ~94.3396% to win. So out of 100 bets, he's expected to win 94 and lose 6. The amount we win is bet_amount * (1-odds). The amount we lose is everything we bet.
If we bet 100 coins in all 100 bets, the expected earnings are
number_of_wins * bet_amount * (1-odds) - number_of_loses * bet_amount = 94 * 100 * 0.06 - 6 * 100 = -36. We lost 36 coins. Actually everything lost here is due to the rounding errors I made for the example, here's a more accurate one 94.339 * 100 * 0.06 - (100-94.339) * 100 = -0.06600000000014461. So it turns out we won't win or lose anything using flat betting on the same guy with the same winpct every time, assuming there are no rounding errors.

Other types of betting systems are based on negative progressions. Raise bets after losses, hoping to to recover with an eventual win. The Martingale system doubles bets every time we lose and restores the bet to the unit amount after every win.

Another type is the positive progression. Raise bets after wins, reduce to the unit bet after each loss. I'll be doubling my bets, but that's later.

The cancellation aka Labouchere betting system is the most interesting to me. Read on it here http://wizardofodds.com/gambling/betting-systems/cancellation/ Unfortunately the format commonly found explained around the net isn't of use to us. Seems obvious how to modify it, but I'll be spending my time on something else.

The last betting system I'll list is the Kelly criterion.
It's a simple formula that decides if we should bet and how much, in order to optimize long term profits.
Read on it here http://www.aussportsbetting.com/2010/07/12/ke...roduction/
A worked example looks like this:
QLRanksTV: >> A match between INCReas (1652) and base_ (2099) has STARTED on lostworld
QLRanksTV: >> INCReas winning odds: 14.11
QLRanksTV: >> base_ winning odds: 1.08
>>> (1 / (1 + (10 ** -((2099-1652) / 400)))) * 100
92.91127058412668
d = 1.08
p = 0.921
q = 1-0.921 #1-p
(p*(d-1) - q ) / (d-1)
-0.06649999999999862
meaning we should not bet, but I attribute this to rounding errors in the qlranks bot output formatting + rounding errors in the floating point math on my machine.

Simulations and results:
I wrote some simulations, which you can find on
http://ps2ranks.brb.dj/static/qlbets/betting%20analysis/elogen.py
Use at your own risk.

There are 1000 independent sessions for each betting type, each starting with a capital of 1000 coins. Each session runs for 10 000 bets or until all money is gone. Unit bet is 10 coins. Units are doubled, halved or kept constant according to the betting system used.


An example output looks as follows:
a row with a description followed by a row with
3 numbers. The description tell us that the simulation is betting on players with the corresponding winpct. (50-100, 10-90, 10-50).
The numbers represent:
- wins - times we actually had capital bigger than starting
- coin total without initial capital (amount won or lost) across all sessions
- percent of coins of total starting capital of all sessions, won or lost
total capital of all sessions is
number_of_sessions * starting_coins_for_session = 1000 * 1000 = 1mil

flat bets on stronger player
519 20008.215796044446 pct coins changed 2.0008215796044446
flat bets in range 10-90
427 -988.6877449069871 pct coins changed 0.0988687744906987
flat bets in range 10-50
354 -4094.371741646668 pct coins changed 0.4094371741646668
martingale 50-100
515 4267.218830784084 pct coins changed 0.42672188307840847
martingale 10-90
156 8279.756691984832 pct coins changed 0.8279756691984832
martingale 10-50
151 -213537.01869541826 pct coins changed 21.353701869541826
positive progr 50-100
623 -9562.719172265613 pct coins changed 0.9562719172265614
positive progr 10-90
206 -191318.24229498568 pct coins changed 19.131824229498566
positive progr 10-50
150 456412.2417719485 pct coins changed 45.64122417719485

The simulations have 1 million coins across all sessions as starting capital, but end up losing/winning only a small amount. Eg 20k won in the first example.
I believe outliers with big percents are lucky streaks.
Short term win and loss of a huge amount of coins is very possible.

Betting systems don't have an effect on long term winnings. They don't give an advantage to the better.
They however change how short term winnings are played out.

To get an advantage one has to cheat the system somehow. I rather not discuss that.

Given that a lifetime isn't eternal, one has the potential to win a lot, so it's worth trying. Not to mention elo isn't perfect, so there's room to play.

updates:
fixed some wording, referenced T1E in winpct section, added table of contents.
Article Page: 1