Liquidity Zones Trading
Observable price levels where stop or limit orders may cluster. Clustering can contribute to cascades, but candles alone cannot identify the orders, their owners, institutional targeting, or a guaranteed reversal.
Identification
Buy-Side Liquidity (BSL)
- Location: Above swing highs, equal highs, resistance
- Hypothesis: Some buy stops may rest above the level; verify with available order/trade data
Sell-Side Liquidity (SSL)
- Location: Below swing lows, equal lows, support
- Hypothesis: Some sell stops may rest below the level; verify with available order/trade data
Level Features
Record formation type, number of touches, equality tolerance in ATR/ticks, age, visible depth if available, distance, and time of day. Calibrate these features rather than assigning ordinal strength.
Workflow
- Identify liquidity pool (equal highs/lows, obvious swing points):
get_candles_around_date(symbol=<symbol>, exchange=<exchange>, interval=<interval>, date=<date>)
- Mark levels using
draw_chart_analysis: resistance for BSL, support for SSL, highlight for sweep points
- Wait for sweep — price takes out the level
- Confirm reversal: use an objective swing/rejection rule and a predeclared return window
- Enter after confirmation
- Stop loss beyond the sweep wick
- Target opposite liquidity pool
Evidence and Validation
- Treat the setup as a testable hypothesis, not a prediction. Define thresholds, entry, invalidation, and exit before evaluating outcomes.
- Calibrate on the same instrument, venue, session, and timeframe. Use closed candles and a held-out or walk-forward sample; record every variant tried.
- Include spread, fees, slippage, borrow or funding, partial fills, and latency. Reject the setup when net expectancy is not positive or depends on one narrow parameter.
- Return observed inputs, missing data, cost assumptions, entry, invalidation, exit, and a valid, watch, or no-trade status.
- Research basis: Osler found clustered FX stop-loss orders can contribute to price cascades. This supports conditional liquidity hypotheses, not certainty that institutions target a visible level.
Key Rules
- Define sweep distance, close condition, reversal window, and expiry before evaluation.
- Compare anticipation, reversal, and continuation hypotheses on identical samples.
- Use time-of-day relative volume; it is contextual, not proof of stop orders.
- Equal highs/lows are candidate clustering coordinates, not known liquidity or magnets.
- Return
no trade when the level or trigger cannot be defined without hindsight.
Related Skills
- kill-zones — Liquidity sweeps most commonly occur during London and NY AM sessions
- market-structure-shift — CHoCH after a sweep confirms the reversal direction
1---2name: liquidity-zones3description: Mark candidate liquidity levels and test sweep/reversal behavior. Use when analyzing equal highs/lows, swing levels, round-number clustering, or stop-loss cascade risk without inferring hidden intent.4license: Apache-2.05---67# Liquidity Zones Trading89Observable price levels where stop or limit orders may cluster. Clustering can contribute to cascades, but candles alone cannot identify the orders, their owners, institutional targeting, or a guaranteed reversal.1011## Identification1213### Buy-Side Liquidity (BSL)14- **Location**: Above swing highs, equal highs, resistance15- **Hypothesis**: Some buy stops may rest above the level; verify with available order/trade data1617### Sell-Side Liquidity (SSL)18- **Location**: Below swing lows, equal lows, support19- **Hypothesis**: Some sell stops may rest below the level; verify with available order/trade data2021### Level Features2223Record formation type, number of touches, equality tolerance in ATR/ticks, age, visible depth if available, distance, and time of day. Calibrate these features rather than assigning ordinal strength.2425## Workflow26271. **Identify liquidity pool** (equal highs/lows, obvious swing points):28 ```29 get_candles_around_date(symbol=<symbol>, exchange=<exchange>, interval=<interval>, date=<date>)30 ```312. **Mark levels** using `draw_chart_analysis`: `resistance` for BSL, `support` for SSL, `highlight` for sweep points323. **Wait for sweep** — price takes out the level334. **Confirm reversal**: use an objective swing/rejection rule and a predeclared return window345. **Enter after confirmation**356. **Stop loss** beyond the sweep wick367. **Target** opposite liquidity pool3738## Evidence and Validation3940- Treat the setup as a testable hypothesis, not a prediction. Define thresholds, entry, invalidation, and exit before evaluating outcomes.41- Calibrate on the same instrument, venue, session, and timeframe. Use closed candles and a held-out or walk-forward sample; record every variant tried.42- Include spread, fees, slippage, borrow or funding, partial fills, and latency. Reject the setup when net expectancy is not positive or depends on one narrow parameter.43- Return observed inputs, missing data, cost assumptions, entry, invalidation, exit, and a valid, watch, or no-trade status.44- Research basis: [Osler](https://www.newyorkfed.org/research/staff_reports/sr150.html) found clustered FX stop-loss orders can contribute to price cascades. This supports conditional liquidity hypotheses, not certainty that institutions target a visible level.4546## Key Rules4748- Define sweep distance, close condition, reversal window, and expiry before evaluation.49- Compare anticipation, reversal, and continuation hypotheses on identical samples.50- Use time-of-day relative volume; it is contextual, not proof of stop orders.51- Equal highs/lows are candidate clustering coordinates, not known liquidity or magnets.52- Return `no trade` when the level or trigger cannot be defined without hindsight.5354## Related Skills5556- **kill-zones** — Liquidity sweeps most commonly occur during London and NY AM sessions57- **market-structure-shift** — CHoCH after a sweep confirms the reversal direction