Every result, read before it lands. Judged after.
Sign in
NIFTY 50 22,776.10 +0.98% NIFTY BANK 55,128.40 +0.76% NIFTY IT 28,136.05 -0.59% NIFTY MIDCAP 100 59,761.20 +1.08% NIFTY SMALLCAP 100 19,448.70 +1.56% NIFTY AUTO 25,541.95 +0.47% NIFTY PHARMA 26,549.60 +1.66% NIFTY FMCG 45,205.35 +1.40%
Closed Close 6 Oct

Patterns

Every pattern here is a rule over stored candles, written out step by step below. Pick a name and a candle size, then one pattern to test — or let the library look for anything in progress. A hit is an observation of what the candles just did; what followed the earlier hits on the same name is counted and shown beside it, every hit included. For what the candles in progress say about the coming hours and days, open the outlook; to be told when a pattern completes, sign in and tap Alert me on any card.

Test a name

Sign in to sweep your whole watchlist in one go.

Defaults shown are for weekly candles; change the candle size and re-test to see that size's defaults. Intraday candles exist only for names on a reader's watchlist, from the day they were added; daily candles go back to 2021.

Fermenta Biotech Limited · FERMENTA · weekly candles

25 candles on file from 20 Apr 2026 as of the close of 5 Oct 2026 last close ₹569.45 judged 4 candles after each hit the outlook for the coming hours and days →

The candles, with the hits marked

last 25 of 25 · shaded = the formation · triangle = the candle it completed on · dashed = a level the latest hit named
581.6249.9569.5 last20 Apr 202613 Jul 20265 Oct 202620 Apr 2026 O 310.1 H 330.0 L 308.0 C 318.427 Apr 2026 O 323.5 H 324.0 L 308.0 C 311.14 May 2026 O 315.0 H 315.0 L 248.9 C 288.711 May 2026 O 288.0 H 298.8 L 278.5 C 292.718 May 2026 O 295.1 H 314.9 L 285.1 C 301.525 May 2026 O 312.0 H 312.0 L 285.0 C 295.71 Jun 2026 O 297.2 H 345.0 L 293.8 C 335.28 Jun 2026 O 335.2 H 356.9 L 321.1 C 338.415 Jun 2026 O 340.0 H 350.0 L 316.0 C 337.222 Jun 2026 O 338.0 H 376.0 L 334.1 C 366.429 Jun 2026 O 372.0 H 376.0 L 336.8 C 343.06 Jul 2026 O 347.9 H 415.0 L 345.9 C 411.813 Jul 2026 O 415.0 H 479.5 L 413.2 C 432.720 Jul 2026 O 434.6 H 450.0 L 388.6 C 432.127 Jul 2026 O 436.7 H 507.9 L 436.7 C 501.43 Aug 2026 O 505.1 H 568.0 L 505.1 C 560.610 Aug 2026 O 560.6 H 580.5 L 442.0 C 450.117 Aug 2026 O 450.0 H 481.0 L 436.2 C 478.424 Aug 2026 O 482.0 H 519.9 L 456.1 C 509.931 Aug 2026 O 509.9 H 537.8 L 477.8 C 498.57 Sep 2026 O 502.0 H 511.0 L 471.0 C 474.714 Sep 2026 O 478.0 H 479.0 L 450.0 C 474.221 Sep 2026 O 474.4 H 511.7 L 460.0 C 468.428 Sep 2026 O 470.0 H 575.1 L 426.3 C 553.35 Oct 2026 O 558.9 H 582.7 L 546.1 C 569.5553.3 previous closeweek of 05 Oct 2026week of 28 Sep 2026week of 28 Sep 2026week of 31 Aug 2026week of 17 Aug 2026

In progress now Gap at the open · Runs, breaks and structure · reading up

7 hits in 25 candles · test this one alone Sign in to be alerted

Hit on the latest weekly candle — week of 05 Oct 2026

Gap at the open completed on the candle that closed at week of 05 Oct 2026, an up reading. That is the newest candle on file, so this is in progress now.

What the candles did

Opened at 558.85, +1.01% above the previous close of 553.25.

What this pattern is taken to mean

The session opened at least X% away from the previous close. Read as news or flow arriving overnight.

What followed on this name's own record

After 6 earlier hits on this name's weekly candles, the close 4 weeks later went the hit's way 5 times of 6 (83%). Median move in the hit's direction +20.00%; best +46.17%, worst -4.93%. Within the window the move typically reached +23.33% in the hit's favour and -4.58% against it.

An observation from stored candles, not advice. Nothing here is a forecast; the decision, and the risk, are yours.

The rule, exactly as checked · pct = 1
  1. At the first candle of each session, compare its open with the last close of the previous session.
  2. Gap % = open / previous close − 1.
  3. The pattern completes when |gap %| ≥ pct; direction is the gap's sign.
  4. On daily candles this is simply open vs the previous day's close.
The last 7 hits on this name
  • week of 05 Oct 2026 up Opened at 558.85, +1.01% above the previous close of 553.25.
  • week of 27 Jul 2026 up Opened at 436.70, +1.08% above the previous close of 432.05.
  • week of 06 Jul 2026 up Opened at 347.90, +1.43% above the previous close of 343.00.
  • week of 29 Jun 2026 up Opened at 372.00, +1.54% above the previous close of 366.35.
  • week of 25 May 2026 up Opened at 312.00, +3.50% above the previous close of 301.45.
  • week of 04 May 2026 up Opened at 314.95, +1.25% above the previous close of 311.05.
  • week of 27 Apr 2026 up Opened at 323.45, +1.59% above the previous close of 318.40.

In progress now Move of X% within M candles · Runs, breaks and structure · reading up

7 hits in 25 candles · test this one alone Sign in to be alerted

Hit on the latest weekly candle — week of 05 Oct 2026

Move of X% within M candles has held from the candle of week of 28 Sep 2026 through the newest one on file (2 weeks), an up reading. It is in progress now.

What the candles did

+16.56% in the last 3 candles, 474.65 to 553.25.

What this pattern is taken to mean

A fast move: the close is at least X% away from where it was M candles ago. Read as a burst of one-sided flow.

What followed on this name's own record

After 5 earlier hits on this name's weekly candles, the close 4 weeks later went the hit's own way (up after an up reading, down after a down one) 4 times of 5 (80%). Median move in the hit's direction +10.98%; best +36.13%, worst -15.62%. Within the window the move typically reached +15.37% in the hit's favour and -12.42% against it.

