Educational Reference

Triangles: One Mechanism, Three Names

Ascending, descending and symmetrical triangles are taught as three shapes to memorise, each with its own bias and its own rule of thumb. They are one thing wearing three labels: a range that narrows until price leaves it. This page does not describe them. It writes the definition as code strict enough to run, detects every occurrence across 750,000 generated daily bars, and reports what the detector found, including the results that undercut the usual teaching.

The finding, stated first. Hold one set of detected patterns completely fixed and move a single tolerance, the one that decides when a boundary counts as level, and only 58 percent of them keep the name they had. On a tape built with no directional memory in it whatsoever, ascending triangles broke upward 38 percent of the time and descending triangles broke downward 39 percent of the time, which is the reverse of what is usually asserted about both. A third finding was published here and has since been withdrawn: this page reported that triangles taken with the prevailing trend underperformed a matched comparison group by 0.42 percentage points. That comparison group was partly drawn from the pattern's own bars. Rebuilt so it cannot be, the effect is 0.05 points and nothing survives. All results on this page are illustrative and simulated.

Why one shape has three names

The standard presentation is a taxonomy. An ascending triangle has a flat ceiling and a rising floor, and is described as bullish because buyers keep paying more while sellers hold one price. A descending triangle inverts it and is described as bearish. A symmetrical triangle has neither boundary level and is described as neutral or bilateral. Three shapes, three biases, three entries in the memory bank.

Look at what is actually happening in all three and the taxonomy starts to dissolve. In every case the distance between the highs and the lows is shrinking. Each swing covers less ground than the one before it. Positions are being taken and unwound inside a space that keeps getting smaller, which is another way of saying that the disagreement between buyers and sellers is narrowing toward a single price. That is one event, and it has one property worth caring about: it cannot continue indefinitely. A range that narrows must eventually stop narrowing, and when it does, price leaves.

The three names record one incidental detail about that event, which is whether the shrinking happened mostly from above, mostly from below, or evenly from both sides. It is a real distinction in the same way that a rectangle being taller than it is wide is a real distinction. Whether it carries information about what happens next is a separate question, and it is answerable, which is what the rest of this page does. The broader taxonomy of pattern families, and where triangles sit inside it, is set out in the guide to chart patterns in Indian stocks; the work here is narrower and goes underneath it.

There is a reason to be suspicious of the three-name framing before running any test at all. A classification is useful when the classes behave differently. If ascending, descending and symmetrical triangles are three different animals, then the boundary between them should be sharp, and an instance should not be able to change species because someone adjusted a setting. That is a testable property, and it is the first thing measured below.

Writing the definition down is where it gets difficult

Try to code the usual verbal definition. A triangle is a sequence of highs and lows converging toward each other over a period of consolidation, with at least a few touches on each boundary. Every clause in that sentence stops the code from compiling until a number is supplied, and none of the numbers are in the sentence.

What counts as a high? A bar higher than its neighbours, but how many neighbours? What counts as convergence? The boundaries must approach each other, but by how much, and measured how? Over what period? A triangle drawn over three weeks and a triangle drawn over six months are both called triangles, so how far back is the code allowed to look for the first touch? What counts as a touch? A boundary drawn through swing points never passes exactly through them, so how close is close enough? What counts as flat? A boundary is never perfectly horizontal, so how much slope is still level? And what counts as a break? A close beyond the line, or a close beyond the line by some margin, and if so, what margin?

Ten clauses, and not one of the numbers they need comes from the verbal definition itself. This is not a complaint about sloppiness, it is the substance of the problem. A definition that cannot be run cannot be tested, and a definition that requires ten invented numbers before it can be run is a definition whose results belong partly to the inventor. Here is the set used on this page, stated in full so that every number below can be reproduced or disputed.

The coded definition. Every threshold is a choice, and every choice is stated. Illustrative simulated data throughout.
ClauseValue usedWhy this value, and what it costs
What is a swing pointA high with 3 lower highs on each sideThe most common fractal rule. Moving it between two and four bars a side takes the population from 6,384 to 8,568 on identical data, which is measured further down
Touches per boundaryAt least 2Two is the minimum that defines a line at all. A boundary drawn through one point is an assertion, not a measurement
Touches in totalAt least 5Forces one boundary to be tested three times. Raising it to seven barely moved anything, which was itself worth learning
ConvergenceThe gap between the boundaries must narrow by 40 percentThe single most consequential number in the definition. This is what makes it a contraction rather than a drift
How close is a touchWithin 0.25 of the local widthA quarter of the gap between the boundaries. Tighter and almost nothing qualifies, looser and the boundary stops meaning anything
Containment85 percent of closes inside the envelopeStops a violently spiking series from being called a tidy consolidation. This clause fired 25,349 times against structures that had already passed the convergence test
What counts as levelBoundary travel under 0.20 of the starting widthDoes two jobs at once: it separates a triangle from a wedge, and it decides which of the three names an instance receives. Nothing in the literature acknowledges that these are the same number
Window lengthShortest qualifying window up to 120 barsNobody states this one. Whatever cap you pick becomes the length of your triangles, so the detector tries a ladder of lengths and keeps the most compact structure that satisfies every clause
What counts as a breakA close beyond the boundary by 0.10 of the average true rangeA bare close beyond a line is noise on a narrow range. The buffer is small enough not to miss real exits and large enough to ignore a one tick poke
Entry and holdingNext bar open, held 20 barsEntering on the bar that generated the signal would quietly grant the test information from the future, which is the most common silent error in pattern studies

