saltbot-org / saltbot

automated virtual betting bot
GNU General Public License v2.0
54 stars 45 forks source link

Bot in tourney mod appears to want to upset bet. #133

Closed ACIIL closed 7 years ago

ACIIL commented 7 years ago

Strategy wise, gunning for the top prize of earning more, which doubles(?) the winning would be worth more yea?

I cannot help but reason the bot is upset betting when near bailout. By induction: upset betting tends to fail, you loss everything, so the bot will most likely end acting in bailout mode the entire tourney. It would help to always go for a safer bet that can win.

Of course this may fall flat if you don't have gold account and cannot have that higher starting bailout which means higher total money if you bet correctly the entire game.

I like to know how to make the bot bet in tourneys without attempting upsets. If the method does not exist, How would i go about this in the code?

calexil commented 7 years ago

I can confirm this behavior, Had to disable all in because it kept fucking up and losing me everything, even when the winner was obvious

calexil commented 7 years ago

I think upset betting can remain, but it needs to be toned down to something 1/4 upsets instead of every single one

ACIIL commented 7 years ago

Further inspection is giving me hints of the problem, scientist mode goes threw: ConfidenceScore.prototype.execute = function (info)

Which i been managing for chromosome improvements.
Soon i will see if its prediction is used by comparing its decision printouts in a tourney. IF its choice is always used, it means the behavior is from chromosome training that decides on highest gains. IF true, a chromosome will need to be trained for highest accuracy to make safe bets.

Cowboy mode would be closer to safe betting in tourney, but then it loses the fine prediction details only scientist mode can do for confidence betting.

Now to talk about how much is bet in tourneys, its likely here: Strategy.prototype.getBetAmount = function (balance, tournament, debug)

Here it has special conditions for when to all-in.

I'll think of something, likely just remove all-in conditions. This cannot affect the character predicted however.

calexil commented 7 years ago

sounds good, like I said somewhere else im using the cleaned data, and your generated chromo all night and tomorrow evening I will have a better idea what is going on

calexil commented 7 years ago

back to a stable chromo

reconman commented 7 years ago

There is some built in upset logic hidden somewhere which is to used in normal mode when near bailout. I have to investigate if it affects tournament mode too.

Other than that there is no built in logic for betting upset.

ACIIL commented 7 years ago

Tourney has started, watching printout....

I tinkered in: Strategy.prototype.getBetAmount = function (balance, tournament, debug), so this line is now: var allIn = ctrl.settings.allInTourney;/* || balance <= 2 * bailout || this.confidence > 0.9 || (1 - this.confidence) * balance <= bailout;*/

Effectively its now betting amounts as a proper scientist mode. Let it all-in when when the user wants it. Let the short bets happen when it must. (although cannot bet below bailout atm).

ACIIL commented 7 years ago

So the system appears to be betting the characters honestly.

I am now leaning that upset bets are an artifact of chromosomes trained for looking for highest gains. It it unfortunate this now means working with small bet pools has problems; as the system just cannot handle limited tourney rounds with small pools and bailout restrictions when attempting high gains.

Recommend breeding and using chromosomes trained for +65% accuracy, doing so involves editing internal values. And Also allow bets below bailout such that it can conserve on low confidence.

ACIIL commented 7 years ago

edit: its <= .

recheck, change line with something like this.

        if (balance <= bailout) {
            bailoutMessage = amountToBet;
            amountToBet = bailout;
        }