An observation from stored candles, not advice. Nothing here is a forecast; the decision, and the risk, are yours.

The rule, exactly as checked · pct = 2, candles = 3
  1. For each candle, take the close M candles earlier.
  2. Move % = close now / close then − 1.
  3. The pattern completes when |move %| ≥ pct; direction is the sign.
  4. Consecutive candles that all qualify in the same direction count once, at the first of them.
The last 7 hits on this name
  • week of 28 Sep 2026 up +16.56% in the last 3 candles, 474.65 to 553.25.
  • week of 14 Sep 2026 down -7.01% in the last 3 candles, 509.90 to 474.15.
  • week of 31 Aug 2026 up +10.77% in the last 3 candles, 450.05 to 498.50.
  • week of 17 Aug 2026 down -4.59% in the last 3 candles, 501.35 to 478.35.
  • week of 06 Jul 2026 up +22.12% in the last 3 candles, 337.20 to 411.80.
  • week of 25 May 2026 up +2.44% in the last 3 candles, 288.65 to 295.70.
  • week of 11 May 2026 down -8.09% in the last 3 candles, 318.40 to 292.65.

Just hit Volume spike · Indicator-based · reading up

1 hit in 25 candles · test this one alone Sign in to be alerted

Hit 1 week ago — week of 28 Sep 2026

Volume spike completed on the weekly candle of week of 28 Sep 2026, an up reading, 1 week before the latest one (which closed at week of 05 Oct 2026 at 569.45). Since the hit the close has moved +2.93%.

What the candles did

Volume 6.8× the average of the previous 20 candles (6,546,741 vs 956,429), on an up candle.

What this pattern is taken to mean

One candle traded many times the recent average volume. Read as attention arriving; the candle's colour says which way it leaned.

What followed on this name's own record

No earlier hit on this name's weekly candles has a full 4 weeks after it yet, so there is nothing to count.

An observation from stored candles, not advice. Nothing here is a forecast; the decision, and the risk, are yours.

The rule, exactly as checked · times = 3, candles = 20
  1. Average the volume of the previous M candles (those that reported one).
  2. The pattern completes when this candle's volume ≥ times × that average.
  3. Direction is the candle's own: up if it closed above its open, down if below, neutral if flat.
The last 1 hit on this name
  • week of 28 Sep 2026 up Volume 6.8× the average of the previous 20 candles (6,546,741 vs 956,429), on an up candle.

Just hit Trend line: slope, length, strength · Trend and waves · reading up

1 hit in 25 candles · test this one alone Sign in to be alerted

Hit 3 weeks ago — week of 14 Sep 2026

Trend line: slope, length, strength completed on the weekly candle of week of 31 Aug 2026, an up reading, 3 weeks before the latest one (which closed at week of 05 Oct 2026 at 569.45). It held for 3 weeks, through week of 14 Sep 2026. Since the hit the close has moved +20.10%.

What the candles did

Over the last 20 candles the fitted line rises 3.42% per candle with R² 0.83; 17 candles since the low of the window, +72.70% from it, but the last close has slipped from the line.

Where it stands on the latest candle

Slope +2.77% per candle (up), R² 0.77 (choppy), 19 candles from the window's low, +92.58% from it; the last close is with the line.

What this pattern is taken to mean

The straight-line fit through the last N closes: how steep, how long, how clean. This is the slope/length/strength reading (R6) and a version of the 20-candle rule that fires on a clean run even when one close in the middle dipped.

What followed on this name's own record

Only 1 earlier hit on this name's weekly candles with 4 weeks after them — too few to say what usually follows. For what it is worth: the close 4 weeks later went the hit's way 1 of 1 times, median move +10.98%.

An observation from stored candles, not advice. Nothing here is a forecast; the decision, and the risk, are yours.

The rule, exactly as checked · n = 20, min_slope_pct = 0.25, min_r2 = 0.8
  1. Fit a least-squares line through the last N closes (x = candle index).
  2. Slope % = slope / mean close × 100, per candle. R² = share of the variance the line explains (1 = a ruler, 0 = chop).
  3. Length = candles since the window's low (for a rising line) or high (falling). Magnitude = % from that extreme to the last close.
  4. Continuing = the last close is on the slope's side of the fitted line, or the last three closes all moved with the slope.
  5. The pattern completes when |slope %| ≥ min_slope_pct and R² ≥ min_r2; consecutive qualifying candles count once, at the first.
  6. Progress always reports the current slope, R², length, magnitude and whether it is continuing.
The last 1 hit on this name
  • week of 31 Aug 2026 up Over the last 20 candles the fitted line rises 3.42% per candle with R² 0.83; 17 candles since the low of the window, +72.70% from it, but the last close has slipped from the line.

Building Impulse wave (five swings, Elliott-style) · Trend and waves · reading up

2 hits in 25 candles · test this one alone Sign in to be alerted

Last seen week of 17 Aug 2026

The most recent hit of Impulse wave (five swings, Elliott-style) on the weekly candles completed at week of 17 Aug 2026, 7 weeks ago, an up reading. It is not in progress now. Since then the close has moved +19.04% to 569.45.

What the candles did

Five swings up: 1 316.00→375.95, 2 back to 336.80 (above where 1 began), 3 to 479.45, 4 back to 388.55 (above the top of 1), 5 to 580.45; wave 3 is not the shortest.

Where it stands on the latest candle

Counting up: waves 1–2 confirmed, wave 3 under way (the current swing has not yet reversed by 4%). Pivots so far 436.20, 537.75, 450.00, 582.65.

What this pattern is taken to mean

Five alternating swings that obey the three classical impulse rules. A count, not a prophecy: the same swings can be counted more than one way, and this is the plain mechanical reading.

What followed on this name's own record

Only 2 earlier hits on this name's weekly candles with 4 weeks after them — too few to say what usually follows. For what it is worth: the close 4 weeks later went the hit's way 1 of 2 times, median move +22.64%.

An observation from stored candles, not advice. Nothing here is a forecast; the decision, and the risk, are yours.

The rule, exactly as checked · swing_pct = 4
  1. Find swings with the zigzag at swing_pct.
  2. Take six consecutive confirmed pivots L-H-L-H-L-H (up) or H-L-H-L-H-L (down).
  3. Rule 1: wave 2 does not retrace past the start of wave 1.
  4. Rule 2: wave 3 is not the shortest of waves 1, 3 and 5.
  5. Rule 3: wave 4 does not enter the price territory of wave 1.
  6. Each wave must make progress: 3 beyond 1, 5 beyond 3.
  7. The pattern completes when the sixth pivot is confirmed. Progress reports 'wave 5 under way' when the first five pivots hold and the live swing is the fifth wave.
