← Trading lab

Strategy
BollingerBidir

Bets that price always returns to its meanThe idea that a price that drifts far from its average tends to come back to it.. It buys into panic, sells shortBetting that the price will fall: you win if it drops and lose if it rises. into euphoria and trades on its own, 24/7, on the 15-minute timeframe.

Timeframe
15 Minutes
Stack
Freqtrade · Docker
Mode
Dry-run
Verdict
Not profitable

Dry-runSimulated trades, no real money. Results come from simulation and backtesting.

In the lab

It passed the backtestA simulation of the strategy on past prices: what it would have won or lost had it traded back then., failed on unseen dataPrices the strategy never saw while it was being designed. If it wins here, it has not just memorised the past. and stays in dry-runThe strategy trades live on real prices, but with play money. Nothing is actually bought. only as a reference.

BollingerBidir

Binance futures · 7 · 15m

Not profitable

Optimised backtestA backtest on the same data used to tune the strategy. It almost always looks good, so it proves nothing.
+20.6 %
Jan 2024 – Mar 2026 · 206 trades
Unseen dataPrices the strategy never saw while it was being designed. If it wins here, it has not just memorised the past.
-7.7 %
Mar 2026 – Oct 2026 · 66 trades
Live dry-runThe strategy trades live on real prices, but with play money. Nothing is actually bought.
…
loading…

Bets that price returns to its meanThe idea that a price that drifts far from its average tends to come back to it.: it buys when it falls too far and shortsBetting that the price will fall: you win if it drops and lose if it rises. when it rises too far. Uses Bollinger BandsTwo lines above and below the average price. When the price leaves them, it is at an unusual extreme., RSIRSI: Relative Strength Index. An indicator from 0 to 100 that shows whether the price has moved up or down too fast. Very low means panic; very high, euphoria. and ADXADX: Average Directional Index. It measures how strong a trend is, not its direction. A low value means the market is moving sideways. on the 15-minute timeframe.

  1. Backtest

  2. Unseen data

  3. Dry-run

    BollingerBidirNot profitable
  4. Real money

In a sideways marketA market with no trend: the price goes up and down within a range, going nowhere., price goes back and forth around its average. When it strays too far, in a moment of panic or euphoria, it usually comes back. The strategy waits for that moment and bets on the return.

How it trades

Every condition has to be met at once before it opens a trade.

Buys
When the price drops below the Bollinger BandTwo lines above and below the average price. When the price leaves them, it is at an unusual extreme. and the RSIRSI: Relative Strength Index. An indicator from 0 to 100 that shows whether the price has moved up or down too fast. Very low means panic; very high, euphoria. falls under 25: a moment of panic.
Sells shortBetting that the price will fall: you win if it drops and lose if it rises.
The other way round: the price climbs above the band and the RSIRSI: Relative Strength Index. An indicator from 0 to 100 that shows whether the price has moved up or down too fast. Very low means panic; very high, euphoria. goes over 75. Euphoria.
Only without a trend
If the ADXADX: Average Directional Index. It measures how strong a trend is, not its direction. A low value means the market is moving sideways. is above 25 there is a trend and it stays out: then the price has no reason to come back.
With volume
The move has to come with high volume. Without volume, the panic or euphoria is not real.
One entry only
It enters the first time the price leaves the band, not while it stays outside. That way it does not pile up worse and worse entries.
How it exits
The longer a trade stays open, the less profit it asks for to close it. From +13.4% a trailing stopA stop that follows the price up while the trade is winning, so the gains are not given back. protects the gains.
−30% stopA price at which a trade closes on its own, so the loss stops growing.
Very far away, on purpose, so a meaningless move does not knock it out. It is its weak spot: when the price does not come back, it loses a lot at once.

Before this one

BollingerBidir was the first strategy to trade on its own, 24/7. Before it, several ideas fell by the wayside.

