# Patterns & Harmonics

> Harmonic patterns that grade their own ratios, and classic chart patterns that check the textbook rules and draw the measured-move target.

You place the pivots and the tool reads them: harmonics get named and graded, with a zone for where D should complete; chart patterns get their rules checked, the breakout found (a close through the line, not just a wick) and a measured-move target. None of them ever moves a point you placed, and a pattern that fits is a setup to study, not a signal. Every tool, grouped: [Drawing tools overview](https://www.skylit.ai/docs/atlas/drawing-tools/overview).

## XABCD pattern
A five-point harmonic pattern (Gartley, Bat, Butterfly, Crab and more) with its reversal zone.

![An XABCD pattern on the 9:55 low, 11:15 high, 12:25 low, 13:40 high and 14:20 low with its ratios on NQ 5m](https://www.skylit.ai/docs/images/atlas/drawing-tools/xabcd.light.webp)

*NQ 5m, Oct 15, 2026 · Atlas*

**How to place:** five clicks: X, A, B, C, then D. While you're placing D, the reversal zone (PRZ) shows where it should complete. Open **Analysis** from the drawing's toolbar to see the pattern name, bullish or bearish, a score out of 100, every ratio checked against its range, the PRZ and its width, a stop level beyond the pattern, and other patterns it also fits, with buttons to read it as one of those.

**Good for:** spotting where a pullback might complete on Fibonacci ratios, and checking whether the ratios really fit or you're forcing it.

**Example:** On NQ 5m (Oct 15, 2026), click X on the 9:55 low, A on the 11:15 high, B on the 12:25 low, C on the 13:40 high and D on the 14:20 low. The legs and their ratios print on the chart: B retraces 0.347 of XA, C runs to 1.266 of AB, CD is 0.749 of BC and D sits at 0.237 of XA. A B that shallow is outside what the classic harmonics ask for, so this is a good one to open **Analysis** on and see how the score and the closest named pattern read before you trust it.

**Settings**

| Setting | Options | What it does |
| --- | --- | --- |
| Pattern | **Auto (best fit)**, Gartley, Deep Gartley, Bat, Alt Bat, Butterfly, Crab, Deep Crab, Shark, 5-0, Cypher, Nen-Star, Leonardo, Navarro 200, and the Anti versions of Gartley, Bat, Butterfly, Crab and Nen-Star | Auto names the best fit. Pick one to grade and project against it. |
| Identify pattern | On or off, default **on** | Names the harmonic by its ratios. |
| Reversal zone (PRZ) | On or off, default **on**; opacity 0 to 40%, default **9%** | Shades where D should complete. |
| PRZ edges | Line role: show or hide, solid/dashed/dotted, width, opacity (default **dotted**, 1 px, 50%) | The zone's top and bottom. |
| PRZ levels | On or off, default **on**; line role (default **solid**, 1 px, 45%) | The XA level, BC projection and AB=CD inside the zone. |
| Fill | On or off, default **on**; opacity 0 to 40%, default **7%** | Shades the two triangles of the pattern. |
| Pattern legs | On or off, default **on** | The X-A-B-C-D line itself, styled by the style bar. |
| Ratios | On or off, default **on**; ratio lines (default **dotted**, 1 px, 60%) | The ratio readouts and their X to B, A to C, B to D and X to D connectors. |
| Point labels | On or off, default **on**; Look: Plain, Circle, Underline, Box (default **Plain**) | The X, A, B, C, D letters. |
| Letters | Default, ABC, abc (default **Default**) | Upper or lower case letters. |
| Other options | Letter size 8 to 28 px (default **10**), colour (**auto**) and opacity; ratio and PRZ text size 8 to 20 px (default **10**) and opacity | Fine-tunes the text. |

## ABCD pattern
The AB=CD pattern: two equal legs with a pullback between them.

![An ABCD pattern from the 11:15 high to the 14:20 low with AB=CD, 1.272 and 1.618 targets on NQ 5m](https://www.skylit.ai/docs/images/atlas/drawing-tools/abcd.light.webp)

*NQ 5m, Oct 15, 2026 · Atlas*

**How to place:** four clicks: A, B, C, then D. Once C is down, the targets show where D lands if CD is 1, 1.272 or 1.618 times AB. Open **Analysis** to see the ratio checks, the three target prices and how close the pattern is to a textbook AB=CD.

**Good for:** measured-move targets. If the second leg matches the first, you know roughly where it ends.

**Example:** On NQ 5m (Oct 15, 2026), click A on the 11:15 high, B on the 12:25 low, C on the 13:40 high and D on the 14:20 low. AB is 152.50 points, so the AB=CD line sits that far under C (about 29,950), with the 1.272 and 1.618 lines below it, and D lands right around the AB=CD line. The ratio readouts show BC at 1.266 of AB and CD at 0.749 of BC, and **Analysis** grades how close that is to a textbook AB=CD.

**Settings**

| Setting | Options | What it does |
| --- | --- | --- |
| D targets | On or off, default **on** | Shows where D lands for CD = 1, 1.272 and 1.618 × AB. |
| AB=CD target | Line role: show or hide, solid/dashed/dotted, width, opacity (default **solid**, 1 px, 75%) | The 1 to 1 target line. |
| 1.272 / 1.618 | Line role (default **dotted**, 1 px, 55%) | The extended target lines. |
| Grade AB=CD | On or off, default **on** | Grades how close the legs are to the textbook ratios. |
| Pattern legs | On or off, default **on** | The A-B-C-D line itself, styled by the style bar. |
| Ratios | On or off, default **on**; ratio lines (default **dotted**, 1 px, 60%) | The ratio readouts and their A to C and B to D connectors. |
| Point labels | On or off, default **on**; Look: Plain, Circle, Underline, Box (default **Plain**) | The A, B, C, D letters. |
| Letters | Default, ABC, abc (default **Default**) | Upper or lower case letters. |
| Other options | Letter size 8 to 28 px (default **10**), colour (**auto**) and opacity; ratio and target text size 8 to 20 px (default **10**) and opacity | Fine-tunes the text. |

## Head & shoulders
Head and shoulders (or the inverse), with the neckline and measured-move target.

![A head and shoulders top with the 15:45 high as the head, its rising neckline and measured move on NQ 5m](https://www.skylit.ai/docs/images/atlas/drawing-tools/headshoulders.light.webp)

*NQ 5m, Oct 15, 2026 · Atlas*

**How to place:** seven clicks: the start of the trend into the pattern, the left shoulder, the first neckline trough, the head, the second neckline trough, the right shoulder, then the break through the neckline. Each pivot snaps to the true bar high or low nearby. Open **Analysis** to see each rule checked with the measured numbers.

**Good for:** a topping (or bottoming) pattern with a clear trigger: the close through the neckline, and a target the height of the head projected from it.

**Example:** On NQ 5m (Oct 15, 2026), click the 12:25 low as the start, the 13:40 high as the left shoulder, the 14:20 low, the 15:45 high as the head, the late-day trough, the right shoulder after it, then the bar that closes under the neckline. The rising neckline is labelled 30,101.37 and the measured move projects to 29,866.83. The status chip reads "Head & shoulders top" with one broken rule, so open **Analysis** to see which check failed before you lean on the shape.

**Settings**

| Setting | Options | What it does |
| --- | --- | --- |
| Neckline | Line role: show or hide, solid/dashed/dotted, width, opacity (default **solid**, 1 px, 85%) | The line through the two troughs. |
| Neckline extent | Troughs, Pattern, Extend right (default **Pattern**) | How far the neckline draws. |
| Target | Line role (default **dashed**, 1 px, 85%) | The measured-move target level. |
| Measure legs | Line role (default **dotted**, 1 px, 55%) | The height being measured and its projection. |
| Target colour | Any colour, default **auto** | Auto is green for an upside target and red for a downside one. |
| Prices | On or off, default **on** | Price text on the target and neckline. |
| Fill | On or off, default **on**; opacity 0 to 40%, default **6%** | Shades the pattern. |
| Pattern legs | On or off, default **on** | The zigzag through your pivots, styled by the style bar. |
| Shoulder level tolerance | 1% to 60%, default **20%** | The most the shoulders can differ in price, as a % of the head height. A guideline, not a textbook number. |
| Time balance | 10% to 100%, default **50%** | The shorter side over the longer one, left shoulder to head versus head to right shoulder. 50% means one side is at most twice the other. |
| Status chip | On or off, default **on** | Shows the pattern name and rule check on the chart. |
| Other options | Snap pivots (**on**); point labels on, with look, letter case, size (default **12** px), colour and opacity; text size and opacity | Pivot snapping and label text. |

## Triangle pattern
A converging triangle (symmetrical, ascending or descending) with its breakout window and target.

![A triangle drawn on the 11:15 to 12:25 swings, which the rule check flags as Not a triangle because the sides run parallel, on NQ 5m](https://www.skylit.ai/docs/images/atlas/drawing-tools/trianglepat.light.webp)

*NQ 5m, Oct 15, 2026 · Atlas*

**How to place:** four to six clicks. Click touch A, then touch B on the other boundary, then C and D, alternating sides. After D you can add E and F, or finish: press Enter, double-click or tap the last point again. Each pivot snaps to the true bar high or low nearby. Open **Analysis** for the rule checks.

**Good for:** a squeeze that's about to resolve, with a window for when the break usually comes and a target for how far it might go.

**Example:** On NQ 5m (Oct 15, 2026), click A on the 11:15 high, B on the low after it, C on the next high and D on the 12:25 low, then press Enter. The status chip reads "Not a triangle" with two broken rules: the lower highs and lower lows run parallel, so the lines never meet and there's no apex, breakout window or target. That's the rule check doing its job, and this swing reads better as a falling channel or the flag further down this page.

**Settings**

| Setting | Options | What it does |
| --- | --- | --- |
| Boundaries | Line role: show or hide, solid/dashed/dotted, width, opacity (default **solid**, 1 px, 85%) | The two triangle lines. |
| To the apex | Line role (default **dotted**, 1 px, 50%) | The boundary extensions out to the apex. |
| Breakout window | On or off, default **on**; fill 0 to 40%, default **10%**; edges (default **dotted**, 50%) | Two thirds to three quarters of the way to the apex. |
| Target | Line role (default **dashed**, 1 px, 85%) | The measured-move target level. |
| Measure legs | Line role (default **dotted**, 1 px, 55%) | The height being measured and its projection. |
| Target colour | Any colour, default **auto** | Auto is green for an upside target and red for a downside one. |
| Prices | On or off, default **on** | Price text on the target and apex. |
| Fill | On or off, default **on**; opacity 0 to 40%, default **6%** | Shades the triangle. |
| Flat tolerance | 1% to 40%, default **10%** | A boundary moving less than this % of the pattern height reads as flat (ascending or descending triangle). |
| Touch tolerance | 1% to 60%, default **15%** | How far a middle touch may sit off its line, as a % of the height. |
| Status chip | On or off, default **on** | Shows the pattern name and rule check on the chart. |
| Other options | Pattern legs (**on**); snap pivots (**on**); point labels on, with look, letter case, size (default **11** px), colour and opacity; text size and opacity | The zigzag line, pivot snapping and label text. |

## Three drives
Three pushes in one direction, each extending the last correction, with a zone for where the third should end.

![A three drives pattern up from the 9:55 low to the 15:45 high, with the reversal and its targets on NQ 5m](https://www.skylit.ai/docs/images/atlas/drawing-tools/threedrives.light.webp)

*NQ 5m, Oct 15, 2026 · Atlas*

**How to place:** six or seven clicks: the start, drive 1, correction A, drive 2, correction B, then drive 3. While you place drive 3, the completion zone shows where it should end. Add a seventh point for the reversal, or finish after drive 3: press Enter, double-click or tap the last point again. Each pivot snaps to the true bar high or low nearby. Open **Analysis** for the ratio and symmetry checks.

**Good for:** spotting exhaustion at the end of a trend, when each new push is getting less follow-through.

**Example:** On NQ 5m (Oct 15, 2026), click the 9:55 low as the start, drive 1 on the 11:15 high, correction A on the 12:25 low, drive 2 on the 13:40 high, correction B on the 14:20 low, drive 3 on the 15:45 high and the late-day low for the reversal. The completion zone runs from 1.272 (30,145.77) to 1.618 (30,201.13) of correction B, and drive 3 tops inside it; the targets go back to B at 29,942.25 and A at 29,909.25. Correction A only retraces 0.347, well short of the textbook 0.618 to 0.786, so check **Analysis** before you call it a clean three drives.

**Settings**

| Setting | Options | What it does |
| --- | --- | --- |
| Completion zone | On or off, default **on**; fill 0 to 40%, default **10%**; edges (default **dotted**, 50%) | The 1.272 to 1.618 extension of the last correction. |
| Ratios | On or off, default **on**; ratio lines (default **dotted**, 1 px, 55%) | The ratio readouts and their connectors. |
| Target | Line role: show or hide, solid/dashed/dotted, width, opacity (default **dashed**, 1 px, 85%) | The measured-move target level. |
| Measure legs | Line role (default **dotted**, 1 px, 55%) | The height being measured and its projection. |
| Target colour | Any colour, default **auto** | Auto is green for an upside target and red for a downside one. |
| Prices | On or off, default **on** | Price text on the target. |
| Ratio tolerance | 0% to 25%, default **5%** | How far outside 0.618 to 0.786 and 1.272 to 1.618 a ratio may sit. |
| Time symmetry | 10% to 100%, default **50%** | The shorter over the longer of the paired drives and corrections. |
| Status chip | On or off, default **on** | Shows the pattern name and rule check on the chart. |
| Other options | Pattern legs (**on**); snap pivots (**on**); point labels on, with look, letter case, size (default **12** px), colour and opacity; text size and opacity | The zigzag line, pivot snapping and label text. |

## Double / triple top & bottom
Two or three tests of the same level, with the confirmation line and target.

![A double bottom at the 11:25 and 12:25 lows, confirmed on the break of the peak, with its measured move on NQ 5m](https://www.skylit.ai/docs/images/atlas/drawing-tools/doubletop.light.webp)

*NQ 5m, Oct 15, 2026 · Atlas*

**How to place:** four to seven clicks: the start of the trend into the pattern, the first top (or bottom), the trough (or peak) between them, the second top. Then either click the break, or a third top for a triple, followed by the break. To finish early, press Enter, double-click or tap the last point again. Each pivot snaps to the true bar high or low nearby. Open **Analysis** for the rule checks.

**Good for:** a level that's been tested and held twice, with a clear line that confirms the turn when it breaks.

**Example:** On NQ 5m (Oct 15, 2026), this one's drawn as a double bottom: click the 11:15 high as the start, the 11:25 low (B1), the peak between at 30,037.25, the 12:25 low (B2), then the bar that closes above the peak. The status chip reads "Double bottom" confirmed, and the measured move projects the pattern's height above the peak to 30,165.25. The confirmation line through the peak is the level the whole read hangs on.

**Settings**

| Setting | Options | What it does |
| --- | --- | --- |
| Confirmation line | Line role: show or hide, solid/dashed/dotted, width, opacity (default **solid**, 1 px, 85%) | Through the trough (the lowest trough of a triple). |
| Target | Line role (default **dashed**, 1 px, 85%) | The measured-move target level. |
| Measure legs | Line role (default **dotted**, 1 px, 55%) | The height being measured and its projection. |
| Target colour | Any colour, default **auto** | Auto is green for an upside target and red for a downside one. |
| Prices | On or off, default **on** | Price text on the target and confirmation line. |
| Fill | On or off, default **on**; opacity 0 to 40%, default **6%** | Shades the pattern. |
| Level tolerance | 0.5% to 60%, default **15%** | The most the tops (or bottoms) can differ. |
| Tolerance of | Pattern height, Price (default **Pattern height**) | What the tolerance is a % of. Pattern height scales to any timeframe; price is the usual basis on daily charts. |
| Min. separation | 1 to 1000 bars, default **10** | Bars between the tops. A guideline. |
| Status chip | On or off, default **on** | Shows the pattern name and rule check on the chart. |
| Other options | Pattern legs (**on**); snap pivots (**on**); point labels on, with look, letter case, size (default **12** px), colour and opacity; text size and opacity | The zigzag line, pivot snapping and label text. |

## Rising / falling wedge
Two converging boundaries sloping the same way, with the target.

![A wedge drawn on the 12:25 low, 13:40 high, 14:20 low and 15:45 high on NQ 5m](https://www.skylit.ai/docs/images/atlas/drawing-tools/wedgepat.light.webp)

*NQ 5m, Oct 15, 2026 · Atlas*

**How to place:** four or five clicks. Click touch A, then touch B on the other boundary, then C and D, alternating sides. Add E, or finish after D: press Enter, double-click or tap the last point again. Each pivot snaps to the true bar high or low nearby. Open **Analysis** for the rule checks.

**Good for:** a trend that's still making new highs (or lows) but with less and less room, which often comes before a turn.

**Example:** On NQ 5m (Oct 15, 2026), click A on the 12:25 low, B on the 13:40 high, C on the 14:20 low and D on the 15:45 high, then press Enter. Higher highs and higher lows, but here the upper line is steeper than the lower one, so the boundaries spread apart instead of squeezing together. A textbook rising wedge needs the lows rising faster, so open **Analysis** to see how the rule checks read this one rather than assuming it's a wedge.

**Settings**

| Setting | Options | What it does |
| --- | --- | --- |
| Boundaries | Line role: show or hide, solid/dashed/dotted, width, opacity (default **solid**, 1 px, 85%) | The two wedge lines. |
| To the apex | Line role (default **dotted**, 1 px, 50%) | The boundary extensions out to the apex. |
| Target | Line role (default **dashed**, 1 px, 85%) | The measured-move target level. |
| Measure legs | Line role (default **dotted**, 1 px, 55%) | The height being measured and its projection. |
| Target colour | Any colour, default **auto** | Auto is green for an upside target and red for a downside one. |
| Prices | On or off, default **on** | Price text on the target and apex. |
| Fill | On or off, default **on**; opacity 0 to 40%, default **6%** | Shades the wedge. |
| Flat tolerance | 1% to 40%, default **10%** | A boundary moving less than this % of the pattern height reads as flat. |
| Touch tolerance | 1% to 60%, default **15%** | How far a middle touch may sit off its line, as a % of the height. |
| Status chip | On or off, default **on** | Shows the pattern name and rule check on the chart. |
| Other options | Pattern legs (**on**); snap pivots (**on**); point labels on, with look, letter case, size (default **11** px), colour and opacity; text size and opacity | The zigzag line, pivot snapping and label text. |

## Flag / pennant
A sharp pole followed by a tight pause, with the target the pole's length away.

![A bull flag: the pole from the 9:55 low to the 11:15 high and the flag down to the 12:25 low on NQ 5m](https://www.skylit.ai/docs/images/atlas/drawing-tools/flagpat.light.webp)

*NQ 5m, Oct 15, 2026 · Atlas*

**How to place:** four or five clicks: the pole start, the pole end (where the flag begins), the flag's first pullback, its next swing, and optionally its last swing. To finish after four, press Enter, double-click or tap the last point again. Each pivot snaps to the true bar high or low nearby. Open **Analysis** to see whether it reads as a flag or a pennant and how it checks out.

**Good for:** continuation after a strong move. The pause holds shallow, then the trend picks back up.

**Example:** On NQ 5m (Oct 15, 2026), click the 9:55 low as the pole start, the 11:15 high as the pole end, then the flag's swings down to the 12:25 low. The pole reads +439.25, the flag pulls back about 152 points (well under half the pole) between two parallel lines, and the chip reads "Bull flag" confirmed. The target sits one pole length from the breakout, which is off the top of this view.

**Settings**

| Setting | Options | What it does |
| --- | --- | --- |
| Flag boundaries | Line role: show or hide, solid/dashed/dotted, width, opacity (default **solid**, 1 px, 85%) | The lines around the flag. |
| Extension | Line role (default **dotted**, 1 px, 50%) | The boundaries extended ahead. |
| Target | Line role (default **dashed**, 1 px, 85%) | The measured-move target level. |
| Measure legs | Line role (default **dotted**, 1 px, 55%) | The height being measured and its projection. |
| Target colour | Any colour, default **auto** | Auto is green for an upside target and red for a downside one. |
| Prices | On or off, default **on** | Price text on the target. |
| Fill | On or off, default **on**; opacity 0 to 40%, default **6%** | Shades the flag. |
| Parallel tolerance | 1% to 80%, default **25%** | How much the flag's height can change and still read as parallel (a flag). More squeeze than that reads as a pennant. |
| Max. pullback | 10% to 100%, default **50%** | The deepest pullback into the pole that still reads as a flag. 50% is a common guideline. |
| Sideways tolerance | 1% to 40%, default **10%** | How flat the flag can be and still count. |
| Status chip | On or off, default **on** | Shows the pattern name and rule check on the chart. |
| Other options | Pattern legs (**on**); snap pivots (**on**); text size 8 to 20 px (default **10.5**) and opacity | The zigzag line, pivot snapping and text. |

## 5-0 pattern
A six-point harmonic that completes at 50% of the BC leg.

![A 5-0 pattern from the 9:55 low through the day swings to the 15:45 high, with its PRZ box on NQ 5m](https://www.skylit.ai/docs/images/atlas/drawing-tools/fiveo.light.webp)

*NQ 5m, Oct 15, 2026 · Atlas*

**How to place:** six clicks: 0 (the start of the move), X, A, B, C, then D. B should sit at 1.13 to 1.618 of XA, C at 1.618 to 2.24 of AB, and D at 50% of BC with the reciprocal AB=CD. Open **Analysis** for the grade, the ratio checks and the two PRZ prices.

**Good for:** catching the first pullback after a trend has reversed, where the 50% of the last leg and the reciprocal AB=CD line up.

**Example:** On NQ 5m (Oct 15, 2026), click 0 on the 9:55 low, X on the 11:15 high, A on the 12:25 low, B on the 13:40 high, C on the 14:20 low and D on the 15:45 high. B lands at 1.266 of XA, inside the 1.13 to 1.618 the rules ask for, and the PRZ runs from 30,030.00 (50% of BC) to 30,150.75 (the reciprocal AB=CD). D at the 15:45 high runs well past the top of that zone, so this one doesn't complete the way a textbook 5-0 should; **Analysis** shows the grade and every ratio check.

**Settings**

| Setting | Options | What it does |
| --- | --- | --- |
| Grade 5-0 | On or off, default **on** | Grades the pattern against the 5-0 ratios. |
| Reversal zone (PRZ) | On or off, default **on**; opacity 0 to 40%, default **9%** | 50% of BC plus the reciprocal AB=CD. |
| PRZ edges | Line role: show or hide, solid/dashed/dotted, width, opacity (default **dotted**, 1 px, 50%) | The zone's top and bottom. |
| PRZ levels | On or off, default **on**; line role (default **solid**, 1 px, 45%) | The levels inside the zone. |
| Fill | On or off, default **on**; opacity 0 to 40%, default **7%** | Shades the pattern. |
| Pattern legs | On or off, default **on** | The 0-X-A-B-C-D line itself, styled by the style bar. |
| Ratios | On or off, default **on**; ratio lines (default **dotted**, 1 px, 60%) | The ratio readouts and their X to B, A to C and B to D connectors. |
| Point labels | On or off, default **on**; Look: Plain, Circle, Underline, Box (default **Plain**) | The point letters. |
| Letters | Default, ABC, abc (default **Default**) | Upper or lower case letters. |
| Other options | Letter size 8 to 28 px (default **10**), colour (**auto**) and opacity; ratio and PRZ text size 8 to 20 px (default **10**) and opacity | Fine-tunes the text. |