The last 2 hits on this name
  • week of 17 Aug 2026 up Five swings up: 1 316.00→375.95, 2 back to 336.80 (above where 1 began), 3 to 479.45, 4 back to 388.55 (above the top of 1), 5 to 580.45; wave 3 is not the shortest.
  • week of 29 Jun 2026 up Five swings up: 1 248.85→314.85, 2 back to 285.00 (above where 1 began), 3 to 356.85, 4 back to 316.00 (above the top of 1), 5 to 375.95; wave 3 is not the shortest.

Quiet Higher highs and higher lows · Runs, breaks and structure · reading up

7 hits in 25 candles · test this one alone Sign in to be alerted

Last seen week of 24 Aug 2026

The most recent hit of Higher highs and higher lows on the weekly candles completed at week of 24 Aug 2026, 6 weeks ago, an up reading. It is not in progress now. Since then the close has moved +11.68% to 569.45.

What the candles did

2 higher highs and higher lows on swings of at least 3%: lows 336.80, 388.55, 436.20; highs 479.45, 580.45.

What this pattern is taken to mean

Uptrend structure: each swing high above the last and each swing low above the last. Read as a trend that is still being confirmed by its pullbacks.

What followed on this name's own record

After 7 earlier hits on this name's weekly candles, the close 4 weeks later went the hit's way 5 times of 7 (71%). Median move in the hit's direction +10.72%; best +46.17%, worst -8.14%. Within the window the move typically reached +30.87% in the hit's favour and -5.93% against it.

An observation from stored candles, not advice. Nothing here is a forecast; the decision, and the risk, are yours.

The rule, exactly as checked · swings = 2, swing_pct = 3
  1. Find swing highs and lows with the zigzag: a pivot is confirmed once price has moved swing_pct against it.
  2. Take every window of 2×swings+1 consecutive confirmed pivots.
  3. Require each swing high in the window above the previous swing high, and each swing low above the previous swing low.
  4. The pattern completes on the candle where the last pivot in the window was confirmed.
  5. The last swing low is reported as the level the structure stands on.
The last 7 hits on this name
  • week of 24 Aug 2026 up 2 higher highs and higher lows on swings of at least 3%: lows 336.80, 388.55, 436.20; highs 479.45, 580.45.
  • week of 17 Aug 2026 up 2 higher highs and higher lows on swings of at least 3%: lows 336.80, 388.55; highs 375.95, 479.45, 580.45.
  • week of 27 Jul 2026 up 2 higher highs and higher lows on swings of at least 3%: lows 316.00, 336.80, 388.55; highs 375.95, 479.45.
  • week of 20 Jul 2026 up 2 higher highs and higher lows on swings of at least 3%: lows 316.00, 336.80; highs 356.85, 375.95, 479.45.
  • week of 06 Jul 2026 up 2 higher highs and higher lows on swings of at least 3%: lows 285.00, 316.00, 336.80; highs 356.85, 375.95.
  • week of 29 Jun 2026 up 2 higher highs and higher lows on swings of at least 3%: lows 285.00, 316.00; highs 314.85, 356.85, 375.95.
  • week of 22 Jun 2026 up 2 higher highs and higher lows on swings of at least 3%: lows 248.85, 285.00, 316.00; highs 314.85, 356.85.

Quiet Doji · Single-candle shapes · reading neutral

3 hits in 25 candles · test this one alone Sign in to be alerted

Last seen week of 20 Jul 2026

The most recent hit of Doji on the weekly candles completed at week of 20 Jul 2026, 11 weeks ago, a neutral reading. It is not in progress now. Since then the close has moved +31.80% to 569.45.

What the candles did

Body 2.55 is 4% of the 61.40 range: open 434.60, close 432.05, high 449.95, low 388.55.

What this pattern is taken to mean

Open and close almost equal: the candle ranged but ended where it began. Read as indecision.

What followed on this name's own record

Only 3 earlier hits on this name's weekly candles with 4 weeks after them — too few to say what usually follows. For what it is worth: the close 4 weeks later was higher 3 of 3 times, median move +21.71%.

An observation from stored candles, not advice. Nothing here is a forecast; the decision, and the risk, are yours.

The rule, exactly as checked · body_pct = 10
  1. Body = |close − open|; range = high − low.
  2. The pattern completes when range > 0 and body ≤ body_pct of the range.
The last 3 hits on this name
  • week of 20 Jul 2026 neutral Body 2.55 is 4% of the 61.40 range: open 434.60, close 432.05, high 449.95, low 388.55.
  • week of 15 Jun 2026 neutral Body 2.80 is 8% of the 34.00 range: open 340.00, close 337.20, high 350.00, low 316.00.
  • week of 08 Jun 2026 neutral Body 3.20 is 9% of the 35.80 range: open 335.15, close 338.35, high 356.85, low 321.05.

Quiet Inside bar, then a breakout · Runs, breaks and structure · reading up

2 hits in 25 candles · test this one alone Sign in to be alerted

Last seen week of 06 Jul 2026

The most recent hit of Inside bar, then a breakout on the weekly candles completed at week of 06 Jul 2026, 13 weeks ago, an up reading. It is not in progress now. Since then the close has moved +38.28% to 569.45.

What the candles did

An inside candle (336.80–375.95) within the one before it (334.05–375.95), then a close at 411.80 above that range.

What this pattern is taken to mean

A candle whose whole range sat inside the one before it (a pause), then a close outside the mother candle's range. Read as a pause resolving.

What followed on this name's own record

Only 2 earlier hits on this name's weekly candles with 4 weeks after them — too few to say what usually follows. For what it is worth: the close 4 weeks later went the hit's way 1 of 2 times, median move +26.12%.

An observation from stored candles, not advice. Nothing here is a forecast; the decision, and the risk, are yours.

The rule, exactly as checked
  1. Take three consecutive candles: mother, inside, break.
  2. Inside: its high ≤ mother high and its low ≥ mother low.
  3. The pattern completes when the third candle closes above the mother high (up) or below the mother low (down).
