[Mine-Q] Volatility squeeze breakout

public
@djgambhir

BTCUSDT · 2h · 2021-12-312026-08-31 · 20,452 bars in 15.3ms

Underperformed the market. Holding BTCUSDT returned +67.13% over the same period, against this strategy’s -14.67%.

Net P&L
-14.67%
−$1,467.46
Max drawdown
-20.92%
Max run-up
+6.86%
Trades
207
28.5% win rate
Profit factor
0.66
2021-12-31drawdown · worst -20.92%2026-08-31
TrainingValidationOut-of-sample
SegmentPeriodReturnMax drawdownTradesWin rate
Training2022-01-012024-10-19-9.18%-15.66%12829%
Validation2024-10-192025-09-25-4.98%-5.35%3724%
Out-of-sample2025-09-252026-08-31-1.13%-6.67%4231%

Risk-adjusted

Sharpe
-0.84
Sortino
-1.20
Calmar
-0.16
Return ÷ max drawdown
-0.70
CAGR
-3.34%
Exposure
11.9%

Per trade

Expectancy
−$7.09 · -0.30%
Average win / loss
$48.63 / −$29.30
Payoff ratio
1.66
Largest win / loss
$292.74 / −$82.89
Longest losing streak(winning: 2)
13 trades

Drawdown over time

Max drawdown
-20.92%
Longest time under water(still going at the end)
1523 days
Worst drawdown recovered in
not recovered

Costs and mechanics

Fees paid
−$481.83
Funding
−$0.26
Liquidations
0
Warmup bars(loaded before the start date)
119
Benchmark(buy and hold)
+67.13%

Monte Carlo

1,000 alternative histories, each 207 trades drawn at random from this run’s own. The bands hold the middle 50% and 90% of them; the solid line is what actually happened.

this runmedian of the historiesmiddle 50% · 90%
Unlucky (5%)TypicalLucky (95%)
Return-23.99%-14.39%-1.90%
Max drawdown-25.46%-16.80%-8.56%

96% of histories lost money, and 21% had a deeper drawdown than this run’s -20.92%. Assumes trades are independent; real losing streaks cluster, so the true spread is usually wider.

Settings

bb length
20
bb width (standard deviations)
2
sd20 length
20
sdMin length
120
atr14 length
14
Long entry: sd20[1] ≤ ▢ × sdMin[1]
1.25
Short entry: sd20[1] ≤ ▢ × sdMin[1]
1.25
Stop loss (× atr14)
2
Trailing stop (× atr14)
3
Leverage (×)
1
Position size (% of equity)
25

BTCUSDT with every trade

Loading prices…
long opened short opened closed at a profit closed at a loss

Trades

207 trades · 201–207 shown

#SideEntryExitHeldP&LReturnClosed by
201short2026-06-28 18:00 @ 59,545.392026-06-29 12:00 @ 60,547.7418h−$38.39-1.77%trailing stop
202long2026-07-06 00:00 @ 63,629.922026-07-06 08:00 @ 62,701.238h−$33.89-1.57%trailing stop
203short2026-07-13 02:00 @ 63,369.422026-07-14 12:00 @ 63,259.181d 10h$2.15+0.10%trailing stop
204long2026-08-05 18:00 @ 64,746.552026-08-09 04:00 @ 64,745.953d 10h−$3.20-0.15%reverse
205long2026-08-09 14:00 @ 65,208.042026-08-09 22:00 @ 64,841.268h−$14.36-0.67%trailing stop
206short2026-08-16 22:00 @ 62,887.522026-08-17 00:00 @ 63,236.852h−$13.97-0.65%trailing stop
207long2026-08-30 14:00 @ 78,833.462026-08-30 22:00 @ 78,042.568h−$23.74-1.11%trailing stop

How this was run

Orders fill at the next bar’s open, never at the close that produced the signal. When one bar’s range covered both the stop and the target, the stop was taken, because the data cannot say which came first. Fees, slippage and funding are all charged.

Warmup history was loaded from before 2022-01-01 so the requested window is fully tradable.

← Browse other results