Two of those deserve emphasis before anything is measured. The convergence threshold is doing the real work, because without it the definition describes any pair of lines that happen to lean toward each other. And the level tolerance is doing two unrelated jobs with one number, which is the sort of hidden coupling that only shows up when you are forced to write the thing down.

The definition, made explicit enough to run One detected instance on generated daily bars. Every clause below had to be given a number before any of this could be found. width here and here close beyond the rail entry the next bar open WHAT WAS CHECKED Bars in the pattern 60 Touches, upper rail 9 Touches, lower rail 4 Width contraction 53% Closes inside 95% Upper rail travel −0.22 Lower rail travel +0.31 Solid marks counted as touches. Hollow ones were swing points that missed the boundary. Every value in the column to the right had to be given a threshold before this pattern could be found at all, and no published definition of a triangle supplies one of them. The population they define moves by more than a factor of ten across reasonable choices, as measured below.
A single detected instance, drawn from the generated daily bars the detector actually ran on. Solid circles are swing points close enough to the fitted boundary to count as touches; hollow ones are swing points that were inside the pattern but missed. Every value in the right-hand column had to be given a threshold before this pattern could be found at all. Illustrative simulated data.

Three names, one mechanism

With the definition running, the first thing to check is whether the three classes are actually three classes. The detector labels each instance by measuring how far each boundary travelled over the life of the pattern, relative to how wide the pattern was when it started. If a boundary travelled less than the level tolerance, it is called flat. Flat on top with a rising floor is ascending, flat on the bottom with a falling ceiling is descending, and neither flat is symmetrical.

Three names, one mechanism Detected instances on generated daily bars. The only difference between the three is which rail is closer to level. Ascending flat upper rail broke downward 59 bars, 71% narrower Descending flat lower rail broke downward 58 bars, 46% narrower Symmetrical neither rail level broke upward 60 bars, 53% narrower What is identical in all three A range that narrows, tested repeatedly on both sides, until price leaves it. The three names record which rail happened to be flatter, and nothing else.
Three detected instances, one of each name, drawn from generated daily bars and chosen for legibility rather than for outcome: each is a break that did not immediately reverse, so the drawn direction matches the label. Read them as three photographs of one event from slightly different angles. The narrowing is the mechanism; the name records which boundary happened to be flatter. Illustrative simulated data.

Now the test that matters. Take the 8,036 patterns the detector found, change nothing about them at all, and simply move the level tolerance. Every instance keeps its boundaries, its touches, its contraction and its break. The only thing that changes is the cut-off at which a boundary is described as level.

The same patterns, renamed by one tolerance One fixed set of 8,036 detected triangles. Nothing about them changes. Only the cut-off for calling a rail level changes. level within 0.08 1,133 1,218 5,685 level within 0.12 1,734 1,855 4,447 level within 0.20 2,909 3,089 2,038 level within 0.28 3,297 3,481 1,048 level within 0.36 3,375 3,548 722 Ascending Descending Symmetrical Neither How many kept the same name Across the middle three settings only 4,637 of 8,036 patterns, 58%, held one label. The rest changed identity because a tolerance moved.
One fixed population of detected triangles, relabelled five times. At a strict tolerance most of them are symmetrical; at a loose one almost none are. Only 4,637 of 8,036 instances held a single label across the middle three settings. Illustrative simulated data.

At the strictest setting most of the population is symmetrical, because almost no boundary is level enough to qualify. At the loosest, symmetrical nearly disappears and the same instances are ascending and descending triangles. Across the middle three settings alone, 4,637 of 8,036 instances kept one name and the remainder changed identity. Not because the market did anything, and not because the patterns changed, but because a number that no textbook prints moved by a small amount.

That is the strongest single result on this page, and it does not require any argument about profitability to land. A classification whose members change class when an undocumented tolerance is nudged is not describing three phenomena. It is describing one phenomenon and imposing three bins on it, and the bin edges are the analyst's, not the market's.

