$npx -y skills add SKE-Labs/agent-trading-skills --skill supply-demand-zonesDefine and test supply/demand-style base-and-departure candle zones. Use when planning support/resistance hypotheses without inferring unfilled institutional inventory.
| 1 | # Supply & Demand Zone Trading |
| 2 | |
| 3 | Supply/demand zones are candle-range heuristics around a base before a directional departure. OHLC data alone does not reveal institutional accumulation, distribution, or resting inventory. |
| 4 | |
| 5 | ## Zone Identification |
| 6 | |
| 7 | ### Demand Zone (Buy Area) |
| 8 | - Price dropped, formed a base under a predeclared bar/range rule, then rallied by a normalized departure threshold |
| 9 | - Zone = the consolidation base before the rally (draw from base low to base high) |
| 10 | |
| 11 | ### Supply Zone (Sell Area) |
| 12 | - Price rallied, formed a base under the same rule, then dropped by a normalized threshold |
| 13 | - Zone = the consolidation base before the drop (draw from base high to base low) |
| 14 | |
| 15 | ## Zone Quality |
| 16 | |
| 17 | | Factor | Strong Zone | Weak Zone | |
| 18 | | ---------------- | ------------------- | ------------------ | |
| 19 | | **Departure** | Large/small ATR-normalized move over fixed bars | |
| 20 | | **Time at base** | Bar count and range/ATR | |
| 21 | | **Retests** | Count, depth, and age | |
| 22 | | **Context** | Objective higher-timeframe state | |
| 23 | |
| 24 | Treat retest count as a feature. Estimate first and later retest outcomes with a fixed expiry; do not assume monotonic weakening. |
| 25 | |
| 26 | ## Entry Strategies |
| 27 | |
| 28 | ### Set & Forget |
| 29 | - Limit order at zone edge, stop beyond opposite edge |
| 30 | |
| 31 | ### Confirmation Entry |
| 32 | - Wait for price to enter zone, look for rejection candle (pin bar, engulfing), enter on confirmation |
| 33 | |
| 34 | ### Refined Zone Entry |
| 35 | - Use LTF to find order block or FVG within the zone for tighter stop |
| 36 | |
| 37 | ## Workflow |
| 38 | |
| 39 | 1. **Get candle data** on HTF (4H/Daily) to identify zones: |
| 40 | ``` |
| 41 | get_candles_around_date(symbol=<symbol>, exchange=<exchange>, interval=<interval>, date=<date>) |
| 42 | ``` |
| 43 | |
| 44 | 2. **Mark zones** on chart: |
| 45 | ``` |
| 46 | draw_chart_analysis(action="create", drawing={ |
| 47 | "type": "demand", |
| 48 | "points": [ |
| 49 | {"time": <zone_start_time>, "price": <zone_top>}, |
| 50 | {"time": <zone_end_time>, "price": <zone_bottom>} |
| 51 | ], |
| 52 | "options": {"text": "Fresh Demand Zone"} |
| 53 | }) |
| 54 | ``` |
| 55 | |
| 56 | 3. **Confirm with indicators**: |
| 57 | ``` |
| 58 | get_indicators(indicator_code="rsi", symbol=<symbol>, exchange=<exchange>, interval=<interval>) |
| 59 | ``` |
| 60 | Check for oversold/overbought at zone. |
| 61 | |
| 62 | 4. **Wait for price** to return to zone. Enter with confirmation or limit order. Stop beyond zone. Target: next opposing zone. |
| 63 | |
| 64 | ## Evidence and Validation |
| 65 | |
| 66 | - Treat the setup as a testable hypothesis, not a prediction. Define thresholds, entry, invalidation, and exit before evaluating outcomes. |
| 67 | - Calibrate on the same instrument, venue, session, and timeframe. Use closed candles and a held-out or walk-forward sample; record every variant tried. |
| 68 | - 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. |
| 69 | - Return observed inputs, missing data, cost assumptions, entry, invalidation, exit, and a valid, watch, or no-trade status. |
| 70 | - Research basis: Empirical [limit-order clustering research](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=966454) supports price barriers at clustered levels, but candle zones do not reveal unfilled institutional inventory. |
| 71 | |
| 72 | ## Key Rules |
| 73 | |
| 74 | - Define base, departure, zone bounds, retest, expiry, and invalidation without hindsight. |
| 75 | - Normalize departure by ATR, ticks, and bars; do not call it order imbalance without order-flow evidence. |
| 76 | - Treat the construct as a support/resistance zone, not unfilled institutional orders. |
| 77 | - Test retest age/count and lower-timeframe refinement for incremental net value. |
| 78 | - Keep broken, never-retested, and expired zones in the denominator. |
| 79 | |
| 80 | ## Related Skills |
| 81 | |
| 82 | - **volume-profile-trading** — volume profile HVNs confirm S/D zone strength |
| 83 | - **fibonacci-trading** — Fib retracements into S/D zones provide high-confluence entries |