50 Bybit USDT perpetuals, 90 days of 1-minute data (2026-05-25 → 2026-08-23).
Session anchor 00:00 UTC. Seven (initial-period × entry-candle) combinations,
each tested against five target multiples — 1R through 3R —
for 157,115 simulated trade-outcomes in total. Later sections widen this to a stop/fee
sensitivity sweep and a 363-symbol universe gated by a daily volume/volatility screener —
which is where the story changes.
Rules taken literally from the brief, resolved to precise mechanics where the brief left room.
f_computeIVA, 100 bins, 68% value area.Per-combo average R at the 2R target, before and after the fee model above. The gap between the two bars is the median stop distance's real enemy: fees, not the strategy's directional call.
Average net R (fees included) for every combo × target-R pair. Darker red is worse; all 35 cells are negative.
| Initial period / entry candle | Win% @1R | 1R | 1.5R | 2R | 2.5R | 3R |
|---|
Median stop distance (entry to POC) as a share of price, next to what a 0.11% round-trip taker cost does once converted into R units. The tighter the stop, the more of every R the fee eats.
| Combo | Median stop | Fee, in R | Gross R @1R | Net R @1R | Gross R @3R | Net R @3R |
|---|
Re-ran every combo × target with three stop placements and two fee models, holding entries fixed (the breakout signal doesn't depend on where the stop sits). A 5bp buffer stands in for tick/slippage room past the level.
Stop distance widens predictably as the anchor moves from POC outward to the value-area edge (median, as % of price, across all seven combos):
| Initial period / entry candle | poc | poc_buffer | va_buffer |
|---|
The best-performing combo throughout, 60m initial period / 15min entry candle, across all three stops and both fee models:
| Stop | 1R | 1.5R | 2R | 2.5R | 3R |
|---|
| Stop | 1R | 1.5R | 2R | 2.5R | 3R |
|---|
Pooled across all seven combos and five targets:
| Stop variant | Win rate | Avg net R, taker | Avg net R, maker |
|---|
A separate question from stop placement: what if the strategy only fires on symbols passing a
5-criterion daily filter, checked once at 23:00 UTC (9am Sydney) — one hour
before the next 00:00 UTC session it gates? Re-ran the full universe of 363 Bybit
USDT perps that ever clear $10M/24h turnover, this time simulating a symbol's IVA breakout only
on the days it also passes the filter below.
tr(true)*100/abs(low).The filter is strict: only {{PASS_PCT}}% of (symbol, day) checks passed — {{TOTAL_PASSED}} qualifying events across {{DISTINCT_SYMBOLS}} distinct symbols and {{DAYS_WITH_PASS}} of {{TOTAL_DAYS}} session dates, averaging {{AVG_PER_DAY}} tradeable symbols per day (max {{MAX_PER_DAY}}). This is a genuinely small sample — treat precision accordingly.
| Stop variant | Win rate, unfiltered | Avg net R, unfiltered (taker) | Win rate, filtered | Avg net R, filtered (taker) | Avg net R, filtered (maker) |
|---|
Full result grid under the screener, exact-POC stop, taker fees — the realistic case. Unlike the unfiltered grids above, this one is mostly green:
| Initial period / entry candle | 1R | 1.5R | 2R | 2.5R | 3R |
|---|
Tracked Maximum Adverse Excursion (MAE) and Maximum Favorable Excursion (MFE) for every breakout event — how far price moved against and in favor of the position, in R, before the exact-POC stop was touched or the session ended — independent of any target choice. Then checked whether the screener's own inputs (ATR%, relative volume, Volatility.D, 24h volume change) predict trade quality on a sliding scale, and tested a rule the MFE data seemed to invite.
Two things jump out. First, MAE clusters right at 1R (median 1.15R) because 89.4% of all breakout events eventually touch the POC stop at some point — the stop isn't a rare tail event, it's the modal outcome. Second, MFE has a long right tail: the median event never even reaches +1R, but the top quartile runs past +3R and the top decile past +8R. The strategy's entire economics live in that tail.
Bucketing the 60m/15min combo's events by each screener input (quintiles) shows why the filter works as a combination rather than any single dial: none of the four inputs shows a real gradient on their own.
| Metric | Quintile | Metric mean | Avg MFE | Avg MAE | Stop rate | Reach 1R | Reach 2R |
|---|
Tested the obvious rule the MFE tail invites: move the stop to breakeven once price first touches +1R, keep the same fixed target above that. Result, pooled across all combos and targets on the screener-passed population:
| Fee model | Fixed stop (baseline) | Breakeven-after-1R | Change |
|---|
It makes things worse, not better — taker pooled avg net R drops from +0.0135R to −0.0176R. The reason: crypto breakouts retrace through their own entry price constantly on the way to a bigger move. A stop parked at breakeven gets clipped by that noise before the trade has a chance to reach 2R or 3R, converting what would have been full winners into scratches far more often than it rescues true reversals. A 1.5R trigger is less damaging but still net negative (taker pooled: +0.0135R → +0.0011R) — the fixed POC stop with no dynamic management outperforms every variant of "protect the trade early" tested here.
Real maker fills require the entry to be a resting limit order, not a market order chasing the breakout close — which risks missing fast moves entirely. That execution tradeoff isn't modeled here.
5bps was used for every "buffer" variant. A larger buffer would widen risk further and dilute fees more, at the cost of giving back some of the gross edge to noise.
The top-50 list was ranked by today's 24h turnover and applied retroactively across the full 3 months. Symbols that fell out of the top 50 over that window (or entered it) aren't represented as they actually traded.
Three months is a thin sample for a daily-reset strategy — 90 UTC sessions per symbol. Directional edge estimates (the gross-R figures above) carry wide uncertainty at this size.
~4 symbols/day passing 5 simultaneous criteria is a small, binary-outcome sample. The pooled +0.01R (taker) result is a promising direction, not a statistically settled edge — it should be validated forward, not sized up on this backtest alone.
The 10-day rel-vol-at-time lookback and the 23:00 UTC check hour were taken as given rather than tested for sensitivity. Both could plausibly move the pass rate and the resulting edge in either direction.