$npx -y skills add SKE-Labs/agent-trading-skills --skill head-and-shouldersDefine and test head-and-shoulders or inverse patterns. Use when measuring objective pivots, neckline breaks/retests, symmetry, invalidation, and measured-move outcomes.
| 1 | # Head and Shoulders Pattern |
| 2 | |
| 3 | A conventional reversal shape following a prior trend. The neckline break and target remain hypotheses whose conditional outcomes must be measured. |
| 4 | |
| 5 | ## Pattern Structure |
| 6 | |
| 7 | ### H&S (Bearish Reversal) |
| 8 | 1. **Left Shoulder** — Rally to new high, pullback |
| 9 | 2. **Head** — Higher high than left shoulder, pullback |
| 10 | 3. **Right Shoulder** — Lower high than head, starts to drop |
| 11 | 4. **Neckline** — Connect the two pullback lows |
| 12 | |
| 13 | ### Inverse H&S (Bullish Reversal) |
| 14 | 1. **Left Shoulder** — Drop to new low, bounce |
| 15 | 2. **Head** — Lower low, bounce |
| 16 | 3. **Right Shoulder** — Higher low, starts to rise |
| 17 | 4. **Neckline** — Connect the two bounce highs |
| 18 | |
| 19 | | Criteria | Requirement | |
| 20 | |----------|-------------| |
| 21 | | Activity | Compare right-shoulder volume with the left using a predeclared statistic | |
| 22 | | Symmetry | Shoulders roughly equal height | |
| 23 | | Prior trend | Must have existing trend to reverse | |
| 24 | |
| 25 | ## Workflow |
| 26 | |
| 27 | ### 1. Get Exact Data |
| 28 | |
| 29 | ``` |
| 30 | get_candles_around_date(symbol=<symbol>, exchange=<exchange>, interval=<interval>, date=<head_date>) |
| 31 | ``` |
| 32 | |
| 33 | ### 2. Mark Structure Points (3 parallel highlight calls) |
| 34 | |
| 35 | ``` |
| 36 | draw_chart_analysis(action="create", drawing={ |
| 37 | "type": "highlight", |
| 38 | "points": [{"time": <ls_time>, "price": <ls_price>}], |
| 39 | "options": {"text": "LS"} |
| 40 | }) |
| 41 | |
| 42 | draw_chart_analysis(action="create", drawing={ |
| 43 | "type": "highlight", |
| 44 | "points": [{"time": <head_time>, "price": <head_price>}], |
| 45 | "options": {"text": "Head"} |
| 46 | }) |
| 47 | |
| 48 | draw_chart_analysis(action="create", drawing={ |
| 49 | "type": "highlight", |
| 50 | "points": [{"time": <rs_time>, "price": <rs_price>}], |
| 51 | "options": {"text": "RS"} |
| 52 | }) |
| 53 | ``` |
| 54 | |
| 55 | ### 3. Draw Neckline |
| 56 | |
| 57 | ``` |
| 58 | draw_chart_analysis(action="create", drawing={ |
| 59 | "type": "support", |
| 60 | "points": [ |
| 61 | {"time": <neckline_left_time>, "price": <neckline_left_price>}, |
| 62 | {"time": <neckline_right_time>, "price": <neckline_right_price>} |
| 63 | ], |
| 64 | "options": {"text": "Neckline"} |
| 65 | }) |
| 66 | ``` |
| 67 | |
| 68 | For inverse H&S, use `"resistance"` instead of `"support"`. |
| 69 | |
| 70 | ### 4. Enter |
| 71 | |
| 72 | **Standard:** Enter on neckline break + close with volume. Stop above right shoulder. |
| 73 | **Preferred:** Wait for neckline break, then retest. Enter on rejection. Tighter stop. |
| 74 | **Target:** Head-to-neckline distance projected from break point. |
| 75 | |
| 76 | ## Evidence and Validation |
| 77 | |
| 78 | - Treat the setup as a testable hypothesis, not a prediction. Define thresholds, entry, invalidation, and exit before evaluating outcomes. |
| 79 | - Calibrate on the same instrument, venue, session, and timeframe. Use closed candles and a held-out or walk-forward sample; record every variant tried. |
| 80 | - 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. |
| 81 | - Return observed inputs, missing data, cost assumptions, entry, invalidation, exit, and a valid, watch, or no-trade status. |
| 82 | - Research basis: [Lo, Mamaysky & Wang](https://www.nber.org/papers/w7613) studied algorithmic head-and-shoulders recognition and found conditional information in some samples, not a guaranteed reversal. |
| 83 | |
| 84 | ## Key Rules |
| 85 | - NEVER trade before neckline break — pattern incomplete until confirmed |
| 86 | - Volume differences are contextual and do not validate the pattern without a neckline break |
| 87 | - Must have a prior trend to reverse; H&S in a range is invalid |
| 88 | - Record shoulder-height asymmetry rather than assuming a lower right shoulder always increases expectancy |
| 89 | |
| 90 | ## Related Skills |
| 91 | - **double-top-bottom** — Similar reversal family |
| 92 | - **multi-timeframe-analysis** — HTF H&S signals major reversals |