Most traders lose because they trade the same way in trending markets as they do in ranging markets. Here is the regime detection framework I use to avoid that mistake.
The Core Problem: One Strategy, Four Market States
Crypto markets cycle through four distinct states:
- TREND — Strong directional move, ADX > 22. Breakout strategies work.
- RANGE — Sideways consolidation, ADX < 16. Mean reversion works.
- MIX — Transitional. Both strategies give false signals.
- HIGHVOL — Extreme volatility. Neither works well. Stay out or reduce size.
Most indicators don't know which state they're in. They give signals in all four and expect you to figure out which ones to take.
Why This Destroys Backtests
You backtest a momentum strategy and it shows 60% win rate. Then you run it live and it drops to 40%.
The difference: your backtest ran during a trending period. Live trading caught the ranging market that followed.
Without regime detection, you're applying trend-following logic to a range — and wondering why every breakout fails.
The Solution: Detect Regime First, Then Apply Strategy
Here is the decision tree I use:
ADX > 22 AND price making higher highs? -> TREND MODE
-> Take breakout signals
-> Hold winners longer (wider TP)
-> Trail stop below recent swing low
ADX < 16 AND price bouncing between levels? -> RANGE MODE
-> Take mean reversion signals (oversold/overbought)
-> Take profit at resistance/support
-> Tighter stops (no room for large drawdowns)
ADX between 16-22? -> MIX MODE
-> Reduce position size by 50%
-> Only take signals confirmed by multiple indicators
-> Wider stops to survive chop
ATR > 2x 20-period average? -> HIGHVOL MODE
-> Do not trade or cut size to 25% of normal
-> Wait for volatility to compress
-> Look for the regime that follows (usually TREND)
The WaveTrend Component
The regime filter tells you WHEN to trade. WaveTrend tells you WHERE.
WaveTrend is a momentum oscillator similar to RSI but smoother:
- Overbought zone (above +60): look for SELL signals
- Oversold zone (below -60): look for BUY signals
- Crossovers at extremes: highest probability entries
Combined with regime detection:
- WaveTrend oversold + TREND regime = strong buy signal
- WaveTrend oversold + RANGE regime = moderate buy signal (smaller size)
- WaveTrend oversold + HIGHVOL regime = skip (noise, not signal)
The Macro Filter That Eliminates 30% of Bad Trades
USDT.D (Tether dominance) and BTC.D (Bitcoin dominance) tell you the macro risk environment:
- USDT.D rising + BTC.D stable = capital rotating to safety. Avoid altcoins.
- BTC.D falling = altcoin season. Favor altcoin longs.
- Both falling = market risk-on. Favor all crypto longs.
- USDT.D spiking = fear event. Stand aside completely.
This single filter eliminated ~30% of my losing trades by stopping me from entering when macro was against the trade.
ATR-Based Dynamic Risk Management
Fixed TP/SL percentages break in different regimes:
- In TREND, 2% SL is too tight. Price needs room to breathe.
- In RANGE, 5% SL is too wide. You'll take massive losses on failed bounces.
The solution: ATR (Average True Range) scales your TP/SL automatically.
Stop Loss = Entry - (2.5 x ATR_14) // in TREND mode
Take Profit = Entry + (4.0 x ATR_14) // Risk:Reward = 1.6
Stop Loss = Entry - (1.5 x ATR_14) // in RANGE mode
Take Profit = Entry + (2.0 x ATR_14) // Risk:Reward = 1.3
This means your stops widen automatically in volatile markets and tighten in low-volatility range markets.
Break of Structure Confirmation
For RANGE and MIX regimes, I require a Break of Structure (BOS) before entering:
- Support holding -> price breaks above prior resistance -> BOS confirmed -> long entry
- No BOS = no trade, even if WaveTrend says oversold
This eliminates the "catching falling knives" problem in choppy markets.
Implementation in TradingView
The full system is implemented as a TradingView Pine Script indicator that:
- Automatically detects current regime (TREND/RANGE/MIX/HIGHVOL)
- Shows WaveTrend with overbought/oversold zones
- Applies macro filter from USDT.D and BTC.D
- Calculates and displays ATR-based TP/SL levels
- Requires BOS confirmation in RANGE/MIX
- Labels signals as BUY/SELL with entry, SL, TP on chart
If you're interested in the indicator, leave a comment below.
Key Takeaways
- Never trade without knowing what regime you're in
- Trend strategies in range markets lose money systematically
- ATR-based stops beat fixed percentage stops in every regime
- USDT.D macro filter eliminates 30% of bad trades
- BOS confirmation prevents catching knives in chop
The goal is not more signals. It is better signals with fewer losses.
What indicator or method do you use to detect market regime? Drop it in the comments.
Save hours on scraping setup: The $29 Apify Scrapers Bundle includes 35+ production-ready actors — Google SERP, LinkedIn, Amazon, TikTok, contact info, and more. Pre-configured inputs, working on day one.
Related Tools
Pre-built solutions for this use case:
Top comments (0)