Live bot · BTC-EUR · Bitvavo
How the bot works, in plain words
A bitcoin bot that trades BTC-EUR on Bitvavo with real money. First the idea in five steps, then what the bot saw a day ago, why it is bitcoin, what it earns, and why every rule exists.
01 The idea
How the bot works, in 30 seconds
Buy in small steps as the price falls, sell each step separately a few percent higher. That's all.
The ladder waits
Buy orders sit below the price at fixed distances: a fine and a coarse ladder.
A dip fills a rung
When the price falls, an order fills. It becomes a position with its own buy price.
Each position, its own sale
Straight after, a sell order waits a few percent above that buy price.
Only sold at a profit
A position is never sold below its buy price. What is down, waits.
The weekly figure
Only what is sold counts in the weekly result, after fees on both sides.
02 Dashboard
What the bot saw, at least 24 hours ago
Everything in percentages and BTC prices. Deliberately a day old, so it is never a signal to trade on.
Snapshot: · at least 24 hours old, never live
- In bitcoin
- 85.0%
- BTC price at T
- €69,706
- Open positions
- −4.06%
- Sales since 30 Aug
- 489
of the capital was in BTC
moment T: 4 Nov 2026, 10:29 UTC
unsold positions vs. what was paid, as % of the account. They wait; nothing is sold at a loss.
each sold at a profit; median +1.80% per sale, before fees
How to read the chart
- The line: the BTC price up to moment T.
- Blue dots: buys that filled.
- Green dots: sales at a profit.
- Right: the orders waiting at T.
- Buy filled
- Sale
- Ladder rung (limit buy)
- Open sell order
Ladder and sell orders at T (8)
| Side | BTC price | Distance from price |
|---|---|---|
| Sell order | €71,434 | +2.48% |
| Sell order | €71,162 | +2.09% |
| Sell order | €71,008 | +1.87% |
| Sell order | €70,753 | +1.50% |
| Sell order | €70,653 | +1.36% |
| Sell order | €70,327 | +0.89% |
| Sell order | €70,118 | +0.59% |
| Sell order | €69,930 | +0.32% |
Every sale in the decision log
Latest 100 sales
| Date | Strategy | Gain, buy to sell |
|---|---|---|
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| coarse | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| coarse | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| coarse | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| coarse | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| coarse | +2.50% | |
| fine | +2.50% | |
| meanrev | +2.30% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| coarse | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| coarse | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| meanrev | +2.13% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| coarse | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| coarse | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| meanrev | +2.17% | |
| fine | +2.50% | |
| coarse | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| fine | +2.50% | |
| coarse | +2.50% |
03 Underlying
Why bitcoin
A ladder bot only earns when the price moves. Bitcoin moves a lot, every day, weekends included.
43%
realized volatility, annualised, 364 daily returns up to 5 Nov 2026
1.2% is how far bitcoin moves on an ordinary day (median in that window)
Method: daily BTC-EUR candles from Bitvavo's public API, standard deviation of the daily log returns of the close, times √365 (bitcoin trades every day). Recomputed every time this page is built.
04 Result
What it earns, week by week
Realized profit per week as % of the capital in play, after fees, one week delayed. Green reached the 0.5% goal, blue did not. The full logbook
05 Design
Every rule has a reason
The main design decisions, with their date and what was measured. One sentence to your AI changes each of them.
From the logbook
A 0.5% weekly goal, not 2%
The name promised 2% a week. Measured honestly, week after week, 0.5% turned out to be the realistic goal. The chart on the logbook draws both lines.
Tell your AI “Report every week against a goal of 0.3%.”
Measured 5 Aug 2026
Book the real fee on every fill
Fees took roughly a fifth of gross profit between late April and early August. The bot now books the actual fee per fill, and since 10 Oct 2026 it also fills in fees the exchange settles later.
Tell your AI “Use my own fee tier when you calculate sell targets.”
Measured 5 Aug 2026
Switch off time-decay
A rule lowered the sell target as a position aged. In 78% of the 152 sales it touched, the original target was reached again within 24 hours (median: 3 hours later). It gave up about 0.33% per trade, so it was switched off.
Tell your AI “Lower the sell target by 0.1% for each day a position stays open.”
Aug 2026; off for the ladder since 2 Oct 2026
An RSI brake: first a taper, then off
Blocking all buys above RSI 70 also froze the ladder, so a later shallow dip caught nothing. In August it became a taper: smaller orders between RSI 70 and 80, a hard block only above 80. On 2 Oct 2026 the brake was switched off for the ladder entirely; the separate RSI dip-buy strategy is unaffected. The dashboard shows the brake's state at snapshot time.
Tell your AI “Pause the ladder completely whenever RSI is above 75.”
20 Aug 2026; stop-loss and timers removed 26–29 Sep 2026
Never sell at a loss
A position is only sold above its buy price; stop-losses and position timers are gone. The price of that choice: losses don't disappear, they wait in open positions. In a deep drop the open number grows before anything shows up in the weekly figure.
Tell your AI “Add a stop-loss at −15% for the fine ladder only.”
2 Sep 2026
Real limit orders on the exchange
Sell targets became real limit orders at the exchange instead of prices the bot watched. The buy ladder also places real limit orders: up to 20 fine and 10 coarse rungs below the price. A resting order is filled at its own price.
Tell your AI “Use 10 fine rungs and keep them 0.2% apart.”
2 Oct 2026
A depth budget for buying
How much of the capital the bot may have in bitcoin depends on how deep the price is below the highest open purchase: 50% at that top, rising in a straight line to 100% at 25% below it. Capital is kept back for deeper dips.
Tell your AI “Never put more than 60% of my capital in, at any price.”
September 2026
Fewer moving parts
Several layers were removed: a machine-learning predictor, an anomaly detector, a strategy tournament and more. Most of them turned out not to change the orders the bot placed. Simpler code is easier to check, for you and for your AI.
Tell your AI “Explain every rule in the code to me in one sentence each.”
Build your own version
The build kit is the step-by-step plan your AI follows to build this bot, with all these decisions in it and every rule yours to change.
Past weeks say nothing about future weeks. No leverage, so never more than you put in, but bitcoin can fall far: you can lose a large part of it.