I went back into the 50-config deep-test shortlist from my last GPU screen and pulled a column I'd never actually looked at closely: fi_rate — the share of trades that got closed by the hard invalidation stop, the last line of defense before the trade is simply wrong. Across all 50 configs, on 4 different pairs, that number averaged 3.04%. The single worst config still only hit 6.44%.

My first reaction was relief. My second, after I sat with it for a minute, was the opposite.

A stop that almost never fires isn't a stop that's rarely needed

A hard stop firing on 3% of trades sounds like a strategy that's almost always right. It isn't. It's a strategy where something else usually intervenes before the stop ever gets the chance — and in this shortlist, that something else is averaging down. 54.5% of trades across the 50 configs needed at least one add to survive, and the heaviest config leaned on it for 72% of trades. Every add slides the average entry closer to price, which buys the trade room before it can ever reach the invalidation level. The stop isn't proving the setup is safe. It's being starved of the chance to fire.

Metric across all 50 configs Min Avg Max
Hard stop fired (fi_rate)1.25%3.04%6.44%
Time-stop kicked in0.12%4.13%16.69%
Trades needing an averaging-down add38.1%54.5%72.3%
Worst unrealized drawdown (MAE)−5.0%−11.8%−14.2%

Add the first two rows and roughly 93% of trades resolved without ever touching either exit designed to cut a loss short. They closed on a take-profit, an averaged-down bounce, or a time-stop that got them out before the hard stop was even reached. The account "survived" almost every trade. It just didn't survive them cleanly — the MAE row shows how far underwater it sat first.

Splitting it by coin killed the theory that this is just noise

If the low fire-rate were some artifact of one lucky symbol, splitting the shortlist by pair should break the pattern. It didn't. Here's the same strategy family, same code, run on four different tickers:

Symbol (n configs) Win rate Stop fired Avg-down rate Avg hold
MEGA (30)95.6%2.31%55.6%12.4 min
BILL (9)73.3%4.22%57.9%11.3 min
ARIA (8)68.9%4.84%43.1%39.7 min
LIGHT (3)35.1%1.98%63.5%19.9 min

Look at LIGHT. It has the lowest win rate of the four — 35%, worse than a coin flip on two out of three trades — and yet its hard stop fires even less often than MEGA's, which wins 96% of the time. If a rarely-firing stop meant safety, LIGHT should be the safest coin in the set. It's the one leaning hardest on averaging down (63.5%) to avoid ever admitting the trade is wrong. A low win rate and a low stop-fire rate together is a specific and uglier signal than either one alone: the strategy isn't avoiding losses, it's avoiding *labeling* them as losses.

ARIA is the mirror case. It has the highest stop-fire rate (4.84%) and also the longest average hold time by a wide margin — 39.7 minutes versus 11–12 for the other two. Give a trade more time to develop and the hard stop gets more chances to actually be tested. That's what a stop is supposed to do. It's just the one column in this whole shortlist that looks like an honest risk control instead of a number the strategy is quietly routing around.

What I check now instead of the stop-fire rate

I stopped treating "the stop rarely fires" as a compliment. On its own it tells me nothing about whether the account is safe — only that something else, usually averaging down, is intercepting the loss before the stop gets a vote. The number that actually matters sits one column over: maximum adverse excursion, which averaged −11.8% and hit −14.2% on the best-looking configs in this set. That's the real distance the account traveled into the hole, stop or no stop. At 10x leverage a −14% excursion is a −140% move on margin — the account doesn't get to vote on whether that "counts" as a loss.

Before I trust a backtest's risk control again, I run its worst MAE through a leverage and risk-of-ruin calculation, not through the fi_rate column. A stop that never fires isn't proof the strategy is careful. It's usually proof the strategy found a way to keep the trade open until something friendlier than a stop-loss closed it instead.

What to check in your own backtest before trusting a low stop-loss rate

  1. Read the averaging-down rate next to the stop-fire rate. A low fi_rate paired with a high dca1_rate means losses are being hidden, not avoided.
  2. Check MAE regardless of whether the stop triggered. The worst point of every trade matters even if it recovered — leverage doesn't care that it "worked out."
  3. Split results by symbol, not just by config. A pattern that only shows up in the aggregate (like LIGHT's low win rate + low stop rate) gets buried if you only look at shortlist-wide averages.
  4. Run the worst excursion through real leverage. I use risk of ruin and max drawdown before I let a low stop-fire number talk me into anything.

→ Risk of ruin calculator · → DCA survival calculator · → Max drawdown calculator

FAQ

Why did the stop-loss fire so rarely in this backtest?

Because most losing trades never reached the hard invalidation level in the first place. They were rescued earlier — either by averaging down (54.5% of trades across the shortlist needed at least one add) or by a time-stop that closed the position before it could travel far enough to hit the final stop. The stop firing rarely doesn't mean losses were rare, it means most of the risk was absorbed by other exits first.

Does a low stop-loss trigger rate mean a strategy is safe?

No. LIGHTUSDT had one of the lowest final-invalidation rates in the set (under 2%) and also the lowest win rate (35%). A low stop rate combined with a low win rate means losses are being absorbed somewhere other than the labeled stop-loss column, usually in unrealized drawdown that never gets counted.

What is dca1_rate and how does it relate to the stop rarely firing?

dca1_rate is the share of trades that needed at least one averaging-down entry to survive. Across the 50-config shortlist it averaged 54.5% and reached as high as 72%. Every add to a losing position pushes the average entry closer to price and buys time before the hard stop is reached, which is the main reason the final-invalidation column stays low. See the DCA survival calculator.

What should I check instead of the stop-loss firing rate?

Maximum adverse excursion and the averaging-down rate. MAE tells you how far underwater a trade went before it recovered, regardless of whether the labeled stop ever triggered. Across this shortlist MAE averaged −11.8% and reached −14.2% on the best-looking configs — the real risk the account carried, hidden behind a stop that almost never fired.

How many trades and configs does this data come from?

50 deep-test backtest configs from a GPU screen of the range_bottom_reclaim strategy family, spanning MEGAUSDT, BILLUSDT, ARIAUSDT and LIGHTUSDT, with 808 to 1,600 trades per config.

Share: 𝕏 Post
Trade on:BybitBinanceOKX|📈 TradingView
Risk of Ruin CalculatorDCA Survival CalculatorMax Drawdown CalculatorProfit Factor Calculator