Closed Leurus closed 5 years ago
It generally performs a lot better (the algorithm it uses is far superior), but on the other hand it's missing a lot of data, so it's not really ready for public use yet. Maybe in a few months it'll be ready.
If you need help with data, I have pretty much every match recorded going back 3-4 years. Can your bot read records from SaltBot?
Unfortunately, it can't, because SaltBot is missing important information, the way it collects data is wrong.
I've fixed up enough stuff that it's now ready for public use (plus it has a lot more data now).
You can follow the directions on the README to install it and set it up.
Let me know how well it works for you (I accept no responsibility if it causes you to lose salt).
By the way, to answer your question directly: according to my simulations, with a starting amount of $10,000,000
, it gained $8,975,316
profit over the past 21 days. That's an average gain of $427,396
per day.
But of course that varies a lot: I've noticed that there are periods of 1-2 weeks where it will gain a lot, and then periods of 1-2 weeks where it will lose a lot.
I've analyzed the bad weeks with a lot of different algorithms and parameters, and as far as I can tell all of the algorithms did poorly, so it's probably due to either bad luck or inadequate data, and not a flaw in the algorithms.
Of course I'll keep analyzing it and tweaking it to improve it as much as I can, but the current algorithms are already really solid, so it's hard to find things to improve.
It's great to hear that you're still working on this. I've also noticed good weeks and bad weeks with SaltBot regardless of whether I update the chromosomes or leave them the same, I'm curious if there's some setting behind the scenes that changes the outcome of matches, some unknown algorithm (or manual manipulation) of SaltyBet itself. What do you think?
I'm going to install your bot now and I'll report back once I've tested it. Thanks for updating this issue and the continued effort!
A few issues I've noticed right away:
I'll watch it over the next few weeks and see how it does with actually winning bets/generating salt and report back.
@Leurus Thanks for the feedback!
I'm curious if there's some setting behind the scenes that changes the outcome of matches, some unknown algorithm (or manual manipulation) of SaltyBet itself. What do you think?
I very highly doubt that. I think it's just because 1) the matches themself are very random, even with the exact same fighters 2) people's betting habits are also rather random.
It opens https://www.twitch.tv/embed/saltybet/chat?darkpopout which is just a blank page on my end, when it should open https://www.twitch.tv/popout/saltybet/chat?darkpopout
Yes, it intentionally hides the chat, so that way I don't get distracted by it.
But perhaps it is too confusing, so I can easily change it to keep the chat visible.
When importing records (I used Static>SaltyBet Records.json I get no confirmation that it successfully (or unsuccessfully) imported
I'll think about how to add in a confirmation.
Though with the recent version it's not needed to import anymore (it will automatically import the default match records).
when clicking the "open records page" button all I see is a blank tab, not sure why this is.
Yes, this is very annoying, but as far as I can tell it's a bug in Chrome, so there's not much I can do about it.
You just need to refresh the page and then it will show up.
No ability to search within records, this is a critical feature imo.
Oh, I hadn't thought of that, that's a good idea! I can add that in.
It disables the video by default with no way to re-enable it as far as I can tell. This is inconvenient if you want to watch the games while it's betting.
Yeah, I know SaltBot lets you toggle the video. It shouldn't be hard for me to add in that feature, I just never had a need for it (since I don't like getting distracted by the video).
I'll watch it over the next few weeks and see how it does with actually winning bets/generating salt and report back.
Thanks!
Keep in mind that I do update it regularly, and I often make changes/improvements to the betting algorithm, so you should follow the upgrade steps once in a while (e.g. once a week) to ensure that you are using the best possible algorithm.
@Leurus The latest version (which I pushed just now) has the following changes:
It now displays the Twitch Chat (rather than hiding it).
There is now an Eye icon in the lower-right corner to toggle the visibility of the video.
Nice one, you work really quickly! I'll update shortly. Overall I really like the bot so far. I can tell it's been coded extremely well simply because of how easy/convenient it was to install and looking at the update instructions it seems very convenient to update as well. Really impressive!
Update was flawless. I especially love the video toggle feature!
I have a few questions/comments at this point:
Have you considered adding some sort of learning (or chromosome) feature to the bot so that users can play around with the algorithm and test different strategies? This was one of my favorite things about SaltBot, and I know many other people feel the same way in regards to updating chromosomes and watching them evolve in the Chrome console being one of the most fun parts of SaltBot.
Actually, several months ago I went much further than that: I was creating entire algorithms and neural networks using genetic evolution. It was much much deeper than SaltBot.
One of the motivations I had for making SaltyBetBot in the first place was that I figured I could make a much better evolutionary algorithm than SaltBot.
I was right, my algorithms were much better, but unfortunately it turns out that genetic algorithms are actually inferior to carefully hand-crafted algorithms. So I scrapped that idea.
In the Charts page you can find the "Genetic" option, which uses the neural network. It doesn't do very well though (currently at $4,307,103
gain).
For comparison, the current hand-crafted algorithm gets $12,018,055
gain.
I feel like a betting multiplier is pretty critical. As it stands, your bot actually bets very well in regards to how it chooses the amount to bet, but to take advantage of win streaks and supplement losing streaks, I feel it's a good idea to have a betting multiplier you can turn up/down to take advantage of these winning/losing streaks that happen like you mentioned earlier
Could you explain more about how you want a betting multiplier to work?
If you mean that it should bet a percentage, I already tried that. In the Charts page you can select "Percentage" in the dropdown list, and it will simulate betting with percentages.
In general "Percentage" does really badly (often losing money), because yes it can make more on winning streaks, but it also loses more on losing streaks.
And the best betting algorithms have ~35% winrate (so they can take advantage of upsets), so betting a percentage causes you to lose more than you gain.
In the Charts page I've implemented 19 different betting algorithms, and 7 different money algorithms. I've used that page a lot to fine-tune the algorithms and test out new algorithms.
Chances are, if you have an idea, I've already implemented it. But of course I welcome any suggestions: I want it to be the best that it can be.
Do you need a graphic designer?
That's a very nice offer! I don't need any graphics for SaltyBetBot (unless you see something you think should be improved?), but I'm actually planning on making a game soon, if you want you can help out with that.
I was right, my algorithms were much better, but unfortunately it turns out that genetic algorithms are actually inferior to carefully hand-crafted algorithms. So I scrapped that idea.
Makes sense. Seems like you've already fully explored that idea.
Could you explain more about how you want a betting multiplier to work?
Sure, what I mean by this is an option that simply multiples the normal betting amount. So you could set the multiplier to a number between 0.0 to 10.0 (decimals are important for full control of betting amounts), so for example - let's say the user sets the multiplier to 2.5. This means if the bot would have bet 10k, it instead bets 25k.
In the Charts page I've implemented 19 different betting algorithms, and 7 different money algorithms. I've used that page a lot to fine-tune the algorithms and test out new algorithms.
I haven't taken a deep look at the "chart page" mostly because on the surface it was very confusing to understand, but I'll take a more indepth look at it later and report back.
That's a very nice offer! I don't need any graphics for SaltyBetBot (unless you see something you think should be improved?), but I'm actually planning on making a game soon, if you want you can help out with that.
Nothing critical, my only idea was that we could add some design elements to the interface (the box that appears when you click the square S icon), because it's a bit plain right now, but that's honestly not even that big of a deal, was just throwing the idea out there in case you had any design goals that you needed help with.
I may be able to help with art for a game, it really depends on how extensive a project it is, and if I can find an interest in it.
Sure, what I mean by this is an option that simply multiples the normal betting amount. So you could set the multiplier to a number between 0.0 to 10.0 (decimals are important for full control of betting amounts), so for example - let's say the user sets the multiplier to 2.5. This means if the bot would have bet 10k, it instead bets 25k.
Oh, I see, you mean something that the user can change on the fly.
I'm not sure how useful that would be (since I don't think it's easy to predict whether a win streak/loss streak will continue or not), but I'll think about adding in something like that.
I haven't taken a deep look at the "chart page" mostly because on the surface it was very confusing to understand, but I'll take a more indepth look at it later and report back.
It certainly has a lot going on!
The chart goes from left to right, with older data to the left and newer data to the right.
The white/blue lines are the amount of money that it has at that point in time (so having the white lines go up is good, having them go down is bad).
The pure white line is the exact amount of money it has at that point in time (so it's very jagged). The bluer lines are the same as the white line but averaged (so they are smoother). The bluer lines are generally a better indication of long-term performance.
The vertical black lines are the number of match data it has for the characters (it's the "Number of past matches (in general)" statistic).
The vertical green lines are how much money it gained on that particular match (bigger is better), and the red vertical lines are how much money it lost on that particular match (bigger is worse).
The red dots on top of the green lines are how much money it would have gained if the odds were exactly 1:1
. This lets you know whether the bet was an upset or not (if the green line is higher than the red dot, that means it was an upset, otherwise it was favored).
In general you only really need to care about the white/blue lines, since they indicate how much money it makes.
As for the controls:
The first dropdown box is the money algorithm, and the second dropdown box is the betting algorithm.
The algorithms have cryptic names, and some of them are difficult to explain. Maybe I'll write up an explanation at some point.
"Show only recent data" determines whether it shows the most recent 21 days (or whether it shows all the data).
"Use average for current money" causes it to average the current money. This option causes a lot of slowness, and it's pretty useless.
"Round to nearest magnitude" causes it to round the bet amount to the nearest magnitude. This is also pretty useless.
"Scale by match length" causes it to bet less money if it has less data, and more money if it has more data. I recommend leaving this on.
"Reset money at regular intervals" causes it to reset the money to $10,000,000
every 21 days. This is important because sometimes an algorithm can do well early on, and then snowball out of control and make a lot of money.
But just because it snowballed doesn't mean it's actually a good algorithm. So by resetting the money it gives me a better idea of which algorithms are actually better.
"Simulate extra data" causes it to pretend that it has all of the match data. This generally makes the betting a lot more precise (causing it to make a lot more money), but it is unrealistic.
Then after changing the settings, you click the "Run simulation" button, and it will show the results on the chart.
As for the text in the upper-left corner, they're all interesting (and pretty self-explanatory), but the most important one is "Total gains", since it tells you how much money it made over that time period (which defaults to 21 days).
Nothing critical, my only idea was that we could add some design elements to the interface (the box that appears when you click the square S icon), because it's a bit plain right now, but that's honestly not even that big of a deal, was just throwing the idea out there in case you had any design goals that you needed help with.
If you feel like creating a mockup, that would be great, but as you said it's not a big deal, so that's up to you.
I think the biggest thing is actually having a logo to replace the "S" square icon. Ideally in SVG, so it can scale.
I may be able to help with art for a game, it really depends on how extensive a project it is, and if I can find an interest in it.
Do you have some way that we can communicate? E-mail, Skype, Steam, etc.?
I'm not sure how useful that would be (since I don't think it's easy to predict whether a win streak/loss streak will continue or not), but I'll think about adding in something like that.
The way I see it, if it's making some money at 1.0, then it will make MORE money at 2.0. Definitely seems like an important feature to me if for nothing else but having some control over things since there's no chromosome feature. Otherwise it's just the bot doing everything with no interaction from the user, which isn't that interesting.
Thanks for the explanation for the chart page, that definitely helps a lot!
I think the biggest thing is actually having a logo to replace the "S" square icon. Ideally in SVG, so it can scale.
I'll keep this in mind. I may mess around with some logo ideas after I've tested the bot more.
Do you have some way that we can communicate? E-mail, Skype, Steam, etc.?
Do you have discord? If not, email works fine.
The way I see it, if it's making some money at 1.0, then it will make MORE money at 2.0.
Although that's a very intuitive way of thinking, it's not actually correct. In fact it's quite the opposite: betting less money causes it to make more profit.
The reason is because of the way that the odds work: the more that you bet on a character, the more favored that character is, which means you get a smaller percentage of profit.
Betting is very counter-intuitive, such as the fact that the best algorithms have only a ~35% winrate, and that they intentionally bet on bad characters (characters with low winrates, characters that nobody else is betting on, etc.)
Betting in the "obvious" way (betting on characters with high winrates) causes you to gain basically no money in the long run. So my bot doesn't do that.
If you want to see it for yourself, select "Wins" in the Charts page, that causes the simulation to bet on the character with the higher winrate. It achieves ~67% winrate, which is quite good (betting randomly gives a 50% winrate), but it loses money.
With "Simulate extra data" it achieves an even higher winrate of ~73%, and now it's actually making some money, but it's making far less money than some other algorithms (such as "ExpectedBet").
Otherwise it's just the bot doing everything with no interaction from the user, which isn't that interesting.
Well, yes, that's the idea behind an automated betting program.
Still, I understand some people will want more control (even if it's basically a placebo that doesn't make more money, and may actually lose money), so I'll think about it.
Do you have discord? If not, email works fine.
Yeah, it's Pauan#6666
The reason is because of the way that the odds work: the more that you bet on a character, the more favored that character is, which means you get a smaller percentage of profit.
I fully understand this and I agree with everything else you said besides this, because even changing a bet from 40k to 80k isn't going to affect the odds the way that you're talking about, I've noticed the effect that you're talking about after you start betting 150k or more per bet. Anything less doesn't affect the odds in a negative enough way for it to not be worth it if you're already making a profit.
I also understand the upset strategy that you're talking about, I always attempted to make SaltBot bet upset but it wasn't very good at it. Catching upsets is definitely the #1 way to make salt.
I'm adding you on Discord now. :)
Hi, I'm interested in trying your bot on my account which has 30mil salt. How does your bot perform? How much does it gain on average per day, etc.? Any data on this at all would be very appreciated! :)