A home-made simulator
First, a backtestA simulation of the strategy on past prices: what it would have won or lost had it traded back then. engine written from scratch in Python, with crypto and stocks like Apple or Nvidia.
Discarded ideas
One based on price gaps (FVGFVG: Fair Value Gap. A sharp price jump that leaves a stretch with no trading; the idea is that the price comes back to fill it.) lost money: 41 trades and a 34% win rate. Another, based on structure changes (CHoCHCHoCH: Change of Character. The moment the price breaks the pattern of highs or lows it was following, a sign that the trend may turn.), did better: 99 trades and a 52% win rate.
The move to Freqtrade
Instead of reinventing the wheel, FreqtradeOpen-source software that runs automated trading strategies. It is what runs the bots on the server.: it runs the backtestA simulation of the strategy on past prices: what it would have won or lost had it traded back then., the live simulation and the exchange connection.
More experiments
Breakouts, trend following, trading the New York open… until this one.

Live Telemetry

What the bot is doing right now. These are simulated trades, with no real money.

Connecting...

System Status

--

Closed Profit

--

All Trades Profit

--

Open Trades

Live Open Trades

PairDirectionOpen DateProfit (Position)Status
Loading trades...

Recent Realized Trades

PairDirectionOpen DateClose DateProfit (Position)Reason
Loading trades...

What it promised

206 trades from January 2024 to March 2026, fees included. Careful: the strategy was tuned on this same data, so this optimised backtestA backtest on the same data used to tune the strategy. It almost always looks good, so it proves nothing. proves nothing.

+20.62%

Net profit

206

Trades

-1.07%

DrawdownThe biggest drop in the balance from its highest point. Here it only counts trades already closed. (closed only)

-28.5%

Worst open lossThe worst a trade got before it closed. It is the risk the drawdown cannot see.

Backtest History

1 / 1
PairDirectionOpen DateClose DateProfit (Position)Reason
Loading backtest trades...

What it really did

On unseen dataPrices the strategy never saw while it was being designed. If it wins here, it has not just memorised the past., from 29 March to 1 October 2026, it loses 7.7%. The bot in dry-runThe strategy trades live on real prices, but with play money. Nothing is actually bought. made the same trades as the backtestA simulation of the strategy on past prices: what it would have won or lost had it traded back then. for that period: the bot works fine, it is the strategy that fails.

Two −30% stopsA price at which a trade closes on its own, so the loss stops growing. on shortsBetting that the price will fall: you win if it drops and lose if it rises., ADA in July and XRP in August, wiped out the gains of the other 61 trades.

The backtestA simulation of the strategy on past prices: what it would have won or lost had it traded back then. hid it. Since it never closes trades that go against it, almost none ended in a loss and the drawdownThe biggest drop in the balance from its highest point. Here it only counts trades already closed. came out at 1%. Meanwhile, one of them was down 28.5%.

A good backtest is not a profitable strategy. It is just an idea that still has to be tested.

Loading the curve…

Profit on unseen dataPrices the strategy never saw while it was being designed. If it wins here, it has not just memorised the past., in % of the starting balance. The two marked drops are the −30% stopsA price at which a trade closes on its own, so the loss stops growing..

Conclusions

It is not profitable
It loses on unseen dataPrices the strategy never saw while it was being designed. If it wins here, it has not just memorised the past.. It stays in dry-runThe strategy trades live on real prices, but with play money. Nothing is actually bought. only as a reference and will not move to real money.
Tuning is not validating
Choosing the parameters and judging them on the same data always looks good. It has to be tested on data the strategy has not seen.
Markets change
During the dry-runThe strategy trades live on real prices, but with play money. Nothing is actually bought. the market rose strongly, and a strategy that sells euphoria ended up selling a trend.
For the next one
A holdoutThe last months of data, kept unseen until the very end. Used only once, as a final exam. left untouched until the end, walk-forwardTuning the strategy on one stretch of data and testing it on the next, again and again, as would happen in real life., Monte CarloShuffling the order of the trades thousands of times to see how badly it could go with a bit of bad luck. and months of dry-runThe strategy trades live on real prices, but with play money. Nothing is actually bought. before anything else.

Open source

The code is on GitHub, ready to set up with an AI agent like Claude Code: it guides you step by step until the bot is running in dry-runThe strategy trades live on real prices, but with play money. Nothing is actually bought.. It never moves to real money unless you decide to, and it never asks for keys.

View the strategy on GitHub

This is a personal experiment and educational material, not financial advice or an investment recommendation. The figures come from backtests and dry-run bots trading simulated money, and past performance does not guarantee future results. Trading cryptocurrencies can lose you everything you put in.