The last 2 hits on this name
  • week of 06 Jul 2026 up An inside candle (336.80–375.95) within the one before it (334.05–375.95), then a close at 411.80 above that range.
  • week of 04 May 2026 down An inside candle (308.00–324.00) within the one before it (308.00–330.00), then a close at 288.65 below that range.

Quiet Marubozu · Single-candle shapes · reading up

2 hits in 25 candles · test this one alone Sign in to be alerted

Last seen week of 27 Jul 2026

The most recent hit of Marubozu on the weekly candles completed at week of 27 Jul 2026, 10 weeks ago, an up reading. It is not in progress now. Since then the close has moved +13.58% to 569.45.

What the candles did

Body 64.65 is 91% of the range: opened near the low and closed near the high (436.70→501.35).

What this pattern is taken to mean

Almost no wicks: the candle opened at one end of its range and closed at the other. Read as one side in control for the whole candle.

What followed on this name's own record

Only 2 earlier hits on this name's weekly candles with 4 weeks after them — too few to say what usually follows. For what it is worth: the close 4 weeks later went the hit's way 2 of 2 times, median move +18.92%.

An observation from stored candles, not advice. Nothing here is a forecast; the decision, and the risk, are yours.

The rule, exactly as checked · body_pct = 90
  1. Body = |close − open|; range = high − low.
  2. The pattern completes when range > 0 and body ≥ body_pct of the range.
  3. Direction is the candle's colour.
The last 2 hits on this name
  • week of 27 Jul 2026 up Body 64.65 is 91% of the range: opened near the low and closed near the high (436.70→501.35).
  • week of 06 Jul 2026 up Body 63.90 is 92% of the range: opened near the low and closed near the high (347.90→411.80).

Quiet Lower highs and lower lows · Runs, breaks and structure · reading down

1 hit in 25 candles · test this one alone Sign in to be alerted

Last seen week of 25 May 2026

The most recent hit of Lower highs and lower lows on the weekly candles completed at week of 25 May 2026, 19 weeks ago, a down reading. It is not in progress now. Since then the close has moved +92.58% to 569.45.

What the candles did

2 lower highs and lower lows on swings of at least 3%: lows 308.00, 248.85; highs 330.00, 324.00, 314.85.

What this pattern is taken to mean

Downtrend structure: each swing high below the last and each swing low below the last.

What followed on this name's own record

Only 1 earlier hit on this name's weekly candles with 4 weeks after them — too few to say what usually follows. For what it is worth: the close 4 weeks later went the hit's way 0 of 1 times, median move +23.89%.

An observation from stored candles, not advice. Nothing here is a forecast; the decision, and the risk, are yours.

The rule, exactly as checked · swings = 2, swing_pct = 3
  1. Find swing highs and lows with the zigzag (pivot confirmed after a swing_pct move against it).
  2. Take every window of 2×swings+1 consecutive confirmed pivots.
  3. Require each swing high below the previous swing high, and each swing low below the previous swing low.
  4. The pattern completes on the candle where the last pivot was confirmed.
  5. The last swing high is reported as the level the structure hangs from.
The last 1 hit on this name
  • week of 25 May 2026 down 2 lower highs and lower lows on swings of at least 3%: lows 308.00, 248.85; highs 330.00, 324.00, 314.85.

Quiet Bearish engulfing · Multi-candle shapes · reading down

1 hit in 25 candles · test this one alone Sign in to be alerted

Last seen week of 10 Aug 2026

The most recent hit of Bearish engulfing on the weekly candles completed at week of 10 Aug 2026, 8 weeks ago, a down reading. It is not in progress now. Since then the close has moved +26.53% to 569.45.

What the candles did

An up candle (505.05→560.60) followed by a down candle (560.60→450.05) whose body covers it, after +46.17% over the 5 candles before.

What this pattern is taken to mean

An up candle followed by a down candle whose body covers it, after a rise.

What followed on this name's own record

Only 1 earlier hit on this name's weekly candles with 4 weeks after them — too few to say what usually follows. For what it is worth: the close 4 weeks later went the hit's way 0 of 1 times, median move +5.47%.

An observation from stored candles, not advice. Nothing here is a forecast; the decision, and the risk, are yours.

The rule, exactly as checked · context = 5
  1. Take two consecutive candles.
  2. First closes above its open; second closes below its open.
  3. Second's open ≥ first's close and second's close ≤ first's open.
  4. Context: the net move over the `context` candles before the pair is positive (set 0 to skip).
The last 1 hit on this name
  • week of 10 Aug 2026 down An up candle (505.05→560.60) followed by a down candle (560.60→450.05) whose body covers it, after +46.17% over the 5 candles before.

Quiet Morning star · Multi-candle shapes · reading up

1 hit in 25 candles · test this one alone Sign in to be alerted

Last seen week of 24 Aug 2026

The most recent hit of Morning star on the weekly candles completed at week of 24 Aug 2026, 6 weeks ago, an up reading. It is not in progress now. Since then the close has moved +11.68% to 569.45.

What the candles did

A long down candle (560.60→450.05), a small-bodied candle, then an up candle closing at 509.90, above the first candle's midpoint 505.33.

What this pattern is taken to mean

A long down candle, a small-bodied candle, then an up candle closing above the midpoint of the first. Read as a decline stalling and turning.

What followed on this name's own record

Only 1 earlier hit on this name's weekly candles with 4 weeks after them — too few to say what usually follows. For what it is worth: the close 4 weeks later went the hit's way 0 of 1 times, median move -8.14%.

An observation from stored candles, not advice. Nothing here is a forecast; the decision, and the risk, are yours.

The rule, exactly as checked · small_pct = 30
  1. Take three consecutive candles.
  2. First: a down candle with a body at least the average body of the ten candles before it.
  3. Second: a body no bigger than small_pct of the first's body.
  4. Third: an up candle closing above the midpoint of the first candle's body.
The last 1 hit on this name
  • week of 24 Aug 2026 up A long down candle (560.60→450.05), a small-bodied candle, then an up candle closing at 509.90, above the first candle's midpoint 505.33.

Quiet Shooting star · Single-candle shapes · reading down

1 hit in 25 candles · test this one alone Sign in to be alerted

Last seen week of 13 Jul 2026

The most recent hit of Shooting star on the weekly candles completed at week of 13 Jul 2026, 12 weeks ago, a down reading. It is not in progress now. Since then the close has moved +31.62% to 569.45.

What the candles did

