Head and Shoulders Pattern
A conventional reversal shape following a prior trend. The neckline break and target remain hypotheses whose conditional outcomes must be measured.
Pattern Structure
H&S (Bearish Reversal)
- Left Shoulder — Rally to new high, pullback
- Head — Higher high than left shoulder, pullback
- Right Shoulder — Lower high than head, starts to drop
- Neckline — Connect the two pullback lows
Inverse H&S (Bullish Reversal)
- Left Shoulder — Drop to new low, bounce
- Head — Lower low, bounce
- Right Shoulder — Higher low, starts to rise
- Neckline — Connect the two bounce highs
| Criteria |
Requirement |
| Activity |
Compare right-shoulder volume with the left using a predeclared statistic |
| Symmetry |
Shoulders roughly equal height |
| Prior trend |
Must have existing trend to reverse |
Workflow
1. Get Exact Data
get_candles_around_date(symbol=<symbol>, exchange=<exchange>, interval=<interval>, date=<head_date>)
2. Mark Structure Points (3 parallel highlight calls)
draw_chart_analysis(action="create", drawing={
"type": "highlight",
"points": [{"time": <ls_time>, "price": <ls_price>}],
"options": {"text": "LS"}
})
draw_chart_analysis(action="create", drawing={
"type": "highlight",
"points": [{"time": <head_time>, "price": <head_price>}],
"options": {"text": "Head"}
})
draw_chart_analysis(action="create", drawing={
"type": "highlight",
"points": [{"time": <rs_time>, "price": <rs_price>}],
"options": {"text": "RS"}
})
3. Draw Neckline
draw_chart_analysis(action="create", drawing={
"type": "support",
"points": [
{"time": <neckline_left_time>, "price": <neckline_left_price>},
{"time": <neckline_right_time>, "price": <neckline_right_price>}
],
"options": {"text": "Neckline"}
})
For inverse H&S, use "resistance" instead of "support".
4. Enter
Standard: Enter on neckline break + close with volume. Stop above right shoulder.
Preferred: Wait for neckline break, then retest. Enter on rejection. Tighter stop.
Target: Head-to-neckline distance projected from break point.
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: Lo, Mamaysky & Wang studied algorithmic head-and-shoulders recognition and found conditional information in some samples, not a guaranteed reversal.
Key Rules
- NEVER trade before neckline break — pattern incomplete until confirmed
- Volume differences are contextual and do not validate the pattern without a neckline break
- Must have a prior trend to reverse; H&S in a range is invalid
- Record shoulder-height asymmetry rather than assuming a lower right shoulder always increases expectancy
Related Skills
- double-top-bottom — Similar reversal family
- multi-timeframe-analysis — HTF H&S signals major reversals
1---2name: head-and-shoulders3description: Define and test head-and-shoulders or inverse patterns. Use when measuring objective pivots, neckline breaks/retests, symmetry, invalidation, and measured-move outcomes.4license: Apache-2.05---67# Head and Shoulders Pattern89A conventional reversal shape following a prior trend. The neckline break and target remain hypotheses whose conditional outcomes must be measured.1011## Pattern Structure1213### H&S (Bearish Reversal)141. **Left Shoulder** — Rally to new high, pullback152. **Head** — Higher high than left shoulder, pullback163. **Right Shoulder** — Lower high than head, starts to drop174. **Neckline** — Connect the two pullback lows1819### Inverse H&S (Bullish Reversal)201. **Left Shoulder** — Drop to new low, bounce212. **Head** — Lower low, bounce223. **Right Shoulder** — Higher low, starts to rise234. **Neckline** — Connect the two bounce highs2425| Criteria | Requirement |26|----------|-------------|27| Activity | Compare right-shoulder volume with the left using a predeclared statistic |28| Symmetry | Shoulders roughly equal height |29| Prior trend | Must have existing trend to reverse |3031## Workflow3233### 1. Get Exact Data3435```36get_candles_around_date(symbol=<symbol>, exchange=<exchange>, interval=<interval>, date=<head_date>)37```3839### 2. Mark Structure Points (3 parallel highlight calls)4041```42draw_chart_analysis(action="create", drawing={43 "type": "highlight",44 "points": [{"time": <ls_time>, "price": <ls_price>}],45 "options": {"text": "LS"}46})4748draw_chart_analysis(action="create", drawing={49 "type": "highlight",50 "points": [{"time": <head_time>, "price": <head_price>}],51 "options": {"text": "Head"}52})5354draw_chart_analysis(action="create", drawing={55 "type": "highlight",56 "points": [{"time": <rs_time>, "price": <rs_price>}],57 "options": {"text": "RS"}58})59```6061### 3. Draw Neckline6263```64draw_chart_analysis(action="create", drawing={65 "type": "support",66 "points": [67 {"time": <neckline_left_time>, "price": <neckline_left_price>},68 {"time": <neckline_right_time>, "price": <neckline_right_price>}69 ],70 "options": {"text": "Neckline"}71})72```7374For inverse H&S, use `"resistance"` instead of `"support"`.7576### 4. Enter7778**Standard:** Enter on neckline break + close with volume. Stop above right shoulder.79**Preferred:** Wait for neckline break, then retest. Enter on rejection. Tighter stop.80**Target:** Head-to-neckline distance projected from break point.8182## Evidence and Validation8384- Treat the setup as a testable hypothesis, not a prediction. Define thresholds, entry, invalidation, and exit before evaluating outcomes.85- Calibrate on the same instrument, venue, session, and timeframe. Use closed candles and a held-out or walk-forward sample; record every variant tried.86- 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.87- Return observed inputs, missing data, cost assumptions, entry, invalidation, exit, and a valid, watch, or no-trade status.88- 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.8990## Key Rules91- NEVER trade before neckline break — pattern incomplete until confirmed92- Volume differences are contextual and do not validate the pattern without a neckline break93- Must have a prior trend to reverse; H&S in a range is invalid94- Record shoulder-height asymmetry rather than assuming a lower right shoulder always increases expectancy9596## Related Skills97- **double-top-bottom** — Similar reversal family98- **multi-timeframe-analysis** — HTF H&S signals major reversals