Does betting on hot numbers work?
No. On 20,000 seeded European-wheel sessions, Hot number (Andrucci-style) walked away $200 up 66.2% of the time and still lost $30.30 per session on average: −$2.73 for every $100 wagered, the house edge within sampling noise.
How Hot number (Andrucci-style) is played
- Sit out the first 37 spins and count every result.
- From then on, bet one unit straight-up on the number with the most hits so far (ties go to the lowest number).
- Keep counting; the pick changes when another number pulls ahead.
What 20,000 sessions show
Sessions that finished ahead were up $252.55 on average; sessions that finished behind were down $638.61. 9.6% of sessions ended because the next stake no longer fit the bankroll or the table limit. 24.2% reached the 500-spin cap without hitting the target or busting.
On a physically biased wheel, tracking frequency is how advantage players found an edge, but it takes thousands of spins to tell bias from noise. Over a few dozen spins the hottest number is just the luckiest one, and on an unbiased RNG every number still hits 1 time in 37.
The median session lasted 208 spins. The median longest losing run was 64 spins in a row (the worst of 20,000 was 239), and one session in ten put at least $5 on the table in a single spin.
European versus American wheel
The same 20,000 seeds, replayed on a double-zero wheel. The second zero roughly doubles the edge to $5.26 per $100 wagered. Measured return goes from −$2.73 to −$5.55 per $100, and the mean session from −$30 to −$64.
| Metric | European (one zero) | American (two zeros) |
|---|---|---|
| Walked away +$200 | 66.2% | 63.2% |
| Busted (stake no longer fit) | 9.6% | 11.4% |
| Hit the 500-spin cap | 24.2% | 25.3% |
| Finished in profit | 68.3% | 65.4% |
| Mean result per session | −$30 | −$64 |
| Median final bankroll | $1,225 | $1,220 |
| 10th / 90th percentile | $125 / $1,310 | $0 / $1,305 |
| Mean amount wagered | $1,108 | $1,147 |
| Return per $100 wagered | −$2.73 | −$5.55 |
The code that produced these numbers
This Lua is the strategy as Engineer mode runs it, inside the same sandbox and kernel. A test in the repository replays it against the bulk generator on fixed seeds and fails the build if the two ever disagree by a single dollar.
-- Hot number (Andrucci-style): watch 37 spins, then bet straight-up on whichever number has hit most.
-- Session rules shared by every 0xroulette.com/systems page:
-- $5 unit, $500 table max, walk away at +$200, and stop the moment
-- the next stake can't be covered by the bankroll or the table limit.
local UNIT, TABLE_MAX, TARGET = 5, 500, 200
local seen, hits
local function reset() seen, hits = 0, {} end
local function place(ctx)
if seen < 37 then return {} end
local keys = { "0" }
if ctx.variant == "american" then keys[2] = "00" end
for n = 1, 36 do keys[#keys + 1] = tostring(n) end
local best, most = nil, 0
for _, k in ipairs(keys) do
local count = hits[k] or 0
if count > most then best, most = k, count end
end
local pocket = best == "00" and "00" or tonumber(best)
return { { type = "straight", pockets = { pocket }, amount = UNIT } }
end
local function settle(result)
seen = seen + 1
hits[result.pocket] = (hits[result.pocket] or 0) + 1
end
-- Shared wrapper: enforces the session rules around place/settle.
strategy = {}
local start, stopped
function strategy.setup(ctx)
start, stopped = ctx.bankroll, false
reset()
end
function strategy.bet(ctx)
if stopped or ctx.bankroll >= start + TARGET then
stopped = true
return {}
end
local bets, stake = place(ctx), 0
for _, b in ipairs(bets) do
if b.amount > TABLE_MAX then stopped = true end
stake = stake + b.amount
end
if stake > ctx.bankroll then stopped = true end
if stopped then return {} end
return bets
end
function strategy.on_spin(ctx, result)
if not stopped then settle(result) end
end
Session rules
- Bankroll / unit
- $1,000 / $5
- Exit rules
- walk away at +$200 ($1,200); 500 spins; stop when the next stake exceeds the bankroll or the table maximum
- Table maximum
- $500 per bet
- Seeds
- 20,000 per wheel from master seed
0x6d2e6c8b, identical for every system
Limitations
One bankroll, one unit size, one table limit, and one walk-away target. A bigger bankroll or a higher limit moves where a progression breaks; it does not change the return per dollar wagered. Spins are fair and independent, as on a correctly functioning wheel or a certified RNG. Physical wheel bias is a separate question, covered on Physics.