Upper wick 46.80 is 2.7× the body, the lower wick is 3% of the range, after +21.71% over the 5 candles before; high 479.45, close 432.65.

What this pattern is taken to mean

A long upper wick and a small body near the bottom, after a rise: the candle went well above and was pushed back down. Read as a high being rejected.

What followed on this name's own record

Only 1 earlier hit on this name's weekly candles with 4 weeks after them — too few to say what usually follows. For what it is worth: the close 4 weeks later went the hit's way 0 of 1 times, median move +4.02%.

An observation from stored candles, not advice. Nothing here is a forecast; the decision, and the risk, are yours.

The rule, exactly as checked · wick_times = 2, other_wick_pct = 15, context = 5
  1. Upper wick ≥ wick_times × body.
  2. Lower wick ≤ other_wick_pct of the range.
  3. Context: the net move over the `context` candles before is positive (set 0 to skip).
  4. The wick's high is reported as the level rejected.
The last 1 hit on this name
  • week of 13 Jul 2026 down Upper wick 46.80 is 2.7× the body, the lower wick is 3% of the range, after +21.71% over the 5 candles before; high 479.45, close 432.65.

Quiet N consecutive rising candles · Runs, breaks and structure · reading up

0 hits in 25 candles · test this one alone Sign in to be alerted

Not seen on the weekly candles on file

N consecutive rising candles did not complete anywhere in the 25 weekly candles stored for this name (from week of 20 Apr 2026 to week of 05 Oct 2026).

Where it stands on the latest candle

2 rising closes in a row so far (+21.57%); the rule wants 5.

What this pattern is taken to mean

A momentum run: every close above the one before it for N candles. The owner's first example. Conventionally read as buyers in control for as long as it lasts.

What followed on this name's own record

No earlier hit on this name's weekly candles has a full 4 weeks after it yet, so there is nothing to count.

An observation from stored candles, not advice. Nothing here is a forecast; the decision, and the risk, are yours.

The rule, exactly as checked · n = 5
  1. Walk the candles in order.
  2. Count a streak: +1 when this close is above the previous close, back to 0 otherwise.
  3. The pattern completes on the candle where the streak first reaches N.
  4. Report the move from the close before the run to the close that completed it.
  5. Progress: how long the current streak is against N, and whether the last close is still rising.

Quiet N consecutive falling candles · Runs, breaks and structure · reading down

0 hits in 25 candles · test this one alone Sign in to be alerted

Not seen on the weekly candles on file

N consecutive falling candles did not complete anywhere in the 25 weekly candles stored for this name (from week of 20 Apr 2026 to week of 05 Oct 2026).

Where it stands on the latest candle

The last close was not falling; no run under way.

What this pattern is taken to mean

The mirror: every close below the one before it for N candles. Read as sellers in control while it lasts.

What followed on this name's own record

No earlier hit on this name's weekly candles has a full 4 weeks after it yet, so there is nothing to count.

An observation from stored candles, not advice. Nothing here is a forecast; the decision, and the risk, are yours.

The rule, exactly as checked · n = 5
  1. Walk the candles in order.
  2. Count a streak: +1 when this close is below the previous close, back to 0 otherwise.
  3. The pattern completes on the candle where the streak first reaches N.
  4. Report the move from the close before the run to the close that completed it.
  5. Progress: the current streak against N.

Quiet Cross of a level you set · Runs, breaks and structure · reading up or down

0 hits in 25 candles · test this one alone Sign in to be alerted

Not seen on the weekly candles on file

Cross of a level you set did not complete anywhere in the 25 weekly candles stored for this name (from week of 20 Apr 2026 to week of 05 Oct 2026).

What this pattern is taken to mean

The close went through a price you chose. Read however you meant the level.

What followed on this name's own record

No earlier hit on this name's weekly candles has a full 4 weeks after it yet, so there is nothing to count.

An observation from stored candles, not advice. Nothing here is a forecast; the decision, and the risk, are yours.

The rule, exactly as checked · level = 0
  1. Take the level you entered.
  2. The pattern completes on a candle whose close is at or above the level while the previous close was below it (up), or at or below it while the previous close was above (down).
  3. Nothing is reported until a level is set.

Quiet Moving-average cross · Indicator-based · reading up or down

0 hits in 25 candles · test this one alone Sign in to be alerted

Not seen on the weekly candles on file

Moving-average cross did not complete anywhere in the 25 weekly candles stored for this name (from week of 20 Apr 2026 to week of 05 Oct 2026).

What this pattern is taken to mean

The faster simple average crossed the slower one. Read as the near-term average price overtaking (or falling behind) the longer one.

What followed on this name's own record

No earlier hit on this name's weekly candles has a full 4 weeks after it yet, so there is nothing to count.

An observation from stored candles, not advice. Nothing here is a forecast; the decision, and the risk, are yours.

The rule, exactly as checked · fast = 9, slow = 21
  1. Compute SMA(fast) and SMA(slow) of the closes.
  2. The pattern completes on a candle where fast was ≤ slow on the previous candle and is > slow now (up), or ≥ before and < now (down).
  3. fast must be smaller than slow, else nothing is reported.

Quiet RSI into overbought / oversold · Indicator-based · reading up or down

0 hits in 25 candles · test this one alone Sign in to be alerted

Not seen on the weekly candles on file

RSI into overbought / oversold did not complete anywhere in the 25 weekly candles stored for this name (from week of 20 Apr 2026 to week of 05 Oct 2026).

What this pattern is taken to mean

Wilder's RSI crossed into the overbought zone (reported as a 'down' observation: stretched) or the oversold zone ('up': washed out).

What followed on this name's own record

No earlier hit on this name's weekly candles has a full 4 weeks after it yet, so there is nothing to count.

An observation from stored candles, not advice. Nothing here is a forecast; the decision, and the risk, are yours.

The rule, exactly as checked · n = 14, high = 70, low = 30
  1. Compute RSI(n) from the closes (Wilder smoothing).
  2. The pattern completes when RSI moves from below `high` to at or above it (overbought → down), or from above `low` to at or below it (oversold → up).
  3. Only the crossing candle is a hit, not every candle spent inside the zone.

Quiet Bollinger squeeze, then a break · Indicator-based · reading up or down

0 hits in 25 candles · test this one alone Sign in to be alerted

Not seen on the weekly candles on file

Bollinger squeeze, then a break did not complete anywhere in the 25 weekly candles stored for this name (from week of 20 Apr 2026 to week of 05 Oct 2026).