There is a related casualty in the same clause. A converging pair of boundaries is only a triangle if the upper one is not rising and the lower one is not falling; two boundaries sloping the same way make a wedge instead. Across the whole scan the detector threw out a converging structure as a wedge 111,798 times, many times over the number of triangles it accepted. The line between the two families is drawn by the same level tolerance that shuffles the names within one of them, so the wedge is not a neighbouring species so much as a leftover.

How often the pattern actually occurs

Across 750,000 daily bars, which is 250 independent generated instruments of 3,000 bars each and roughly three thousand instrument years, the definition produced 20,654 candidate patterns. After discarding overlaps, so that no two measured outcomes share a holding period on the same instrument, 8,036 independent instances remained. That is about 2.7 per instrument per year, or roughly one every four or five months on any given chart.

That number is worth stating plainly because it is not the number a different definition would give. Restrict the detector to a single fixed lookback window, rather than letting it use the shortest window that satisfies every clause, and the population drops to 711. Nothing about the data changed. One rule about how far back to look changed, and the pattern became more than ten times rarer. Anybody quoting a frequency for triangles without publishing their window rule is quoting their own settings.

The rejection census is as informative as the acceptance count. Across the scan the detector rejected a converging structure as a wedge 111,798 times, failed a containment test 25,349 times because price kept leaving the envelope, and found boundaries too loosely touched 5,473 times. Those are counts of rejected window evaluations rather than distinct chart formations, since several window lengths are tried at each point, but the ratio is the message. The overwhelming majority of things that converge on a chart do not survive a definition written down in advance, which is a useful corrective to the experience of scrolling and seeing triangles everywhere.

The instances that did qualify were shorter than the textbook impression suggests. The median ran 39 bars from first touch to detection, with a quarter under 37 bars and a quarter over 59. The break, when it came, came quickly: on average 3.0 bars after the pattern was complete, and only 249 of 20,654 candidates failed to break at all inside the thirty bars allowed. A narrowing range does not sit still for long, which is the one thing the pattern reliably tells you.

Measuring what followed, against a base rate

A pattern statistic on its own is close to meaningless. If a breakout is followed by a gain sixty percent of the time, the question is what fraction of random moments on the same data are followed by a gain, because the answer might also be sixty percent. This comparison is the thing most pattern statistics leave out, and leaving it out is usually what makes the statistic look impressive.

The base rate here is constructed to be as unfair to the pattern as possible in every respect except the one being tested. For each detected break, two hundred random entry points are drawn from the same instrument, taking a position in the same direction as the break and holding it for the same twenty bars. The only difference between the two arms is that one entered because a triangle broke and the other entered for no reason at all. That yields 1,607,200 matched control entries against 8,036 pattern entries.

One detail of that construction decides more of this page than anything in the definition table, so it is stated before the results rather than in a footnote. The control entries are drawn only from bars that fall after the pattern, within 250 bars of it. An earlier version of this page drew them from 250 bars on either side, which sounds more even-handed and is not. A triangle is a stretch of bars selected for the shape of the path price took through them. Draw the comparison group from around it and part of the comparison group is drawn from inside the pattern, and from the move that preceded it. The comparison then contains the thing it is supposed to be a comparison for. The section on context below shows exactly what that cost, because it cost this page a published finding.

What followed a break, against the base rate Twenty bars after entry, direction matched. Controls are random entries on the same tape, drawn only from bars after the pattern. triangle breaks matched random entries −15% −10% −5% 0% 5% 10% 15% Tape with no memory 8,036 triangles against 1,607,200 matched random entries difference −0.04 points, t = −0.58 −15% −10% −5% 0% 5% 10% 15% The same detector on a tape that does contain an effect 7,226 triangles against 1,445,200 matched random entries difference +0.61 points, t = 7.51 The lower panel is the control. It proves the detector and the measurement can see an effect when one is present, which is what makes the upper panel worth reading. Where the base rate is drawn from decides the answer The with-the-trend result, measured four times. Nothing changes but the bars the control entries may come from. −0.8% −0.4% +0.0% +0.4% +0.8% backward only 250 either side 1,000 either side forward only +0.53 t 6.63 +0.57 t 7.09 +0.64 t 7.99 +0.61 t 7.51 −0.82 t −8.78 −0.42 t −4.48 −0.10 t −1.04 −0.05 t −0.51 the published claim, on the tape with no memory a known effect, measured the same four ways
Both arms of the test, on two different tapes, with the comparison group drawn only from bars after each pattern. In the upper panel nothing in the data makes direction predictable, and the two distributions sit on top of each other. In the lower panel a real effect was deliberately inserted, and the detector finds it. The bottom panel is the one that changed this page: it slides the control window from behind each pattern to in front of it, and shows the with-the-trend result collapsing while a known effect does not. A result that depends on where the comparison group was drawn from is a result about the comparison group. Illustrative simulated data.

