$npx -y skills add SKE-Labs/agent-trading-skills --skill premium-discountMeasure price location within a chosen swing range using ICT premium/discount terminology. Use when testing whether above/below-midpoint location adds value to an existing directional setup.
| 1 | # Premium & Discount Trading |
| 2 | |
| 3 | This convention labels price above a selected range midpoint "premium" and below it "discount." It describes relative location, not fundamental value, equilibrium, or an obligation to oscillate. |
| 4 | |
| 5 | ## Core Concept |
| 6 | |
| 7 | **Equilibrium** = (Swing High + Swing Low) / 2 |
| 8 | |
| 9 | | Zone | Location | Action | |
| 10 | | --------------- | --------- | ---------------------- | |
| 11 | | **Premium** | Above 50% | Upper half of selected range | |
| 12 | | **Midpoint** | At 50% | Arithmetic midpoint | |
| 13 | | **Discount** | Below 50% | Lower half of selected range | |
| 14 | |
| 15 | ### Trading Zones |
| 16 | - Test long and short filters separately; below/above 50% is not an entry by itself. |
| 17 | - If evaluating OTE, compare the Fibonacci band with continuous location and equal-width control bands. |
| 18 | |
| 19 | ## Workflow |
| 20 | |
| 21 | 1. **Identify the swing range** using a fixed pivot/timeframe algorithm and only information available at the timestamp: |
| 22 | ``` |
| 23 | get_candles_around_date(symbol=<symbol>, exchange=<exchange>, interval="1d", date=<date>) |
| 24 | ``` |
| 25 | 2. **Draw Fibonacci** using `draw_chart_analysis` with `fib_retracement` (0% = Swing High, 100% = Swing Low) |
| 26 | 3. **Determine current position**: Above 50% = Premium, Below 50% = Discount |
| 27 | 4. **Mark levels** using `draw_chart_analysis`: equilibrium with `support`/`resistance`, OTE zone with `demand`/`supply` |
| 28 | 5. **Combine with a separately defined direction hypothesis** and report conflicts. |
| 29 | 6. **Apply a predeclared entry trigger**; range location alone is `watch`, not a trade. |
| 30 | 7. **Use a fixed execution timeframe** and closed bars; avoid hindsight swing changes. |
| 31 | |
| 32 | ## Evidence and Validation |
| 33 | |
| 34 | - Treat the setup as a testable hypothesis, not a prediction. Define thresholds, entry, invalidation, and exit before evaluating outcomes. |
| 35 | - Calibrate on the same instrument, venue, session, and timeframe. Use closed candles and a held-out or walk-forward sample; record every variant tried. |
| 36 | - 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. |
| 37 | - Return observed inputs, missing data, cost assumptions, entry, invalidation, exit, and a valid, watch, or no-trade status. |
| 38 | - Research basis: Empirical [Fibonacci research](https://www.sciencedirect.com/science/article/abs/pii/S0957417421012495) does not support special standalone bounce power for retracement ratios; the 50% split is a descriptive range location, not fundamental value. |
| 39 | |
| 40 | ## Key Rules |
| 41 | |
| 42 | - Do not infer institutional accumulation/distribution or a "retail trap" from range location. |
| 43 | - Permit both directions in either half when a separately validated strategy does; test the filter incrementally. |
| 44 | - State range endpoints, confirmation status, timeframe, and midpoint explicitly. |
| 45 | - Treat 50% as arithmetic, not an empirical decision boundary or fair value. |
| 46 | |
| 47 | ## Related Skills |
| 48 | |
| 49 | - **optimal-trade-entry** — OTE provides the precise entry within premium/discount zones |
| 50 | - **market-structure-shift** — Structure determines whether to look for entries in premium or discount |