What this pattern is taken to mean

The bands had narrowed to their tightest in a while, then the close left them. Read as a quiet stretch ending.

What followed on this name's own record

No earlier hit on this name's weekly candles has a full 4 weeks after it yet, so there is nothing to count.

An observation from stored candles, not advice. Nothing here is a forecast; the decision, and the risk, are yours.

The rule, exactly as checked · n = 20, k = 2, squeeze = 60
  1. Compute Bollinger bands: SMA(n) ± k × standard deviation of the last n closes; bandwidth = (upper − lower) / middle.
  2. Squeeze: the smallest bandwidth in the last 6 candles is within 5% of the smallest over the last `squeeze` candles.
  3. The pattern completes on a candle that closes above the upper band having been at or below it the candle before (up), or the mirror below the lower band (down), while squeezed.

Quiet Bullish engulfing · Multi-candle shapes · reading up

0 hits in 25 candles · test this one alone Sign in to be alerted

Not seen on the weekly candles on file

Bullish engulfing did not complete anywhere in the 25 weekly candles stored for this name (from week of 20 Apr 2026 to week of 05 Oct 2026).

What this pattern is taken to mean

A down candle followed by an up candle whose body covers it, after a decline. Read as the decline being rejected in one candle.

What followed on this name's own record

No earlier hit on this name's weekly candles has a full 4 weeks after it yet, so there is nothing to count.

An observation from stored candles, not advice. Nothing here is a forecast; the decision, and the risk, are yours.

