Dealing with Randomness and Value Betting

A place to discuss anything.
Post Reply
P1wg
Posts: 6
Joined: Mon Dec 25, 2023 9:57 am

Hello everyone,

Something I was wondering about is when you have a pure value betting strategy, say with 1% - 2% edge over the book/exchange, how do you deal with randomness (apart from the obvious hedging)?

I ran multiple "simulations" of a strategy that has an edge over the price it bets on. I wanted to see what the results would be if such strategy placed, say, 1000 bets.
How many of the simulated runs would result in a positive PL?

Here is a simulation of 1000 bets:
1000_bets.png
After 1000 bets, ~74% of the simulated runs were in the profit at all. And ~63% achieved at least the expected yield of 1%.

However, let's say with the strategy I have, I'm only able to place 200 - 300 bets per month.

If I change the simulation to 200 bets to simulate a typical "month":
200_bets.png
The percentages look even more bleak, only ~64% of such simulated runs were in the profit.

How do you deal with this in your strategies? Is there anything other than just "hedging" your bets? Or do you just buckle in and wait out the randomness, possibly over the span of an entire year?

Wouldn't hedging also significantly bring down your yield? How do you determine when to hedge out a pure value betting strategy?

Any advise/thoughts appreciated!

P.S. Not sure if this has already been discussed before. If it was, I would highly appreciate a link to existing threads.
Thanks!
You do not have the required permissions to view the files attached to this post.
User avatar
jamesedwards
Posts: 2324
Joined: Wed Nov 21, 2018 6:16 pm

Great graphs!

A couple of ideas...
1) Compare achieved price vs Betfair SP. If you're consistently beating SP then you're probably on the right track.
2) Green up to lock in a profit or loss before the off. This will cost you a small amount of expected value but will stabilise your ROI while you establish profitability.
P1wg
Posts: 6
Joined: Mon Dec 25, 2023 9:57 am

jamesedwards wrote:
Sat Dec 30, 2023 12:28 pm
Great graphs!

A couple of ideas...
1) Compare achieved price vs Betfair SP. If you're consistently beating SP then you're probably on the right track.
2) Green up to lock in a profit or loss before the off. This will cost you a small amount of expected value but will stabilise your ROI while you establish profitability.
Thanks!

My strategy is consistently beating Betfair's SP on the same line but doesn't clear the market margin, so I can't "arb" it before KO to "guarantee" a profit...
I suppose I could try sacrificing some of the EV for a partial hedge, if I have confidence that my value bet has +EV? So long as the hedge -EV is less than the +EV of the value bet.
User avatar
Euler
Posts: 24816
Joined: Wed Nov 10, 2010 1:39 pm
Location: Bet Angel HQ

The bigger the edge the less of problem it becomes. So I'd say your edge is too small there.

Betfair SP isn't a real price. So be aware of that.
P1wg
Posts: 6
Joined: Mon Dec 25, 2023 9:57 am

Euler wrote:
Sat Dec 30, 2023 1:16 pm
The bigger the edge the less of problem it becomes. So I'd say your edge is too small there.

Betfair SP isn't a real price. So be aware of that.
Fair enough, thanks.
User avatar
Euler
Posts: 24816
Joined: Wed Nov 10, 2010 1:39 pm
Location: Bet Angel HQ

BSP is measure when Betfair suspened the market after the race has started. So any measure against that will be flawed.
User avatar
jamesedwards
Posts: 2324
Joined: Wed Nov 21, 2018 6:16 pm

Euler wrote:
Sat Dec 30, 2023 1:31 pm
BSP is measure when Betfair suspened the market after the race has started. So any measure against that will be flawed.
Yes, but if you can beat SP then you can lock in profit by hedging at SP. Therefore it's still a good profitability yardstick?
P1wg
Posts: 6
Joined: Mon Dec 25, 2023 9:57 am

jamesedwards wrote:
Sat Dec 30, 2023 1:55 pm
Euler wrote:
Sat Dec 30, 2023 1:31 pm
BSP is measure when Betfair suspened the market after the race has started. So any measure against that will be flawed.
Yes, but if you can beat SP then you can lock in profit by hedging at SP. Therefore it's still a good profitability yardstick?
When you say "beat SP", do you mean simply that the price that you took is better than SP's price on the same line or that the price you took would "arb" with SP's price on the opposite side of the market? From what you're saying, it seems to be the latter, but just wanted to confirm.
User avatar
jamesedwards
Posts: 2324
Joined: Wed Nov 21, 2018 6:16 pm

P1wg wrote:
Sat Dec 30, 2023 3:58 pm
jamesedwards wrote:
Sat Dec 30, 2023 1:55 pm
Euler wrote:
Sat Dec 30, 2023 1:31 pm
BSP is measure when Betfair suspened the market after the race has started. So any measure against that will be flawed.
Yes, but if you can beat SP then you can lock in profit by hedging at SP. Therefore it's still a good profitability yardstick?
When you say "beat SP", do you mean simply that the price that you took is better than SP's price on the same line or that the price you took would "arb" with SP's price on the opposite side of the market? From what you're saying, it seems to be the latter, but just wanted to confirm.
I mean back at higher than SP or lay at lower than SP for that selection.
P1wg
Posts: 6
Joined: Mon Dec 25, 2023 9:57 am

jamesedwards wrote:
Sat Dec 30, 2023 8:04 pm
P1wg wrote:
Sat Dec 30, 2023 3:58 pm
jamesedwards wrote:
Sat Dec 30, 2023 1:55 pm


