1. Supply and Demand Zones
Trade the base before a strong impulse when price returns to it for the first time.
2.What it is
A demand zone is the small base (a few narrow candles) before a strong move up; a supply zone is the base before a strong move down. When price returns to a fresh zone, this strategy looks for a reaction and trades from the zone with the stop beyond it.
In simple words
Sometimes price leaves an area very quickly. That suggests lots of orders were waiting there. When price comes back for the first time, it may react again, so we plan a trade there with the stop on the far side.
3.Why it may work
A fast departure from a base suggests an imbalance between buyers and sellers; unfilled orders may remain at the base and be triggered when price returns. Once the zone has been tested, those orders are used up, so fresh zones are preferred. This is a hypothesis about order flow, not a certainty.
4.Best market conditions
- A zone created by a strong, fast impulse that breaks structure
- The zone is fresh (not yet revisited)
- The zone agrees with the higher-timeframe trend
- Price approaches the zone calmly rather than with a spike
5.When NOT to trade it
- The zone has already been tested
- The move away from the zone was slow
- You are trading against a strong higher-timeframe trend
- The zone is so wide that the stop is too large
6.Timeframes
Entry: 15M, 30M · Context: 1H, 4H
Draw zones on the higher timeframe and refine the entry on the 15M or 5M chart.
7.Entry rules and step-by-step setup
Entry rules
- Price returns to a fresh zone
- A reaction candle closes away from the zone
- The higher-timeframe bias agrees
Step by step
- 1.Find a strong impulse that broke a swing high or low
- 2.Mark the base candles before the impulse as a zone
- 3.Check the zone is fresh and agrees with the higher-timeframe trend
- 4.Wait for price to return to the zone
- 5.Look for a reaction candle (engulfing or rejection)
- 6.Enter with the stop beyond the zone and a 1:2 target
8.Stop loss
Beyond the far edge of the zone with a small buffer. If price closes through the zone, the idea is invalid.
9.Take profit
The nearest opposite zone or structure level, or a fixed 2R.
10.Risk / reward
At least 1:2. Narrow zones give the best ratio; skip very wide zones.
11.Confirmation
- Rejection or engulfing candle at the zone
- A lower-timeframe structure shift after the touch
- A fair value gap left by the original impulse
12.Invalidation
- A close beyond the far edge of the zone
- The zone is retested and broken
13.Common mistakes
- Marking zones after the fact
- Using zones that have been tested several times
- Entering without a reaction
- Placing the stop inside the zone
14.Example chart
How it performed in our own backtests
TESTINGBacktested on 1313 trades but not verified: 6 of 9 checks not met (win rate above 50%; profit factor at least).
- Win rate
- 33.2%
- Sample size
- 1313 trades
- Average planned RR
- 1:2
- Profit factor
- 0.89
- Worst max drawdown
- 35.6%
- Average per trade
- -0.076R
- Tested timeframes
- 15m, 30m, 5m
- Tested markets
- BTCUSDT, ETHUSDT, SOLUSDT
Period 2026-03-09 to 2026-10-03 · OKX spot candles (real exchange history, closed candles only) · engine bahari-bt-1.0.0 · run on 2026-10-03 · 1% risk per trade, 0.05R extra cost per trade plus spread · one position at a time, ambiguous candles resolved stop-first · parameters fixed before running.
Fresh supply/demand zone with an engulfing reaction, in the direction of the trend, stop beyond the zone, 1:2 target.
VERIFIED checklist
- ✔Sample size of at least 300 trades(1313 trades)
- ✘Win rate above 50%(33.2%)
- ✘Profit factor at least 1.2(0.89)
- ✘Average result per trade above 0.05R after costs(-0.076R)
- ✘Worst max drawdown at most 25%(35.6%)
- ✔Average planned reward:risk at least 1:1(1:2)
- ✔Tested in at least 4 market/timeframe conditions (2+ markets, 2+ timeframes)(9 conditions, 3 markets, 3 timeframes)
- ✘Profitable in at least 67% of the conditions(3 of 9)
- ✘Profitable in BOTH halves of the history (profit factor at least 1 in each)(first 0.84, second 0.94)
Results per market and timeframe (9 runs)
| Market | TF | Trades | Win rate | Total R | Max DD |
|---|---|---|---|---|---|
| BTCUSDT | 15m | 159 | 32.1% | -16.6 | 26.17% |
| BTCUSDT | 5m | 149 | 31.5% | -21.4 | 28.32% |
| BTCUSDT | 30m | 142 | 31.7% | -16.1 | 23.13% |
| ETHUSDT | 15m | 154 | 29.9% | -25.5 | 30.51% |
| ETHUSDT | 5m | 125 | 39.2% | 10.3 | 15.35% |
| ETHUSDT | 30m | 139 | 36.7% | 6.3 | 10.1% |
| SOLUSDT | 15m | 156 | 35.3% | -2.1 | 22.57% |
| SOLUSDT | 5m | 144 | 27.8% | -37.0 | 35.55% |
| SOLUSDT | 30m | 145 | 35.9% | 2.3 | 17.96% |
Reading this honestly: VERIFIED needs 300+ trades, a win rate above 50%, profit factor 1.2+, drawdown under 25%, profit in at least two thirds of the conditions and in both halves of the history. A strategy that fails here can still be worth learning, but do not risk money on it before testing it yourself in the Strategy Lab.
Past and backtested results never guarantee future results. Nothing on this page is financial advice.
15.Quiz
16.Practical challenge
Plan a limit order at a fresh zone in a pending-order challenge and see whether price comes to it.