On the tape with no directional memory the two distributions are the same distribution. The pattern arm returned 0.01 percentage points below flat over twenty bars and the matched random arm 0.03 above it, a gap of 0.04 percentage points in favour of entering at random, which is 0.58 standard errors from zero, with a ninety-five percent interval running from 0.17 points below to 0.09 above. The proportion of positive outcomes was 50.5 percent against 50.4 percent. The tails match too, which matters more than the averages: a tenth of pattern outcomes were worse than 6.9 percent down against 7.2 for the controls, and a tenth better than 6.7 percent up against 7.3. There is no part of the distribution where the pattern arm is distinguishable from entering at random.

This is the first place to record what the control window did and did not change, because the answer is not uniform and pretending otherwise would be the easy version. The unconditioned result above barely moved. Under the older, symmetric window it read 0.08 points at 1.24 standard errors; drawing the control only from bars after the pattern makes it 0.04 points at 0.58. Both say the same thing, which is nothing. Every figure that does not condition on the path before the break is in that category, and the reason is worth holding on to: the unconditioned arm mixes up-breaks and down-breaks in near-equal numbers, so whatever the backward window inherited from the prior move largely cancels. Condition on that prior move and the cancellation stops, which is the next section.

That result would be worthless on its own, because a detector that finds nothing might simply be broken. So the identical detector, the identical base-rate machinery and the identical thresholds were run over a second tape, built the same way but with one genuine effect inserted: after the recent trading range had been unusually narrow, a close outside that range was followed by extra drift in the direction of the break. The effect was written in terms of a simple price channel and never in terms of triangle geometry, so the detector had to find it on its own.

It did. On that tape the pattern arm averaged 0.67 percent against 0.06 percent for matched random entries, a difference of 0.61 percentage points with a t statistic of 7.51. The measured-move target was reached 18 percent of the time against 16 percent for the controls. The machinery can see an effect. On the tape where there was nothing to see, it saw nothing.

That control does a second job here, and it is the job that licenses everything below. A comparison group that reports nothing for everything is not a strict control, it is a broken instrument, so the forward-only window has to be shown capable of finding something before its nulls are worth anything. It is: on the tape with a real effect planted in it, the four control windows report 0.53, 0.57, 0.64 and 0.61 percentage points respectively, the forward-only one at 7.51 standard errors. It is not the weakest of the four. It is the second strongest, and it is stronger than the symmetric window it replaced. Strictness cost nothing here.

Results by name, each against its own matched base rate. Both tapes are generated. All figures illustrative and simulated, not a track record and not a forecast.
VariantFoundBroke upwardMean, 20 barsMatched base rateTarget reachedFalse breaks
Ascending2,90938%−0.12%−0.01%15% vs 17%43%
Descending3,08961%0.06%0.09%14% vs 16%42%
Symmetrical2,03849%0.03%0.00%10% vs 12%39%
All three, control tape7,22649%0.67%0.06%18% vs 16%38%

The last row is the interesting one for anybody who wants to keep using the pattern. On the tape that contained a real effect, all three named variants picked it up, with t statistics of 5.0, 3.9 and 3.6 respectively. The effect lived in the contraction and in the expansion out of it, and it did not care which boundary was level. If there is something to a triangle, this is where the test says to look for it, and the name is not where it lives.

The context result this page got wrong, and how

The standard refinement on any consolidation pattern is to take it only in the direction of the prevailing trend. That is a claim about context and it is testable, so an earlier version of this page tested it, found something large, and published it. The finding was wrong. What follows is the finding, the correction, and the reason the first answer looked so convincing, because the reason turns out to be more useful than the answer would have been.

Split the 8,036 instances by whether the break ran the same way as the preceding sixty-bar move. Measured the way everything else on the page was then measured, with the comparison group drawn from 250 bars on either side, the with-the-trend group returned 0.05 percent against a matched base rate of 0.47 percent. That is a shortfall of 0.42 percentage points, 4.48 standard errors, across 3,987 instances, with the against-trend group running 0.23 points the other way. Waiting for a triangle appeared to be actively worse than entering in the same direction at a random nearby moment, and the page said so.

Look at which arm was doing the moving. The two pattern arms are almost the same: 0.05 percent with the trend and −0.07 percent against it, which is to say approximately nothing, which is what a tape with no directional memory should produce. The two comparison groups are not the same at all: 0.47 percent for the with-trend cell and −0.30 percent for the against-trend one, nearly 0.77 percentage points apart. The whole of the context effect was in the control.