Yes, but if you can beat SP then you can lock in profit by hedging at SP. Therefore it's still a good profitability yardstick?
When you say "beat SP", do you mean simply that the price that you took is better than SP's price on the same line or that the price you took would "arb" with SP's price on the opposite side of the market? From what you're saying, it seems to be the latter, but just wanted to confirm.
I mean back at higher than SP or lay at lower than SP for that selection.
Gotcha, thanks for clarifying!
Anbell
Posts: 2062
Joined: Fri Apr 05, 2019 2:31 am

P1wg wrote:
Sat Dec 30, 2023 9:53 am
Hello everyone,

Something I was wondering about is when you have a pure value betting strategy, say with 1% - 2% edge over the book/exchange, how do you deal with randomness (apart from the obvious hedging)?

I ran multiple "simulations" of a strategy that has an edge over the price it bets on. I wanted to see what the results would be if such strategy placed, say, 1000 bets.
How many of the simulated runs would result in a positive PL?

Here is a simulation of 1000 bets:

1000_bets.png

After 1000 bets, ~74% of the simulated runs were in the profit at all. And ~63% achieved at least the expected yield of 1%.

However, let's say with the strategy I have, I'm only able to place 200 - 300 bets per month.

If I change the simulation to 200 bets to simulate a typical "month":

200_bets.png

The percentages look even more bleak, only ~64% of such simulated runs were in the profit.

How do you deal with this in your strategies? Is there anything other than just "hedging" your bets? Or do you just buckle in and wait out the randomness, possibly over the span of an entire year?

Wouldn't hedging also significantly bring down your yield? How do you determine when to hedge out a pure value betting strategy?

Any advise/thoughts appreciated!

P.S. Not sure if this has already been discussed before. If it was, I would highly appreciate a link to existing threads.
Thanks!
Are you including commission?
P1wg
Posts: 6
Joined: Mon Dec 25, 2023 9:57 am

Anbell wrote:
Sun Dec 31, 2023 12:20 am
P1wg wrote:
Sat Dec 30, 2023 9:53 am
Hello everyone,

Something I was wondering about is when you have a pure value betting strategy, say with 1% - 2% edge over the book/exchange, how do you deal with randomness (apart from the obvious hedging)?

I ran multiple "simulations" of a strategy that has an edge over the price it bets on. I wanted to see what the results would be if such strategy placed, say, 1000 bets.
How many of the simulated runs would result in a positive PL?

Here is a simulation of 1000 bets:

1000_bets.png

After 1000 bets, ~74% of the simulated runs were in the profit at all. And ~63% achieved at least the expected yield of 1%.

However, let's say with the strategy I have, I'm only able to place 200 - 300 bets per month.

If I change the simulation to 200 bets to simulate a typical "month":

200_bets.png

The percentages look even more bleak, only ~64% of such simulated runs were in the profit.

How do you deal with this in your strategies? Is there anything other than just "hedging" your bets? Or do you just buckle in and wait out the randomness, possibly over the span of an entire year?

Wouldn't hedging also significantly bring down your yield? How do you determine when to hedge out a pure value betting strategy?

Any advise/thoughts appreciated!

P.S. Not sure if this has already been discussed before. If it was, I would highly appreciate a link to existing threads.
Thanks!
Are you including commission?
No, this also assumes 1 bet per match (otherwise, they would not be independent).

If you're interested, the code is really simple and you can adjust it for your use case:

Code: Select all

import random
import matplotlib.pyplot as plt


strategy_ev = 0.01
stake = 20
price = 2
prob = 1 / price
banks = []
num_runs = 10000
num_bets = 1000

for i in range(num_runs):
    random.seed(i * 10)
    bank = []
    # cumulative PL for this run
    pl = 0
    for j in range(num_bets):
        # Individual run
        if random.uniform(0, 1) < (prob + strategy_ev):
            pl += stake * (price - 1)
        else:
            pl -= stake
        bank.append(pl)
    banks.append(bank)
    
yield_to_check = 0.01
yield_target = (stake * num_bets) * yield_to_check
pos_banks = len([bank for bank in banks if bank[-1] >= 0])
pos_banks_with_target_yield = len([bank for bank in banks if bank[-1] >= yield_target])
neg_banks = len([bank for bank in banks if bank[-1] < 0])

print(f"{pos_banks} / {len(banks)} positive banks after {num_bets} bets ({round(pos_banks / len(banks) * 100, 2)}%)")
print(f"{neg_banks} / {len(banks)} negative banks after {num_bets} bets ({round(neg_banks / len(banks) * 100, 2)}%)")
print(f"{pos_banks_with_target_yield} / {len(banks)} positive banks with min yield {yield_target} after {num_bets} bets ({round(pos_banks_with_target_yield / len(banks) * 100, 2)}%)")

plt.axhline(y=0.5, xmin=0.0, xmax=1.0, color='r')
plt.axhline(y=yield_target, xmin=0.0, xmax=1.0, color='b', alpha=0.75)
plt.xlabel("Number of Bets")
plt.ylabel("PL (£)")
print(f"[{num_bets} bets per run; {num_runs} simulations] £{stake} stake per bet @ {price} avg price")
plt.title(f"Strategy simulation with {strategy_ev} edge")
for bank in banks:
    plt.plot(range(len(bank)), bank, alpha=0.2)
plt.show()
Post Reply

Return to “General discussion”