$npx -y skills add SKE-Labs/agent-trading-skills --skill fair-value-gapsDetect and test three-candle fair-value-gap zones. Use when the user wants an objective wick-gap definition, retracement statistics, entry, invalidation, and cost-aware validation.
| 1 | # Fair Value Gaps (FVG) Trading |
| 2 | |
| 3 | A three-candle wick-gap convention. The pattern is observable in OHLC data; calling it inefficiency or institutional imbalance requires separate order-book/trade evidence. |
| 4 | |
| 5 | ## Identification |
| 6 | |
| 7 | ### Bullish FVG |
| 8 | |
| 9 | 1. Strong bullish middle candle |
| 10 | 2. Gap between **Candle 1 high** and **Candle 3 low** |
| 11 | 3. Zone = the unfilled gap area |
| 12 | |
| 13 | ### Bearish FVG |
| 14 | |
| 15 | 1. Strong bearish middle candle |
| 16 | 2. Gap between **Candle 1 low** and **Candle 3 high** |
| 17 | 3. Zone = the unfilled gap area |
| 18 | |
| 19 | ### Quality Factors |
| 20 | |
| 21 | - Normalize gap size by ATR, spread, and middle-candle range. |
| 22 | - Record preceding swing/sweep, time-of-day relative volume, and higher-timeframe state as features. |
| 23 | - Calibrate thresholds and interactions; do not convert them into untested quality labels. |
| 24 | |
| 25 | ## Workflow |
| 26 | |
| 27 | 1. **Identify FVG** after impulsive move using candle data: |
| 28 | ``` |
| 29 | get_candles_around_date(symbol=<symbol>, exchange=<exchange>, interval=<interval>, date=<date>) |
| 30 | ``` |
| 31 | 2. **Mark the zone** using `draw_chart_analysis` with type `demand` (bullish) or `supply` (bearish) |
| 32 | 3. **Wait for retracement** into the gap |
| 33 | 4. **Choose an entry rule** — near boundary, midpoint, full traversal, or price confirmation; select in training data only |
| 34 | 5. **Stop loss** beyond the full FVG boundary |
| 35 | 6. **Target** the high/low of the impulse move |
| 36 | |
| 37 | ### FVG + Order Block Confluence |
| 38 | |
| 39 | Record overlap with a separately defined order-block zone and test whether it adds value over FVG alone; the labels are correlated price-derived features. |
| 40 | |
| 41 | ## Evidence and Validation |
| 42 | |
| 43 | - Treat the setup as a testable hypothesis, not a prediction. Define thresholds, entry, invalidation, and exit before evaluating outcomes. |
| 44 | - Calibrate on the same instrument, venue, session, and timeframe. Use closed candles and a held-out or walk-forward sample; record every variant tried. |
| 45 | - 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. |
| 46 | - Return observed inputs, missing data, cost assumptions, entry, invalidation, exit, and a valid, watch, or no-trade status. |
| 47 | - Research basis: The three-candle definition follows the [ICT convention](https://www.theinnercircletraders.com/fair-value-gaps-vs-order-blocks/), but independent market-microstructure research links price changes to observable order-flow imbalance and depth—not to guaranteed gap fills. |
| 48 | |
| 49 | ## Key Rules |
| 50 | |
| 51 | - Estimate touch and fill rates with a fixed horizon and competing-risk rule; do not call gaps magnets. |
| 52 | - Expire zones after a predeclared time and retain unfilled zones in the denominator. |
| 53 | - Test stacked gaps and higher-timeframe alignment rather than assuming directional strength. |
| 54 | - The midpoint is a coordinate, not an empirically privileged entry. |
| 55 | |
| 56 | ## Related Skills |
| 57 | |
| 58 | - **order-blocks** — test overlap between two explicitly defined candle-zone conventions |
| 59 | - **premium-discount** — Enter FVGs in discount for longs, premium for shorts |