Once that is visible the cause names itself. Splitting on the prior sixty-bar move sorts the instances by what price did in the bars before each pattern, and the comparison group was being drawn from 250 bars either side, so half of every draw came from exactly those bars. In the with-trend cell the backward half of the window is full of the rise that made the cell a with-trend cell, and a random entry taken from it inherits that rise. So the control is inflated where the prior move was up and deflated where it was down, and subtracting an inflated control from a flat pattern manufactures a shortfall out of nothing at all.

That is a hypothesis, and it makes three predictions that can be checked separately. If the contamination lives in the backward half of the window, then restricting the control to the backward half alone should make the effect bigger; widening the window should dilute it; and drawing the control only from bars after the pattern should remove it. All three were run and all three did what the hypothesis said. Backward only: 0.82 points at 8.78 standard errors, roughly double. A thousand bars either side: 0.10 points at 1.04. Forward only: 0.05 points at 0.51. The against-trend cell walks the same path in reverse, from 0.49 points ahead to 0.03 behind.

A result that slides monotonically to zero as the control window is pushed forward is not a real effect that is hard to see. It is the signature of a control drawn from the pattern's own bars. Against a comparison group the pattern could not have selected, neither cell reaches a single standard error, and the refinement this page claimed to have overturned is simply untested by this data rather than contradicted by it. Note what is not being claimed: the advice to trade with the trend is not supported here either. It is unmeasured.

The insight that produced the wrong answer is still correct, and it is the reason the artefact exists rather than a casualty of it. The clauses that make a shape a triangle require the highs not to be rising and the lows not to be falling, which selects, almost by construction, the stretches in which the prevailing drift was not expressing itself. That was offered as an explanation of why with-trend entries underperformed. It is better read as the mechanism that makes a surrounding control invalid: the pattern is defined by having interrupted the move, so the bars around it are the move, and they cannot serve as neutral ground for measuring what the interruption was worth. The observation was right and the conclusion drawn from it was one step too far.

This generalises past triangles, which is why it is worth the space. Any test conditioned on the path before the detection is exposed the same way, because that path is exactly what the backward half of a time-local window holds. Reversal patterns, trend-context splits and volatility-contraction measures are all in that category. The companion pages on wedges and on flags and pennants share this page's generator, seed and comparison machinery, so their agreement with it was never independent confirmation of anything. All three have been re-measured against a forward-only control and all three moved.

The folklore, one claim at a time

Four things are asserted about triangles often enough to count as common knowledge. Each of them is a number, which means each of them can be checked. The check below is deliberately run on the tape with no directional memory, because a claim that reproduces there is not telling you anything about markets.

Four claims, each one measured against its own reference Every value below comes from the tape with no directional memory in it, so anything that shows up here is a property of the definition. 0% 25% 50% 75% 100% An ascending triangle breaks upward taught as the bullish one, breaking its flat ceiling 2,909 instances 37.8% an even split A descending triangle breaks downward taught as the bearish one, breaking its flat floor 3,089 instances 38.6% an even split A symmetrical triangle breaks upward taught as undecided, and the only one that is 2,038 instances 48.7% an even split The measured move is reached in time quoted as the standard target, rarely with a deadline 8,036 instances 13.1% matched random entries measured on generated data the reference this claim has to beat The claim that survived Of every break the definition found, 41.5% closed back inside within five bars. Two in five were false on a tape where nothing was happening at all.
Each claim as a pair: the value the definition produced on generated data, and the reference that claim has to beat. Three of the four land on the wrong side of their reference, and they do it on a tape where nothing is happening. Illustrative simulated data.

The break favours the flat side. It does not. Of 2,909 ascending triangles, which have the flat boundary on top, 38 percent broke upward, so the majority went through the rising floor rather than the flat ceiling. Of 3,089 descending triangles, 39 percent broke through the flat floor and the rest went up through the falling ceiling. Both point the same way, and it is the opposite of the folklore.

The reason is not subtle once it is stated. The sloping boundary is moving toward price while the flat one stays where it is. In any given bar the moving boundary is closer to being reached, so over the life of the pattern it gets reached first more often. That is a fact about lines, not about buyers and sellers, and it appears in full strength on a tape where no buyer or seller exists. It follows that a directional statistic measured on real charts cannot be attributed to the pattern until this geometric bias has been subtracted from it. Whether a published direction figure has had it subtracted is worth asking before quoting one.

An ascending triangle resolves upward more often than a symmetrical one. It did the opposite here, and decisively. Ascending triangles broke upward 37.8 percent of the time and symmetrical triangles 48.7 percent, with standard errors of 0.9 and 1.1 percentage points. The gap is 10.9 points in the wrong direction, roughly 7.67 standard errors from zero, which at these sample sizes is not a fluke. Note also that the symmetrical triangle, the one described as undecided, is the only one of the three that came out close to a coin toss, precisely because both of its boundaries are moving and the geometric bias cancels.

