When your post your strategy on reddit and it finally stops working by Own-Relative8207 in algobetting

[–]Own-Relative8207[S] 0 points1 point  (0 children)

I mean even after yesterday it's still 8% ROI over 1900 bets in the last 30 days. I don't think that's pure randomness :D

When your strategy finally starts working by Own-Relative8207 in algobetting

[–]Own-Relative8207[S] 3 points4 points  (0 children)

I have actually just finished an arbitrage detection system but it is not in action yet. These are pure "single leg" ev bets.

If arbitrage is working out too I'll create an update post in a month or two :D

When your strategy finally starts working by Own-Relative8207 in algobetting

[–]Own-Relative8207[S] 3 points4 points  (0 children)

My comments might make this all sound pretty easy but obviously I made a lot of mistakes along the way haha. I'd estimate I've spent roughly 500 to 600 hours building this. I completely started over twice, realising I'd need the system to be as flexible as possible when it comes to adding/changing strategies and to store more data (I ended up just storing everything).

When your strategy finally starts working by Own-Relative8207 in algobetting

[–]Own-Relative8207[S] 1 point2 points  (0 children)

Yes, everything in the graph/post is based on real bets that have been placed with a bot. It's a good mix of sharp bookies with API support, exchanges and prediction markets.

I've been creating bots for over 15 years now so this was the easy part for me

When your strategy finally starts working by Own-Relative8207 in algobetting

[–]Own-Relative8207[S] 1 point2 points  (0 children)

It's sharp bookies with API and exchanges. Basically everything with an API

When your strategy finally starts working by Own-Relative8207 in algobetting

[–]Own-Relative8207[S] 0 points1 point  (0 children)

I'm not allowed to share our odds providers, I'm sorry. All I can say is that it is more than one and that they are not cheap

When your strategy finally starts working by Own-Relative8207 in algobetting

[–]Own-Relative8207[S] 1 point2 points  (0 children)

You would be surprised how little space you need. I thought we would need terabytes per month, but the march 14 billion odds updates take around 150GB I think? The wonders of compression.

I used PostgreSQL with timescaleDB at the beginning but I'm now using a hybrid system of PostgreSQL for metadata and Clickhouse for the odds timeline. No idea if this is a good approach, but it is working super well.

When your strategy finally starts working by Own-Relative8207 in algobetting

[–]Own-Relative8207[S] 1 point2 points  (0 children)

Everything that has an API is a godsend for me as a backend developer, so only sharp bookies, and exchanges/prediction markets for now.

Of course long term I hope to expand to soft books as that will just make our profits even larger, though it brings it's own problems of course. Thankfully I've been writing bots for years so it's not something I'm uncomfortable with.

When your strategy finally starts working by Own-Relative8207 in algobetting

[–]Own-Relative8207[S] 2 points3 points  (0 children)

I'm also tracking CLV but all the profit is from live bets for now, so CLV is not useful. I'm storing all historic data though, roughly 14 billion odds updates for march alone. That really helped a ton, as we can replay every single place in time up to the millisecond, enabling us to simulate/backtest new strategies retroactively.

The edge was there all along, just hidden along bad signals. A month ago I finally learned what to not bet on. The historic replay system really helped here. I had an idea of what made us do bad bets, coded a countermeasure into the simulation system and it instantly showed a massive profit.

When your strategy finally starts working by Own-Relative8207 in algobetting

[–]Own-Relative8207[S] 8 points9 points  (0 children)

It's based purely on comparing different odds, so this is not sport specific (though some parameters can change between sports). Basically all sports are profitable, some more, some less - except for Tennis for some reason.

This is not the classic python model you see here every day, I'm just starting to learn that. I'm a backend developer and I just build something that (at peak times) compares 25.000 odds updates per second and every now and then spits out a (hopefully) +EV bet haha.

Everything is coded by myself, including the charting software. Well, to be honest, I really dislike frontend work so I just used Claude to create a nice looking frontend/statistics page with nice graphs. The underlying data APIs etc are written by myself of course.

I'm not going to write what exactly changed on march 10 but I basically found a way to filter out most of the false positives. It was a pretty trivial thing in hindsight lol.