Thread Rating:
I may have misunderstood some of the information I've read on here, but I can't seem to figure out why betting systems are a bad idea.
I know you can get house odds down to .28% without counting cards if you're on the right table, but lets just say that you only win 43 percent of the time.
I created a quick computer program to simulate a betting system that follows these rules:
-You win 43% of the time
-initial bet starts at table minimum
-if you lose you double your bet
-if your doubled bet is over the table max, you set the bet at table max.
-once you win, you reset the bet to table min (even if it has been at the table max for the last 5 hands).
-I initial set the program up with a bankroll of 50000 on a $1 min and $500 dollar max
- games is the number of hands played.
Every time I run it, i never get in the red. Obviously starting with 50,000 with an initial bet of 1 dollar, it may take awhile.
Every where I've read in the blackjack section says that progressive betting doesn't really matter except for making things fun and more volatile. But check the stats:
When only placing a 5 dollar bet and never changing that amount on 1,000,000 hands:
Losses: 569878 Wins: 430122
loss ratio: 0.569878
minBank: -648780
maxBank: 50060
streak: 16
ending balance: -648780
Now, with doubling (as mentioned above):
Losses: 569752 Wins: 430248
loss ratio: 0.569752
minBank: 17927
maxBank: 443052
streak: 15
ending balance: 443049
The numbers seem to be pretty consistent every time I run the thing.
If you want to check out the code (its pretty easy to read even if you're not a programmer) here it is:
import java.util.Random;
public class Test {
//the setup variables:
static int tablemin = 1;
static int tablemax = 500;
static int bankroll = 50000;
static int games = 1000000;
static double winPercentage = 43;
static int wins = 0;
static int losses = 0;
static int bet = tablemin;
static int maxBank = 0;
static int minBank = bankroll;
// this just starts the program
public static void main(String[] args) {
startGame();
}
private static void startGame() {
int streak = 0;
int maxStreak = 0;
for (int i = 0; i < games; i++) {
Random r = new Random();
// result is a random number 0-99 add 1 makes it a random
// number 1-100
double result = ((double) r.nextInt(100) + 1);
if (result <= winPercentage) {
wins++;
bankroll += bet;
bet = tablemin;
streak = 0;
} else {
losses++;
bankroll -= bet;
bet *= 2;
streak++;
if (streak > maxStreak)
maxStreak = streak;
if (bet > tablemax)
bet = tablemax;
}
if (bankroll > maxBank)
maxBank = bankroll;
if (bankroll < minBank)
minBank = bankroll;
}
double f = (double) ((double) losses / (double) games);
System.out.print(" Losses: " + losses + " Wins: " + wins + "\n");
System.out.print(" loss ratio: " + f + "\n");
System.out.print(" minBank: " + minBank + "\n");
System.out.print(" maxBank: " + maxBank + "\n");
System.out.print(" streak: " + maxStreak + "\n");
System.out.print(" ending balance: " + bankroll);
}
}
Am I completely missing something, or what?
Losses: 591 Wins: 409
loss ratio: 0.591
minBank: -2643
maxBank: 560
streak: 12
ending balance: -2127
Losses: 568 Wins: 432
loss ratio: 0.568
minBank: -655
maxBank: 675
streak: 10
ending balance: -167
Losses: 574 Wins: 426
loss ratio: 0.574
minBank: -2251
maxBank: 594
streak: 12
ending balance: -1661
Losses: 570 Wins: 430
loss ratio: 0.57
minBank: -295
maxBank: 716
streak: 10
ending balance: 382
Losses: 587 Wins: 413
loss ratio: 0.587
minBank: 3
maxBank: 877
streak: 9
ending balance: 877
..etc..
Who has time to sit for a million hands? Where can you find a table with a $1 minimum and $500 max? Who sits down with 100 times the max?
Hell, even your short term of 1,000 hands is fairly long term!
On a side note, your "easy to read" program looks like Greek to me. And I have over 35 years of programming experience!
There is nothing wrong with betting systems for fun - for instance when buying lottery tickets one way is to use car registration numbers to pick the numbers - or if picking horses use a name you like.Quote: chillin221...I can't seem to figure out why betting systems are a bad idea...
However the forum is aimed towards doing the best you can, using the best strategy to reduce the advantage to the house to a minimum, identify profitable scenarios, make your money last longer etc.
There are typically three types of games
(a) those where there is always a player edge, albeit using a fixed/complicated strategy.
(b) those where sometimes an advantage can be occur or be determined and bets increased or strategy changed.
(c) those where there is always a house edge.
For (a) games, the best idea is to bet as much as you can as often as possible (subject to bankroll and ruin analysis).
For (b) games, the best idea is to bet minimum (or not at all) during adverse conditions and increase bets during favourable conditions: Blackjack counting falls into this category; lotteries after rollovers or jackpot style bets also apply if the top prize is large enough.
Most casinos games fall into class (c), i.e. in the long run the house wins; thus the strategy is to play the minimum bet, usually avoid side-bets, and adopt the strategy that minimises the house edge. Any betting systems for these games is rather like finding perpetual motion, they don't work! For instance you can create a series of bets than win $1 (e.g. double your bet each loss) and while every (say) 999 times you win $1, house edge says that the 1000th time you lose much more than $1000; thus in the long term any system loses.
(You'll also find that "system," on this board, is restricted to those proposed by those who don't understand this fact, which seems to include you.)
(Yours in particular is just a simple Martingale variant - it's old as the hills, and infamous for just this reason.)
Quote: chillin221
The numbers seem to be pretty consistent every time I run the thing.
The system you describe is actually called a Martingale:
Martingale Betting System
The program written in java looks reasonably intelligible to me. However, the results don't make sense: the 430,248 wins means that only 37,199 wins were required to offset the 569,752 losses. Seems highly improbable.
Quote: DJTeddyBearP.S. Systems are not recommended for a simple reason: They don't work.
Not true. They all work, some for quite awhile. They
just all lose eventually, thats the rub.
Quote: DJTeddyBearOn a side note, your "easy to read" program looks like Greek to me. And I have over 35 years of programming experience!
Some indenting would help, but other than that it looks readable to me. If you want to make fun of him for believing in systems that's hard to argue with, but why be harsh about his program? Or maybe you don't work in languages descended from C?
...
Than a lot of GENIUS, sayng that the best card counting was HI-LO, for result/easy to use... Than borned KO, reko,OPP....
= a lot of genius.....still some new is discovered.
Quote: zeus71Someone can reproduce the simulation, and THAN , maybe, speak ?
...
Unnecessary, this is essentially a Martingale system, which with no limits and an infinite bankroll will always work. Unfortunately, you won't find a no limit game and all bankrolls are finite. The bottom line is there are no known betting systems that are proven to always work. If you can come up with one (and this one certainly isn't new) then you can make a lot of money, but so far no one has been able to, or if they have, they aren't sharing it.
In blackjack, it's not true that the expected value at every decision point is negative, so there are systems by which you can beat it. But those aren't usually considered "betting systems."
Especially with your 43% of winning, is an extremely high House edge of 7%. I was testing it on 2.7% of a roulette.
If you need the simulation let me know.
my guess is you will have a lot of winning sessions of like $300-$600 depending on how many hands you play, and you will have a few losing sessions where you lose $20,000+ because of the chance you lose x amount in a row.
im sure you could find $100-$50,000 limits as well. :)
Quote: chillin221I love all of the info on this site, but I don't know why betting systems aren't recommended here.
I may have misunderstood some of the information I've read on here, but I can't seem to figure out why betting systems are a bad idea.
I know you can get house odds down to .28% without counting cards if you're on the right table, but lets just say that you only win 43 percent of the time.
I created a quick computer program to simulate a betting system that follows these rules:
-You win 43% of the time
-initial bet starts at table minimum
-if you lose you double your bet
-if your doubled bet is over the table max, you set the bet at table max.
-once you win, you reset the bet to table min (even if it has been at the table max for the last 5 hands).
-I initial set the program up with a bankroll of 50000 on a $1 min and $500 dollar max
- games is the number of hands played.
Every time I run it, i never get in the red. Obviously starting with 50,000 with an initial bet of 1 dollar, it may take awhile.
Every where I've read in the blackjack section says that progressive betting doesn't really matter except for making things fun and more volatile. But check the stats:
When only placing a 5 dollar bet and never changing that amount on 1,000,000 hands:
Losses: 569878 Wins: 430122
loss ratio: 0.569878
minBank: -648780
maxBank: 50060
streak: 16
ending balance: -648780
Now, with doubling (as mentioned above):
Losses: 569752 Wins: 430248
loss ratio: 0.569752
minBank: 17927
maxBank: 443052
streak: 15
ending balance: 443049
The numbers seem to be pretty consistent every time I run the thing.
If you want to check out the code (its pretty easy to read even if you're not a programmer) here it is:
import java.util.Random;
public class Test {
//the setup variables:
static int tablemin = 1;
static int tablemax = 500;
static int bankroll = 50000;
static int games = 1000000;
static double winPercentage = 43;
static int wins = 0;
static int losses = 0;
static int bet = tablemin;
static int maxBank = 0;
static int minBank = bankroll;
// this just starts the program
public static void main(String[] args) {
startGame();
}
private static void startGame() {
int streak = 0;
int maxStreak = 0;
for (int i = 0; i < games; i++) {
Random r = new Random();
// result is a random number 0-99 add 1 makes it a random
// number 1-100
double result = ((double) r.nextInt(100) + 1);
if (result <= winPercentage) {
wins++;
bankroll += bet;
bet = tablemin;
streak = 0;
} else {
losses++;
bankroll -= bet;
bet *= 2;
streak++;
if (streak > maxStreak)
maxStreak = streak;
if (bet > tablemax)
bet = tablemax;
}
if (bankroll > maxBank)
maxBank = bankroll;
if (bankroll < minBank)
minBank = bankroll;
}
double f = (double) ((double) losses / (double) games);
System.out.print(" Losses: " + losses + " Wins: " + wins + "\n");
System.out.print(" loss ratio: " + f + "\n");
System.out.print(" minBank: " + minBank + "\n");
System.out.print(" maxBank: " + maxBank + "\n");
System.out.print(" streak: " + maxStreak + "\n");
System.out.print(" ending balance: " + bankroll);
}
}
Am I completely missing something, or what?
Quote: chillin221Am I completely missing something, or what?
Nope, just finding out how deep the rabbit hole goes.
Can anyone say Betting System Challenge? Pay the man, MichaelBlueJay!
Quote: chillin221Am I completely missing something, or what?
If you are wanting to know why it's winning, it's because of the double downs and Blackjacks. That's where you make your profit with the system, you get to bet higher for free, so your blackjacks and double down come at 30 and 60 dollars etc. If you play with a normal 50/50 game I'm sure you'll find out the system won't work without the double downs and blackjacks.
I don't know java programming, but have you found anything wrong with the program you wrote? If not, then there should be no debate.
Quote:Am I completely missing something, or what?
You are creating a new "Random" object each time through the loop. You only need one object. I am not sure how the seeding works for Random, but you may be reseeding and getting repeats of the same number as a result. This is a common mistake that beginners make.
Here is the new code:
private static void startGame() {
int streak = 0;
int maxStreak = 0;
Random r = new Random();
for (int i = 0; i < games; i++) {
..... and so on ....
Here is what I get when I run it:
$ java Test
Losses: 570497 Wins: 429503
loss ratio: 0.570497
minBank: -1383019
maxBank: 50666
streak: 22
ending balance: -1382345
teliot@JGLLC-PC ~/Temp
$ java Test
Losses: 570659 Wins: 429341
loss ratio: 0.570659
minBank: -1396162
maxBank: 50552
streak: 23
ending balance: -1395560
teliot@JGLLC-PC ~/Temp
$ java Test
Losses: 569530 Wins: 430470
loss ratio: 0.56953
minBank: -1297266
maxBank: 50748
streak: 24
ending balance: -1296610
teliot@JGLLC-PC ~/Temp
$ java Test
Losses: 569335 Wins: 430665
loss ratio: 0.569335
minBank: -1420921
maxBank: 50401
streak: 23
ending balance: -1420239
teliot@JGLLC-PC ~/Temp
$ java Test
Losses: 570055 Wins: 429945
loss ratio: 0.570055
minBank: -1401535
maxBank: 50674
streak: 23
ending balance: -1400652
teliot@JGLLC-PC ~/Temp
$