The measured move gets reached. The measured move projects the height of the triangle at its widest from the point of the break, and it is the standard target. It was reached within the twenty-bar holding period 13 percent of the time, against 15 percent for random entries with the same target distance and window. Given sixty bars instead of twenty, 34 percent against 35 percent. The target is reached often enough that a trader will remember several instances, and no more often than chance. This is exactly the shape of a statistic that survives on recall rather than on evidence, and the time limit is another undeclared parameter: quote no deadline at all and the hit rate approaches certainty, because a wandering price eventually reaches most levels.

False breaks are the main hazard. This one holds up, and it is the only one that does. Counting a close back inside the projected boundary within five bars, 42 percent of all breaks were false. On the control tape, where a real effect existed, the rate was still 38 percent. Roughly two in five breaks reverse quickly whether or not anything is happening, which is what a boundary drawn through noisy extremes does when the range is narrow. The mechanics of why obvious levels attract and then reject price are covered in the guide to breakouts, and the arithmetic here simply says how often it happens under a fixed definition.

How much of this is the definition rather than the data

Every number above sits on ten thresholds. The honest way to report a result like this is to show how much it moves when those thresholds move, because a finding that survives only at one setting is a finding about that setting.

The population is a function of the numbers you chose The same generated tape throughout. Only the definition changes. Each figure is the count of non-overlapping patterns found. Convergence and touches: the two clauses guides argue about 4 touches 5 touches 6 touches 7 touches narrows 25% 9,041 8,661 7,693 6,309 narrows 40% 8,398 8,036 7,110 5,780 narrows 55% 7,328 6,978 6,137 4,907 narrows 70% 5,697 5,389 4,675 3,665 Across all sixteen combinations the count moves by a factor of 2.5. Both dials are real. Neither is dramatic. How strict a swing point must be Lower highs required on each side 6,384 2 8,036 3 8,568 4 8,242 5 How far back you may look Longest window allowed, in bars 10,555 60 10,294 90 8,036 120 5,543 160 And the clause nobody writes down at all Choosing the shortest window that qualifies finds 8,036 patterns. Using one fixed window instead finds 711, on identical data, with everything else unchanged.
The same generated tape throughout; only the definition changes. The grid counts patterns found at each combination of convergence requirement and touch requirement. The clauses that get argued about move the population by less than a factor of two; the clause nobody states, how the window itself is chosen, moves it by more than ten. Illustrative simulated data.

There are two surprises in that picture. The first is that the clauses pattern guides actually argue about turned out to be the mild ones. Demanding that the range narrow by 70 percent rather than 25 percent cut the population from 9,041 to 5,697. Raising the touch requirement from four to seven at a fixed convergence threshold took it from 8,398 to 5,780. Changing how strict a swing point must be moved it between 6,384 and 8,568. All three are real effects and all three are inside a factor of two.

The second is that the clause nobody writes down is the one that dominates. Nothing in a verbal definition tells you how to choose the window in which to look. The detector here tries a ladder of lengths and keeps the shortest that satisfies every clause, which is roughly what a person does when they draw the tightest triangle that fits the swings. Replace that with a single fixed lookback, which is the other obvious implementation and the one most people write first, and the population falls from 8,036 to 711. Same data, same ten thresholds, one unstated rule about window selection, and nine in ten instances vanish. The survivors are a different animal too: their mean length is 106 bars against 50 for the ladder.

The length of the window matters in the same quiet way. Cap it at 60 bars and the detector finds 10,555 patterns averaging 34 bars long; allow 160 and it finds 5,543 averaging 62. Whatever cap you pick becomes the typical length of the triangles you see, which is a large part of why two people looking at the same consolidation can disagree in good faith about whether it is one.

What survives all of it is the absence of an effect, and it survives the change of control as well. Re-run against the forward-only comparison group, all sixteen combinations of convergence and touch requirement sit within 0.09 percentage points of zero, tighter than the 0.19 points the symmetric version managed, and none of the sixteen reaches a single standard error. The conclusion is stable even though the object being studied is not, and that pairing is the useful part: the population of triangles is extremely sensitive to the definition, and the finding that this population carries no edge on this data is not.

What this supports and what it does not

A simulation can prove some things and cannot prove others, and being precise about which is which is the difference between a study and an opinion with numbers attached.