The rule, exactly as checked · context = 5
  1. Take two consecutive candles.
  2. First closes below its open; second closes above its open.
  3. Second's open ≤ first's close and second's close ≥ first's open (its body covers the first's body).
  4. Context: the net move over the `context` candles before the pair is negative (set 0 to skip).

Quiet Evening star · Multi-candle shapes · reading down

0 hits in 25 candles · test this one alone Sign in to be alerted

Not seen on the weekly candles on file

Evening star did not complete anywhere in the 25 weekly candles stored for this name (from week of 20 Apr 2026 to week of 05 Oct 2026).

What this pattern is taken to mean

A long up candle, a small-bodied candle, then a down candle closing below the midpoint of the first.

What followed on this name's own record

No earlier hit on this name's weekly candles has a full 4 weeks after it yet, so there is nothing to count.

An observation from stored candles, not advice. Nothing here is a forecast; the decision, and the risk, are yours.

The rule, exactly as checked · small_pct = 30
  1. Take three consecutive candles.
  2. First: an up candle with a body at least the average body of the ten candles before it.
  3. Second: a body no bigger than small_pct of the first's body.
  4. Third: a down candle closing below the midpoint of the first candle's body.

Quiet Three white soldiers · Multi-candle shapes · reading up

0 hits in 25 candles · test this one alone Sign in to be alerted

Not seen on the weekly candles on file

Three white soldiers did not complete anywhere in the 25 weekly candles stored for this name (from week of 20 Apr 2026 to week of 05 Oct 2026).

What this pattern is taken to mean

Three up candles in a row, each opening inside the previous body and closing higher, with little upper wick.

What followed on this name's own record

No earlier hit on this name's weekly candles has a full 4 weeks after it yet, so there is nothing to count.

An observation from stored candles, not advice. Nothing here is a forecast; the decision, and the risk, are yours.

The rule, exactly as checked · wick_pct = 30
  1. Take three consecutive candles, all closing above their opens.
  2. Each close above the previous close.
  3. Each open inside the previous candle's body.
  4. Each upper wick no more than wick_pct of its body.

Quiet Three black crows · Multi-candle shapes · reading down

0 hits in 25 candles · test this one alone Sign in to be alerted

Not seen on the weekly candles on file

Three black crows did not complete anywhere in the 25 weekly candles stored for this name (from week of 20 Apr 2026 to week of 05 Oct 2026).

What this pattern is taken to mean

Three down candles in a row, each opening inside the previous body and closing lower, with little lower wick.

What followed on this name's own record

No earlier hit on this name's weekly candles has a full 4 weeks after it yet, so there is nothing to count.

An observation from stored candles, not advice. Nothing here is a forecast; the decision, and the risk, are yours.

The rule, exactly as checked · wick_pct = 30
  1. Take three consecutive candles, all closing below their opens.
  2. Each close below the previous close.
  3. Each open inside the previous candle's body.
  4. Each lower wick no more than wick_pct of its body.

Quiet Hammer · Single-candle shapes · reading up

0 hits in 25 candles · test this one alone Sign in to be alerted

Not seen on the weekly candles on file

Hammer did not complete anywhere in the 25 weekly candles stored for this name (from week of 20 Apr 2026 to week of 05 Oct 2026).

What this pattern is taken to mean

A long lower wick and a small body near the top, after a decline: the candle went well below and was pulled back up. Read as a low being rejected.

What followed on this name's own record

No earlier hit on this name's weekly candles has a full 4 weeks after it yet, so there is nothing to count.

An observation from stored candles, not advice. Nothing here is a forecast; the decision, and the risk, are yours.

The rule, exactly as checked · wick_times = 2, other_wick_pct = 15, context = 5
  1. Lower wick ≥ wick_times × body.
  2. Upper wick ≤ other_wick_pct of the range.
  3. Context: the net move over the `context` candles before is negative (set 0 to skip).
  4. The wick's low is reported as the level rejected.

The library, rule by rule

What each pattern checks, in the order the code checks it, with the parameters and their defaults for weekly candles. The "meaning" is the convention the pattern is named for, stated as a convention; whether it held on a given name is what the test above measures.

Runs, breaks and structure

Rules on closes, highs and lows alone. Plain to state, plain to check.
N consecutive rising candles · reading up · any candleA momentum run: every close above the one before it for N candles. The owner's first example. Conventionally read as buyers in control for as long as it lasts.
  1. Walk the candles in order.
  2. Count a streak: +1 when this close is above the previous close, back to 0 otherwise.
  3. The pattern completes on the candle where the streak first reaches N.
  4. Report the move from the close before the run to the close that completed it.
  5. Progress: how long the current streak is against N, and whether the last close is still rising.
n = 5
Consecutive rising closes (N) — The owner's momentum-run example uses 20.

Test this pattern on FERMENTA

N consecutive falling candles · reading down · any candleThe mirror: every close below the one before it for N candles. Read as sellers in control while it lasts.
  1. Walk the candles in order.
  2. Count a streak: +1 when this close is below the previous close, back to 0 otherwise.
  3. The pattern completes on the candle where the streak first reaches N.
  4. Report the move from the close before the run to the close that completed it.
  5. Progress: the current streak against N.
n = 5
Consecutive falling closes (N)

Test this pattern on FERMENTA

Higher highs and higher lows · reading up · any candleUptrend structure: each swing high above the last and each swing low above the last. Read as a trend that is still being confirmed by its pullbacks.
  1. Find swing highs and lows with the zigzag: a pivot is confirmed once price has moved swing_pct against it.
  2. Take every window of 2×swings+1 consecutive confirmed pivots.
  3. Require each swing high in the window above the previous swing high, and each swing low above the previous swing low.
  4. The pattern completes on the candle where the last pivot in the window was confirmed.
  5. The last swing low is reported as the level the structure stands on.
swings = 2
Higher highs / higher lows required
swing_pct = 3
Minimum swing size, % — Smaller on intraday candles.

Test this pattern on FERMENTA

Lower highs and lower lows · reading down · any candleDowntrend structure: each swing high below the last and each swing low below the last.
  1. Find swing highs and lows with the zigzag (pivot confirmed after a swing_pct move against it).
  2. Take every window of 2×swings+1 consecutive confirmed pivots.
  3. Require each swing high below the previous swing high, and each swing low below the previous swing low.
  4. The pattern completes on the candle where the last pivot was confirmed.
  5. The last swing high is reported as the level the structure hangs from.
swings = 2
Lower highs / lower lows required
swing_pct = 3
Minimum swing size, %

Test this pattern on FERMENTA

Gap at the open · reading up or down · any candleThe session opened at least X% away from the previous close. Read as news or flow arriving overnight.
  1. At the first candle of each session, compare its open with the last close of the previous session.
  2. Gap % = open / previous close − 1.
  3. The pattern completes when |gap %| ≥ pct; direction is the gap's sign.
  4. On daily candles this is simply open vs the previous day's close.
pct = 1
Minimum gap, %

Test this pattern on FERMENTA

Move of X% within M candles · reading up or down · any candleA fast move: the close is at least X% away from where it was M candles ago. Read as a burst of one-sided flow.
  1. For each candle, take the close M candles earlier.
  2. Move % = close now / close then − 1.
  3. The pattern completes when |move %| ≥ pct; direction is the sign.
  4. Consecutive candles that all qualify in the same direction count once, at the first of them.
pct = 2
Minimum move, %
candles = 3
Within this many candles (M)

Test this pattern on FERMENTA

Cross of a level you set · reading up or down · any candleThe close went through a price you chose. Read however you meant the level.
  1. Take the level you entered.
  2. The pattern completes on a candle whose close is at or above the level while the previous close was below it (up), or at or below it while the previous close was above (down).
  3. Nothing is reported until a level is set.
level = 0
Your level, ₹ — Required — leave at 0 and this pattern reports nothing.

Test this pattern on FERMENTA

Inside bar, then a breakout · reading up or down · any candleA candle whose whole range sat inside the one before it (a pause), then a close outside the mother candle's range. Read as a pause resolving.
  1. Take three consecutive candles: mother, inside, break.
  2. Inside: its high ≤ mother high and its low ≥ mother low.
  3. The pattern completes when the third candle closes above the mother high (up) or below the mother low (down).

Test this pattern on FERMENTA

Indicator-based

Rules on a derived line: moving averages, VWAP, volume, RSI, Bollinger bands.
Moving-average cross · reading up or down · any candleThe faster simple average crossed the slower one. Read as the near-term average price overtaking (or falling behind) the longer one.
  1. Compute SMA(fast) and SMA(slow) of the closes.
  2. The pattern completes on a candle where fast was ≤ slow on the previous candle and is > slow now (up), or ≥ before and < now (down).
  3. fast must be smaller than slow, else nothing is reported.
fast = 9
Fast average, candles
slow = 21
Slow average, candles

Test this pattern on FERMENTA

Volume spike · reading up or down · any candleOne candle traded many times the recent average volume. Read as attention arriving; the candle's colour says which way it leaned.
  1. Average the volume of the previous M candles (those that reported one).
  2. The pattern completes when this candle's volume ≥ times × that average.
  3. Direction is the candle's own: up if it closed above its open, down if below, neutral if flat.
times = 3
Multiple of the average
candles = 20
Average over this many candles (M)

Test this pattern on FERMENTA

RSI into overbought / oversold · reading up or down · any candleWilder's RSI crossed into the overbought zone (reported as a 'down' observation: stretched) or the oversold zone ('up': washed out).
  1. Compute RSI(n) from the closes (Wilder smoothing).
  2. The pattern completes when RSI moves from below `high` to at or above it (overbought → down), or from above `low` to at or below it (oversold → up).
  3. Only the crossing candle is a hit, not every candle spent inside the zone.
n = 14
RSI length
high = 70
Overbought above
low = 30
Oversold below

Test this pattern on FERMENTA

Bollinger squeeze, then a break · reading up or down · any candleThe bands had narrowed to their tightest in a while, then the close left them. Read as a quiet stretch ending.
  1. Compute Bollinger bands: SMA(n) ± k × standard deviation of the last n closes; bandwidth = (upper − lower) / middle.
  2. Squeeze: the smallest bandwidth in the last 6 candles is within 5% of the smallest over the last `squeeze` candles.
  3. The pattern completes on a candle that closes above the upper band having been at or below it the candle before (up), or the mirror below the lower band (down), while squeezed.
n = 20
Band length
k = 2
Standard deviations
squeeze = 60
Tightest in this many candles

Test this pattern on FERMENTA

Trend and waves

The fitted trend line and the swing count. A wave count is a reading of the swings, not a prophecy.
Trend line: slope, length, strength · reading up or down · any candleThe straight-line fit through the last N closes: how steep, how long, how clean. This is the slope/length/strength reading (R6) and a version of the 20-candle rule that fires on a clean run even when one close in the middle dipped.
  1. Fit a least-squares line through the last N closes (x = candle index).
  2. Slope % = slope / mean close × 100, per candle. R² = share of the variance the line explains (1 = a ruler, 0 = chop).
  3. Length = candles since the window's low (for a rising line) or high (falling). Magnitude = % from that extreme to the last close.
  4. Continuing = the last close is on the slope's side of the fitted line, or the last three closes all moved with the slope.
  5. The pattern completes when |slope %| ≥ min_slope_pct and R² ≥ min_r2; consecutive qualifying candles count once, at the first.
  6. Progress always reports the current slope, R², length, magnitude and whether it is continuing.
n = 20
Candles in the fit (N)
min_slope_pct = 0.25
Minimum slope, % per candle
min_r2 = 0.8
Minimum R²

Test this pattern on FERMENTA

Impulse wave (five swings, Elliott-style) · reading up or down · any candleFive alternating swings that obey the three classical impulse rules. A count, not a prophecy: the same swings can be counted more than one way, and this is the plain mechanical reading.
  1. Find swings with the zigzag at swing_pct.
  2. Take six consecutive confirmed pivots L-H-L-H-L-H (up) or H-L-H-L-H-L (down).
  3. Rule 1: wave 2 does not retrace past the start of wave 1.
  4. Rule 2: wave 3 is not the shortest of waves 1, 3 and 5.
  5. Rule 3: wave 4 does not enter the price territory of wave 1.
  6. Each wave must make progress: 3 beyond 1, 5 beyond 3.
  7. The pattern completes when the sixth pivot is confirmed. Progress reports 'wave 5 under way' when the first five pivots hold and the live swing is the fifth wave.
swing_pct = 4
Minimum swing size, %

Test this pattern on FERMENTA

Multi-candle shapes

Two- and three-candle shapes from the classical catalogue.
Bullish engulfing · reading up · any candleA down candle followed by an up candle whose body covers it, after a decline. Read as the decline being rejected in one candle.
  1. Take two consecutive candles.
  2. First closes below its open; second closes above its open.
  3. Second's open ≤ first's close and second's close ≥ first's open (its body covers the first's body).
  4. Context: the net move over the `context` candles before the pair is negative (set 0 to skip).
context = 5
Decline measured over this many candles before

Test this pattern on FERMENTA

Bearish engulfing · reading down · any candleAn up candle followed by a down candle whose body covers it, after a rise.
  1. Take two consecutive candles.
  2. First closes above its open; second closes below its open.
  3. Second's open ≥ first's close and second's close ≤ first's open.
  4. Context: the net move over the `context` candles before the pair is positive (set 0 to skip).
context = 5
Rise measured over this many candles before

Test this pattern on FERMENTA

Morning star · reading up · any candleA long down candle, a small-bodied candle, then an up candle closing above the midpoint of the first. Read as a decline stalling and turning.
  1. Take three consecutive candles.
  2. First: a down candle with a body at least the average body of the ten candles before it.
  3. Second: a body no bigger than small_pct of the first's body.
  4. Third: an up candle closing above the midpoint of the first candle's body.
small_pct = 30
Middle candle body, % of the first's

Test this pattern on FERMENTA

Evening star · reading down · any candleA long up candle, a small-bodied candle, then a down candle closing below the midpoint of the first.
  1. Take three consecutive candles.
  2. First: an up candle with a body at least the average body of the ten candles before it.
  3. Second: a body no bigger than small_pct of the first's body.
  4. Third: a down candle closing below the midpoint of the first candle's body.
small_pct = 30
Middle candle body, % of the first's

Test this pattern on FERMENTA

Three white soldiers · reading up · any candleThree up candles in a row, each opening inside the previous body and closing higher, with little upper wick.
  1. Take three consecutive candles, all closing above their opens.
  2. Each close above the previous close.
  3. Each open inside the previous candle's body.
  4. Each upper wick no more than wick_pct of its body.
wick_pct = 30
Maximum upper wick, % of body

Test this pattern on FERMENTA

Three black crows · reading down · any candleThree down candles in a row, each opening inside the previous body and closing lower, with little lower wick.
  1. Take three consecutive candles, all closing below their opens.
  2. Each close below the previous close.
  3. Each open inside the previous candle's body.
  4. Each lower wick no more than wick_pct of its body.
wick_pct = 30
Maximum lower wick, % of body

Test this pattern on FERMENTA

Single-candle shapes

One candle's body and wicks. Weak on their own; shown with what followed on this name.
Doji · reading neutral · any candleOpen and close almost equal: the candle ranged but ended where it began. Read as indecision.
  1. Body = |close − open|; range = high − low.
  2. The pattern completes when range > 0 and body ≤ body_pct of the range.
body_pct = 10
Body no more than this % of the range

Test this pattern on FERMENTA

Hammer · reading up · any candleA long lower wick and a small body near the top, after a decline: the candle went well below and was pulled back up. Read as a low being rejected.
  1. Lower wick ≥ wick_times × body.
  2. Upper wick ≤ other_wick_pct of the range.
  3. Context: the net move over the `context` candles before is negative (set 0 to skip).
  4. The wick's low is reported as the level rejected.
wick_times = 2
Lower wick at least this many × body
other_wick_pct = 15
Upper wick at most this % of range
context = 5
Decline measured over this many candles before

Test this pattern on FERMENTA

Shooting star · reading down · any candleA long upper wick and a small body near the bottom, after a rise: the candle went well above and was pushed back down. Read as a high being rejected.
  1. Upper wick ≥ wick_times × body.
  2. Lower wick ≤ other_wick_pct of the range.
  3. Context: the net move over the `context` candles before is positive (set 0 to skip).
  4. The wick's high is reported as the level rejected.
wick_times = 2
Upper wick at least this many × body
other_wick_pct = 15
Lower wick at most this % of range
context = 5
Rise measured over this many candles before

Test this pattern on FERMENTA

Marubozu · reading up or down · any candleAlmost no wicks: the candle opened at one end of its range and closed at the other. Read as one side in control for the whole candle.
  1. Body = |close − open|; range = high − low.
  2. The pattern completes when range > 0 and body ≥ body_pct of the range.
  3. Direction is the candle's colour.
body_pct = 90
Body at least this % of the range

Test this pattern on FERMENTA

Indicator definitions: SMA(n) is the mean of the last n closes. RSI(n) is Wilder's — average gain over average loss, smoothed by (previous × (n−1) + now) / n. ATR(n) is the Wilder-smoothed mean of the true range. Bollinger bands are SMA(n) ± k standard deviations of the same n closes. VWAP is Σ(typical price × volume) / Σ volume within the session, typical price = (high + low + close) / 3. The trend line is ordinary least squares on close against candle index. Swings come from a zigzag that confirms a pivot once price has moved the swing size against it.