Bollinger Squeeze: mean reversion on EUR/USD
Methodology
- Signal: enter against a band touch (20, 2σ), exit when price returns to SMA(20).
- Engine run with costs on a calm sample.
- Data — daily EUR/USD bars (the stated BTC/USD pair is not represented by a separate history at the portal).
Results on real data
| Metric | Value |
|---|---|
| Instrument | EUR/USD |
| Period | 2025-06-16 — 2026-07-20 |
| Bars | 400 |
| CAGR | +8.1% |
| Drawdown | 2.8% |
| Sharpe | 1.74 |
| Winning trades | 88% |
| Trades | 16 |
| Time in market | 41% |
How much can you trust this result
A single return figure proves nothing — it is easy to curve-fit to history. Below are three robustness checks. We show them even when they go against the strategy.
The first 70% of the data is "training", the last 30% is a fair test on data the rules never saw. If the result is far worse on the test set, the strategy was fitted to the past.
| Metric | Train | Test (OOS) |
|---|---|---|
| CAGR/yr | +8.5% | +7.1% |
| Sharpe | 1.65 | 2.17 |
| Max drawdown | 2.8% | 1.2% |
| Bars | 279 | 120 |
The sample is cut into 5 consecutive segments. The return in each shows whether the strategy works evenly over time or rests on one lucky stretch.
Trade order is reshuffled 2,000 times (bootstrap). The range shows how much the outcome depended on a lucky sequence rather than the strategy itself. p5–p95 is the corridor of "almost all" outcomes.
Computed from the per-bar returns of the same run (costs already included). Monte-Carlo is deterministic: the numbers are stable across rebuilds. Historical robustness does not guarantee future results.
Download the exact sample and run the logic yourself — the numbers above should match.
A Binance spot EUR/USDT proxy series, not a forex-broker feed. Binance Spot REST API (api.binance.com/api/v3/klines).
Conclusion
On a ranging sample the counter-trend rule posted a positive result with a high share of winning trades — exactly the behaviour it is used for. But the high win rate is deceptive here: a single prolonged trend can wipe out the profit of many small trades.
Practical takeaway for the trader
Bollinger Squeeze is profitable in a range, but a trend filter is mandatory: without one, a series of counter-trend entries in a strong move produces a large loss.
FAQ
Why is a high win rate not a guarantee?
Counter-trend strategies win often and small, but a rare large loss in a trend overrides many small winning trades. You have to judge the whole set of metrics, not the win rate alone.
How much does the result depend on the sample?
Entirely: on a ranging sample the rule is profitable, on a trending one it would be unprofitable. This illustrates behaviour in a specific regime, not a universal verdict.
Why a check on EUR/USD?
The portal holds its own reproducible history only for this pair. We honestly show the signal on the data we have rather than substituting unverifiable figures for another instrument.