The boundary of what this exercise establishes. Illustrative simulated data.
ClaimDoes this page support it?
The three names are one mechanism with three labelsYes. 8,036 fixed patterns, one tolerance moved, and 4,637 kept their label. The classes are not separable without an arbitrary cut
The break favours the sloping boundary, not the flat oneYes, and it is a property of the geometry. It appears at full strength where no market mechanism exists to cause it
A directional statistic quoted for triangles is evidence of somethingNo. The familiar direction figures reproduce on data with no memory, so they must be netted against that bias before they can mean anything
The measured-move target is a meaningful expectationNo, not without a stated time limit and a base rate. Both were absent from every version of the claim examined
Taking a triangle with the prevailing trend does worse than randomNo, and this page said otherwise until the comparison group was rebuilt. Against a control drawn only from bars after the pattern the effect is 0.05 points at 0.51 standard errors. The refinement is untested here, not refuted
A time-local comparison group is a safe control for a chart patternNo, and that is the transferable result. For any pattern defined by the recent path, the bars just before it were selected by the pattern and cannot serve as neutral ground
Roughly two breaks in five come straight backYes, under this definition, on both tapes. It is the most robust number here
Triangles carry no edge in Indian equitiesNo. This page tested generated data, not any exchange. It shows what the pattern does when nothing is behind it, which is the baseline a real study needs
Triangles carry an edge somewhereNot shown either. The control tape proves only that the detector would find an effect if one were present in the data given to it
Any of this is a reason to take a positionNo. Nothing here is a trade trigger, a recommendation or a forecast, and the outcome distributions are wide enough that no single instance is predictable

The most important limitation is the obvious one. Generated data has no earnings, no policy announcements, no index rebalancing and no order books, so it cannot tell you what happens when a real range compresses ahead of a real event. What it can do, and what real data cannot, is provide a case where the true answer is known in advance. When a statistic reproduces on a tape with nothing in it, that statistic is not evidence, and identifying which of the familiar triangle numbers fall into that category is the whole contribution of this exercise.

A second limitation is that this tests one definition. A different set of ten numbers is a different detector, and the sensitivity study above is precisely the reason to expect a different detector to find a different population. Anybody who wants to argue that a better definition would produce a different answer is making a testable claim, and the way to settle it is to write that definition down as code and run it.

What to do with a triangle instead

None of this makes a narrowing range useless to look at. It makes the three names useless, which is a much smaller loss than it sounds, and it relocates the useful part.

Read the contraction, not the shape. The one property every triangle genuinely has is that the range is smaller than it was. That is a statement about volatility, and volatility is measurable directly without drawing any lines at all. If the reason you are interested in the chart is that the recent range has compressed, then measure the compression, because the measurement is unambiguous and the drawing is not.

Stop treating the flat boundary as a forecast. The single most repeated piece of triangle advice is that the flat side shows where the pressure is and therefore where price will go. The geometry says the flat side is the one price is least likely to reach first, and the test above says so at a sample size large enough to take seriously. Whatever the flat boundary is telling you, it is not the direction.

Write your definition down before you look for instances. This is the habit that transfers to everything else. When you are forced to say how many bars make a swing point and how far back you may look, you find out how much of your pattern recognition was a decision rather than an observation. Doing it once for triangles is worth more than reading ten descriptions of them, and the same exercise on a trendline or a support level produces the same uncomfortable clarity.

Budget for the false break before you budget for the target. Two in five breaks came straight back on data where nothing was happening. That rate is not a market pathology to be outsmarted, it is the arithmetic of drawing a boundary through noisy extremes and then asking whether price crossed it. Any plan built on a narrowing range needs to survive that rate as its normal case, not treat it as the exception.

Judge the claim, not the picture. Every assertion made about a chart pattern is a number in disguise, and a number can be checked against a base rate. That habit, applied consistently, dissolves most of the pattern literature and keeps the small remainder that survives contact with a control. If that way of working is more interesting to you than the taxonomy it replaces, it is the method we teach.

FAQ

Frequently asked questions

Only which boundary is closer to level. An ascending triangle has a roughly flat upper boundary with rising lows beneath it, a descending triangle has a roughly flat lower boundary with falling highs above it, and a symmetrical triangle has neither boundary level. Underneath, all three are the same event: a range that narrows until price leaves it. When the same detected patterns on this page were relabelled using a slightly different definition of level, 58 percent kept their original name and the rest changed identity.

Because it changed one of this page's published findings from large to nothing. The comparison entries were originally drawn from 250 bars on either side of each triangle. A triangle is a stretch of bars selected for the shape of the path price took through them, so half of every draw came from inside the pattern and from the move before it. Splitting the results by that prior move then compared the pattern against a control built out of the very thing being split on, and produced an apparent shortfall of 0.42 percentage points at 4.48 standard errors. Drawing the control only from bars after the pattern reduces it to 0.05 points at 0.51. The forward-only control is not simply weaker: on the tape with a real effect planted in it, it still finds that effect at 7.51 standard errors, more than the symmetric window did.

Not in the test on this page. Across 2,909 ascending triangles detected on a generated tape with no directional memory built into it, 38 percent broke upward, so the majority broke downward. The reason is geometric rather than mystical: the sloping boundary travels toward price while the flat one stays put, so the sloping side is met first more often. Any directional statistic measured on real charts has to be netted against that geometric bias before it can be attributed to the pattern.

There is no published answer, which is the point. Some guides say two touches per boundary, some say three, some say five in total. The detector here required at least 2 touches on each boundary and 5 in total. Raising the total requirement from four to seven changed the number of patterns found on the same data, but it changed the measured outcome hardly at all. The touch count turned out to be one of the least consequential choices in the whole definition.

This page cannot answer that for live markets and does not try to. What it can show is that a triangle detected on a tape containing no directional memory at all still produces the pattern's familiar statistics: breaks in a particular direction, occasional runs to the measured-move target, and a false-break rate near two in five. Any claim of reliability therefore needs to be measured against a base rate, not against zero, and this page publishes the base rate alongside every number.

The measured move projects the height of the triangle at its widest point from the breakout, and it is the most commonly quoted target for the pattern. In this test it was reached within the twenty-bar holding period in 13 percent of cases, against 15 percent for random entries with the same target distance, direction and window. Stretched to sixty bars the figures were 34 percent and 35 percent. The target is reached often enough to feel meaningful and no more often than chance, which is exactly how a folk statistic survives.

That depends entirely on the definition, which is the uncomfortable part. The definition used here found 8,036 non-overlapping instances across 750,000 daily bars, roughly 2.7 per instrument per year. Restricting the detector to a single fixed lookback window instead of letting it use the shortest window that qualifies dropped that to 711. Same data, same clauses, one extra rule about how far back to look, and more than nine in ten of them vanish.

A false break is a close beyond the boundary that comes straight back inside. Counting a return inside the projected boundary within five bars, 42 percent of the breaks in this test were false. That happened on a tape with no news, no order flow and no participants, so it is not evidence of anything predatory. It is what a narrowing range does when the boundary is drawn through noisy extremes, and it is the single largest practical cost of trading the pattern.

Because a generated tape can be built with a known answer inside it, and real data cannot. Two tapes were used here: one with no directional memory, where any measured edge must be an artefact, and one with a real effect deliberately inserted, which acts as a control proving the detector can see an effect when there is one to see. That pairing separates claims about triangles from claims about the definition of a triangle. It cannot tell you what triangles do on any particular exchange, and nothing on this page should be read as saying it can.

On the tape where a real effect was inserted, the detector found it, and it found it in all three named variants at once rather than in one of them. The effect lived in the contraction and the expansion out of it, not in which boundary happened to be level. That is the practical reading of the whole exercise: the thing worth watching is that the range narrowed and then stopped narrowing, and the name is a filing convention.

Yes, and it is the most useful part. Write your definition as code before you look at any results, including every threshold you would rather leave vague. Detect every occurrence rather than the ones you remember. Compare against random entries matched for direction and holding period on the same data. Then vary each threshold and see how much your conclusion moves. If it moves a lot, you have measured your definition rather than the market.

Method note

How the numbers on this page were produced

Every figure comes from one deterministic simulation, seeded so that it reproduces identically on each run. Two tapes were generated, each of 250 independent instruments of 3,000 daily bars, 750,000 bars in total. Volatility clusters and drift regimes switch on both, so quiet stretches and coiling occur naturally and are never inserted by hand; the three drift states are symmetric and equally likely, so the unconditional drift of the tape is zero. The first tape contains no mechanism that could make direction predictable. The second adds one effect, defined entirely in terms of a simple price channel and never in terms of triangle geometry, and exists to prove the detector can find an effect when one is present.

Detection runs on the open, high, low and close of the generated bars using the thresholds in the definition table. Signals are taken on the close and positions are opened at the next bar's open, so no result uses information that was not available at the time. Outcomes are measured over 20 bars. The base rate draws two hundred entries per event from the same instrument, matched for direction and holding period, from within 250 bars after the pattern and never from before it, because the bars before a pattern are the bars the pattern was selected on. Every result that changed when that window was moved is reported with both values, and the window itself is varied four ways and all four reported. Overlapping detections are discarded so that no two measured outcomes share a holding period. Returns are shown before costs; an illustrative allowance of twelve basis points per round trip would apply equally to both arms and would not change the difference between them, though it would sit well above the difference that was measured.

All results are illustrative and simulated. They are not a track record, they are not a forecast, and they are not an indication of what any pattern would produce in a live account or on any Indian security or index. The purpose of the exercise is to establish which properties of a triangle are consequences of its definition, which is a question about the definition rather than about any particular market.

Related

Continue reading

Next step

Find your starting stage. Everything else follows from there.

Educational reference only. No buy, sell or hold recommendations. All results shown are illustrative and simulated.