← All Analyses
NSETCS
Neutral

Advance Range

Aijaz Khaja Mohammed Sajid
Aijaz Khaja Mohammed Sajid
1w ago
Advance Range

Advance Range Detector

A multi-factor Pine Script v6 engine for detecting, validating, tracking, and classifying price ranges/consolidations — with volatility normalization, structural quality filters, breakout confirmation, overshoot absorption, and fakeout/deviation handling.

1. Overview

Advance Range Detector is designed to answer a more difficult question than:

“Is price moving sideways?”

Instead, it attempts to determine:

“Is this a statistically tight, repeatedly tested, sufficiently balanced consolidation that deserves to be classified as a meaningful trading range?”

The script evaluates a candidate range through several independent dimensions:


Candidate Window
│
├── Boundary Calculation
│
├── Volatility / Tightness
│
├── Midline Rotation
│
├── Boundary Touches
│
├── Price Containment
│
├── Directional Drift
│
└── Qualification
│
▼
Range Detected
│
┌─────┴─────┐
│ │
Confirmation Breakout
│ │
▼ ▼
Valid Range Breakout
│
┌──────┴──────┐
│ │
Fakeout Valid Break
│ │
Deviation Breakout

The key design philosophy is:

A range should not be identified from width alone.

A narrow price box can simply be a pause in a trend, a V-shaped reversal, a volatile spike, or an accidental clustering of candles.

This script therefore combines multiple measurements.

2. Core Philosophy

A high-quality range generally has several characteristics:

2.1 Tight enough

The price should be relatively compressed compared with its recent volatility.

2.2 Repeated interaction

Price should interact with both the upper and lower boundaries.

2.3 Rotation

Price should repeatedly move between the upper and lower portions of the range.

2.4 Containment

Most closes should remain inside the proposed range.

2.5 Limited directional drift

The range should not simply be an upward or downward channel.

2.6 Persistence

The consolidation should survive long enough to become meaningful.

2.7 Confirmed breakout

A boundary violation should be meaningful rather than merely a marginal wick.

These principles make the detector closer to a range-quality classifier rather than a simple highest-high/lowest-low indicator.

3. Detection Pipeline

The script operates in several stages.


                PRICE DATA
│
▼
┌───────────────────┐
│ Candidate Windows │
└─────────┬─────────┘
│
┌─────────▼─────────┐
│ Boundary Engine │
└─────────┬─────────┘
│
┌─────────▼─────────┐
│ Tightness Filter │
└─────────┬─────────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
Rotation Touches Containment
│ │ │
└────────────┼────────────┘
▼
Drift Filter
│
▼
QUALIFICATION
│
▼
RANGE ACTIVE
│
┌─────────┴─────────┐
▼ ▼
Confirmation Break Test
│
┌─────────┴─────────┐
▼ ▼
Fakeout Breakout

This is one of the strongest conceptual aspects of the script.

4. Window Selection

The detector can test up to three different consolidation lengths.

Base


Base Window

Default:


20 bars

Double


20 × 2 = 40 bars

Triple


20 × 3 = 60 bars

When all three are enabled, the script checks:


60 → 40 → 20

and selects the longest qualifying window.

This is important because it prevents a large consolidation from being unnecessarily represented as a smaller consolidation.

For example:


60-bar range qualifies
40-bar range qualifies
20-bar range qualifies

The detector chooses:


60 bars

rather than chopping the structure down to 20 bars.

5. Boundary Engine

The script supports three boundary methodologies.

5.1 Percentile

Default:


Top = 90th percentile of highs
Bottom = 10th percentile of lows

This is particularly interesting because it attempts to reduce the influence of isolated extreme candles.

Example:


Highs:

100
101
102
103
104
105
106
107
108
140 ← abnormal spike

A traditional highest-high method would use:


Top = 140

The percentile approach can effectively ignore the extreme observation.

Why this matters

A single liquidity sweep should not necessarily redefine the entire consolidation.

6. Absolute Extremes

The second method uses:


Top    = highest high
Bottom = lowest low

This represents the literal price extremes of the window.

Advantages:


  • simple

  • intuitive

  • captures actual range extremes

Disadvantages:


  • extremely sensitive to outliers

  • one wick can dramatically increase range height

7. Body Extremes

The third method ignores candle wicks when defining boundaries.

Upper boundary:


highest(max(Open, Close))

Lower boundary:


lowest(min(Open, Close))

This is effectively a body-based range.

It can be useful when you want to distinguish:


wick manipulation

from:


actual body acceptance

8. Volatility-Normalized Tightness

One of the most important components is the ATR normalization.

The script calculates:


Range Height / ATR

instead of simply asking:

“Is the range 2 points wide?”

This is important because 2 points mean very different things for different instruments.

For example:


Stock A
Range = 2
ATR = 1

Range/ATR = 2

versus:


Stock B
Range = 2
ATR = 10

Range/ATR = 0.2

The second consolidation is much tighter relative to its volatility.

9. Tightness Ranking

The script maintains:


heightHistory[]

This stores previously tested candidate range heights in ATR units.

Then the current candidate is ranked against historical candidates.

Conceptually:


Current Range
│
▼
Range Height / ATR
│
▼
Compare against historical candidates
│
▼
Percentile Rank
│
▼
Is this unusually tight?

Default requirement:


Must be tighter than approximately the lower 30% threshold

This gives the detector a relative volatility perspective.

10. Midline Rotation

This is another strong idea in the script.

The midpoint is:


Mid = (Top + Bottom) / 2

The script tracks whether closing prices move above and below this midpoint.

Example:


Above
↓
Below
↓
Above
↓
Below
↓
Above

This produces multiple rotations.

The default requirement is:


Minimum rotations = 4

Why?

Consider two structures.

Structure A


          /
/
/
/
/

Price continuously trends upward.

Structure B


     ┌─────────┐
│ ↕ ↕ ↕ ↕ │
│ ↕ ↕ ↕ ↕ │
└─────────┘

Price repeatedly rotates.

Both might have similar width.

But only the second behaves like a conventional range.

Therefore:

Rotation is being used as a proxy for two-sided order flow.

11. Boundary Touches

The detector requires interaction with both sides.

Default:


Minimum upper touches = 2
Minimum lower touches = 2

A touch is not required to exactly equal the boundary.

Instead:


Touch tolerance = 0.15 × ATR

So the detector creates an ATR-scaled interaction zone.

Conceptually:


        Upper Boundary
━━━━━━━━━━━━━━━━━━━━━━━━
Touch Zone
------------------------

RANGE

------------------------
Touch Zone
━━━━━━━━━━━━━━━━━━━━━━━━
Lower Boundary

This is preferable to requiring exact price equality.

12. Containment

The detector counts how many closes remain inside:


Bottom ≤ Close ≤ Top

Default:


Minimum containment = 80%

Therefore, if 20 bars are tested:


At least 16 closes

should remain inside.

This prevents a proposed range from being constructed around a price structure that is actually experiencing frequent external closes.

13. Drift Detection

This is another important quality filter.

The script divides the window approximately into:


First Half
Second Half

Then calculates:


Average Price First Half
Average Price Second Half

The difference is compared with the range height.

Formula conceptually:


Drift %
=
abs(SecondHalfAverage - FirstHalfAverage)
/
RangeHeight
× 100

Default:


Maximum drift = 30%

Why?

Consider:


Range A

────────────
↕ ↕ ↕ ↕ ↕
────────────

versus:


Range B

───────
/
/
/
────────

Range B may technically fit inside a bounding box, but it is behaving more like a channel/trend.

The drift filter attempts to reject that.

14. Range Qualification

The candidate becomes a valid range only when all major conditions are satisfied:


Tightness
AND
Rotation
AND
Upper Touches
AND
Lower Touches
AND
Drift
AND
Containment

In logical form:


QUALIFIED =
Tightness
&&
Rotation
&&
Upper Touches
&&
Lower Touches
&&
Drift
&&
Containment

This is much better than:


Highest High + Lowest Low = Range

15. Backward Extension

Once a range is detected, the script attempts to extend the left side backward.

It checks earlier closes:


Current candidate
│
▼
Can previous close fit inside?
│
YES
│
▼
Go one more bar backward
│
YES
│
▼
Continue...

until:


Maximum backward extension

is reached or price leaves the boundaries.

Default:


100 bars

This can reveal that the consolidation actually started much earlier than the initial detection window suggests.

16. Range State Machine

The script uses a state machine.

There are three primary states:


NONE
ACTIVE
WAITING

NONE

No active range exists.

The detector scans for a new candidate.


NONE
│
│ candidate qualifies
▼
ACTIVE

ACTIVE

The range is currently being monitored.

Possible outcomes:


ACTIVE
│
├── remains inside
│
├── absorbs overshoot
│
├── becomes confirmed
│
└── breaks

WAITING

A confirmed breakout has occurred.

The detector temporarily waits to determine whether the breakout is genuine or a deviation/fakeout.


ACTIVE
│
│ breakout
▼
WAITING
│
├── returns inside
│ ↓
│ DEVIATION
│
└── remains outside
↓
BREAKOUT STANDS

This state-machine architecture is a major strength of the design.

17. Provisional vs Confirmed Range

The detector does not immediately treat a newly detected range as fully confirmed.

Default:


5 bars

Before confirmation:


Dashed border

After confirmation:


Solid border

This provides a useful distinction:

Provisional

“This looks like a range, but it hasn't demonstrated enough persistence yet.”

Confirmed

“The range has survived the required confirmation period.”

This is a better conceptual model than treating every detected box equally.

18. Overshoot Absorption

This feature attempts to distinguish:


small liquidity sweep

from:


true breakout

Suppose:


Range Top
━━━━━━━━━━━━━━━━

│
│ wick
│
▼
↑
close back inside

If the wick exceeds the boundary only slightly and the candle closes back inside, the script can expand the boundary.

Default allowance:


0.15 × ATR

So instead of immediately terminating the range:


Old Top
──────────────

wick

New Top
──────────────

the range absorbs the excursion.

19. Breakout Buffer

The detector does not necessarily accept a tiny breach.

Default:


0.10 × ATR

For a bullish close breakout:


Close > Top + 0.10 ATR

For bearish:


Close < Bottom - 0.10 ATR

This reduces sensitivity to tiny boundary violations.

20. Close vs Wick Breakout

Two breakout modes are available.

Close

Requires:


Close > Top + Buffer

or:


Close < Bottom - Buffer

This emphasizes acceptance beyond the range.

Wick

Requires:


High > Top + Buffer

or:


Low < Bottom - Buffer

This is much more sensitive.

Therefore:


Close Mode
= confirmation-oriented

while:


Wick Mode
= event-oriented

21. Breakout Classification

When a confirmed range breaks, the script determines direction:


Bullish Breakout

or:


Bearish Breakout

The box changes color accordingly.

It also creates a:


Breakout

label.

The script stores:


breakDir
breakExtreme
breakBar

so the breakout can subsequently be evaluated for deviation.

22. Merge Deviation / Fakeout Handling

This is one of the more advanced features.

After breakout:


WAITING

The detector gives the market a defined number of bars to prove the breakout.

Default:


5 bars

If price closes back inside the original range:


BREAKOUT
↓
close returns inside
↓
DEVIATION

The original breakout marker is removed.

The range resumes:


ACTIVE

This effectively treats the breakout as a failed expansion/deviation rather than a permanent structural transition.

23. Why This Is Different From a Basic Range Indicator

A basic range detector might do:


Highest High
Lowest Low

Your script does:


Boundary
+
Volatility
+
Relative Tightness
+
Rotation
+
Touches
+
Containment
+
Drift
+
Persistence
+
Overshoot Handling
+
Breakout Buffer
+
Fakeout Handling

That is a substantially richer framework.

24. Visual Architecture

The chart can contain:

Range box

Represents the active consolidation.

Midline

Represents the 50% equilibrium level.

25% line

Represents lower internal quartile.

75% line

Represents upper internal quartile.

Thus the box becomes:


        RANGE HIGH
━━━━━━━━━━━━━━━━━━━━
75%
- - - - - - - - - - -

50%
- - - - - - - - - - -

25%
- - - - - - - - - - -
━━━━━━━━━━━━━━━━━━━━
RANGE LOW

This gives the user internal range positioning rather than only the outer boundaries.

25. Range Lifecycle

A complete range lifecycle is approximately:


                SCAN
│
▼
Candidate Window
│
▼
Quality Qualification
│
qualifies?
/ \
NO YES
│ │
▼ ▼
Continue RANGE
│
▼
Provisional
│
▼
Confirmation
│
┌────────┴────────┐
│ │
No Break Break
│ │
│ ▼
│ Breakout
│ │
│ ▼
│ WAITING
│ / \
│ Return Stay out
│ inside │
│ │ ▼
│ ▼ Breakout Stands
│ Deviation
│ │
└───────────┘

26. What the Script Is Really Trying to Detect

The underlying concept is not simply:

“Sideways candles.”

It is closer to:

A statistically compressed area where price repeatedly rotates between two boundaries with sufficient two-sided interaction and limited directional displacement.

That distinction is important.

27. Current Quality Scoring: The Major Missing Piece

This is where I would improve your script substantially.

Right now the detector is mostly:


PASS / FAIL

For example:


rotation >= 4
touches >= 2
drift <= 30
containment >= 80
tightness = true

But consider two ranges:

Range A


Rotation = 12
Top Touches = 8
Bottom Touches = 7
Containment = 97%
Drift = 3%
Tightness = excellent

Range B


Rotation = 4
Top Touches = 2
Bottom Touches = 2
Containment = 80%
Drift = 29%
Tightness = barely qualifies

Both are currently:


QUALIFIED = TRUE

But they clearly have different structural quality.

That is the biggest analytical opportunity.

28. Add a Range Quality Score

Instead of only:


QUALIFIED = TRUE/FALSE

create:


RANGE QUALITY SCORE = 0–100

For example:


                    Weight
Tightness 20%
Rotation 20%
Boundary Interaction 20%
Containment 15%
Drift 15%
Persistence 10%
───
100%

Then:


90–100 = Exceptional structural quality
75–89 = High structural quality
60–74 = Moderate structural quality
<60 = Weak

However, I would not necessarily display these as trading recommendations. They should represent detector confidence/structural quality, not “buy/sell quality.”

29. Improve Tightness Measurement

The current system compares candidate height/ATR against its own history.

A stronger approach would consider:


Range Height
──────────────
ATR

plus:


Range Height
──────────────
Average True Range

plus potentially:


Range Height
──────────────
Recent Median Range Height

This would make the tightness estimate less dependent on the specific candidate history.

30. Add Volume Compression

One major missing dimension is volume.

A genuine consolidation often exhibits changes in participation.

Possible metrics:


Volume / Volume SMA

and:


Relative Volume

Then examine whether volume contracts during the range.

For example:


Volume
│
│ █
│ █
│ █
│ █
│ █
│ █
│ █
└────────────────
RANGE

This can add another dimension to range quality.

But importantly:

Low volume should not automatically mean a better range.

It should be treated as context, not a standalone qualification rule.

31. Add Range Efficiency

Another useful metric:


Directional Movement
────────────────────
Total Movement

A strongly trending market has high directional efficiency.

A rotating market has lower directional efficiency.

Conceptually:


Trending:

A → B → C → D → E

Range:

A → B → A → C → B → A

A range detector could therefore calculate:


Efficiency Ratio
=
abs(Net Change)
/
Sum(abs(Bar-to-Bar Changes))

Lower values indicate more back-and-forth movement.

This complements your existing rotation metric extremely well.

32. Add Boundary Symmetry

Currently you measure:


Top touches
Bottom touches

But you could also measure their balance.

Example:


Top touches = 8
Bottom touches = 2

This isn't the same quality as:


Top touches = 5
Bottom touches = 5

Create:


Touch Balance

For example:


Touch Balance =
1 - abs(topTouches - bottomTouches)
/ (topTouches + bottomTouches)

This gives a more balanced representation.

33. Add Range Occupancy

Another useful measurement is where price actually spends time.

For example:


Upper Zone
━━━━━━━━━━
████████

Middle
━━━━━━━━━━
████

Lower
━━━━━━━━━━
██

This tells you whether the market is:


balanced

or:


accepting higher/lower prices

This can be particularly useful when distinguishing:


true equilibrium range

from:


re-accumulation / redistribution-like structures

without forcing a directional interpretation.

34. Add Wick Rejection Statistics

Since your detector already distinguishes wicks and bodies, you can calculate:


Upper Rejection Count
Lower Rejection Count

For example:


Upper sweep
│
▼
wick
━━━━━━━ boundary
│
▼
close inside

Repeated occurrences could indicate that the boundary is being actively rejected.

This would be more informative than merely counting touches.

35. Add Boundary Respect

A useful metric would measure how closely price respects the range.

Example:


Average Distance From Top
Average Distance From Bottom

Normalized by ATR.

You could then distinguish:


Clean boundary

from:


messy boundary

even when both technically satisfy the touch condition.

36. Improve Breakout Quality

Currently:


Breakout = boundary + ATR buffer

A stronger breakout classifier could evaluate:

1. Break distance


Break distance / ATR

2. Closing position

Where did the candle close relative to its full range?

3. Follow-through

Did subsequent candles continue away from the range?

4. Retest

Did price return to the boundary?

5. Acceptance

Did multiple closes remain outside?

This produces a much more sophisticated breakout model:


Boundary breach
↓
Initial breakout
↓
Acceptance test
↓
Retest
↓
Continuation

37. Improve Fakeout Detection

Your current fakeout rule is:


close returns inside within N bars

That's useful, but it can be improved.

For example:


Breakout
↓
Returns inside
↓
How deeply?

A close barely inside is different from:


price completely traverses the range

You could classify:


Minor Deviation
Deep Deviation
Full Failure

based on penetration depth.

38. Add Range Age Quality

Currently you have:


Minimum confirmation

and optional:


Maximum age

But age could become part of the quality model.

For example:


5 bars
10 bars
20 bars
30 bars
50 bars

A range that remains structurally valid for longer may provide a different type of information than one that immediately breaks.

Instead of simply:


age >= confirmation

you could calculate:


Persistence Score

39. Add Structural Stability

This would be a particularly useful advanced feature.

Every new bar could recalculate:


Top stability
Bottom stability
Midline stability
Width stability

Suppose:


Top = stable
Bottom = stable
Width = stable

Then the range is structurally stable.

But if:


Top keeps expanding
Bottom keeps expanding

the detector may actually be witnessing volatility expansion rather than a stable range.

40. Add Range Expansion Detection

A very useful companion metric:


Current Range Height
/
Previous Range Height

Then identify:


Compression
Expansion

This gives the lifecycle:


Expansion
↓
Compression
↓
Range
↓
Expansion

This is much more informative than simply drawing boxes.

41. Add Nested Ranges

This is probably one of the most valuable improvements.

Imagine:


        60-Bar Range
┌───────────────────────────┐
│ │
│ 40-Bar Range │
│ ┌───────────────┐ │
│ │ │ │
│ │ 20-Bar Range │ │
│ │ │ │
│ └───────────────┘ │
│ │
└───────────────────────────┘

Your current system chooses the longest qualifying range.

But instead, an advanced engine could recognize:


Parent Range
Child Range
Nested Compression

This would provide much richer structural information.

42. Add Multi-Timeframe Context

The current detector works on the chart timeframe.

A more advanced architecture could use:


HTF
│
▼
Macro Range
│
▼
Current TF Range
│
▼
LTF Range

For example:


4H → structural range
1H → active range
15m → local range
5m → execution structure

The important principle would be:

Higher timeframe defines context; lower timeframe defines local structure.

The detector should not simply mix data from different timeframes into one box.

43. Add Range Classification

Once quality metrics are available, the engine could classify ranges.

For example:


BALANCED RANGE

when:


High rotation
Low drift
Balanced touches
High containment

Another:


COMPRESSED RANGE

when:


Extremely low height / ATR

Another:


EXPANDING RANGE

when:


Range width progressively increases

Another:


DRIFTING RANGE

when:


Directional displacement increases

This is more informative than simply:


RANGE

44. Suggested Architecture 2.0

I would evolve your script toward this architecture:


                    ADVANCE RANGE ENGINE
│
┌─────────────────┼─────────────────┐
│ │ │
▼ ▼ ▼
Boundary Volatility Structure
Engine Engine Engine
│ │ │
│ │ ┌──────┼──────┐
│ │ │ │ │
│ │ Rotation Touch Drift
│ │
└─────────────────┼─────────────────┘
│
▼
QUALITY ENGINE
│
┌─────────────────┼─────────────────┐
│ │ │
▼ ▼ ▼
Containment Symmetry Stability
│ │ │
└─────────────────┼─────────────────┘
▼
QUALITY SCORE
0–100
│
▼
RANGE CLASSIFIER
│
┌──────────────┼──────────────┐
▼ ▼ ▼
Balanced Compressed Drifting
│
▼
BREAKOUT ENGINE
│
┌─────────────────┼─────────────────┐
▼ ▼ ▼
Breakout Retest Fakeout
│
▼
FINAL EVENT

45. Recommended Future Metrics

If you want this to become a genuinely advanced range-analysis engine, I would add these:

MetricPurposeATR-normalized widthVolatility-adjusted range sizeRotation countTwo-sided movementTouch countBoundary interactionTouch symmetryBalance between boundariesContainmentInternal acceptanceDriftTrend/channel rejectionEfficiency ratioMeasures directional efficiencyVolume compressionParticipation contextWick rejectionBoundary rejectionWidth stabilityRange consistencyMidline stabilityEquilibrium stabilityPersistenceDurationExpansion ratioCompression → expansionBreakout distanceBreak strengthBreakout acceptancePost-break behaviorRetest qualityBoundary validationDeviation depthFakeout severityNested-range relationshipMulti-scale structure

46. One Important Conceptual Change

The biggest upgrade I'd recommend is changing the mental model from:


IF conditions pass
→ RANGE

to:


                 CANDIDATE
│
▼
┌─────────────┐
│ Measurements│
└──────┬──────┘
│
▼
QUALITY SCORE
0 → 100
│
┌──────────┼──────────┐
▼ ▼ ▼
Weak Moderate Strong
│ │ │
Reject Monitor Track

This gives you much more information.

A detector should ideally tell you:

Why is this a range?

not merely:

Is this a range?

47. Example of a High-Quality Range Report

A future version could internally produce something like:


ADVANCE RANGE
────────────────────────

Range Quality: 87/100

Window: 40 bars
Width / ATR: 1.42
Rotation: 9
Upper Touches: 6
Lower Touches: 5
Touch Balance: 0.91
Containment: 94%
Drift: 8%
Efficiency: 0.18
Width Stability: High
Volume State: Contracting

Classification:
BALANCED CONSOLIDATION

Status:
CONFIRMED

Breakout:
NOT YET CONFIRMED

That would be significantly more analytical than the current:


RANGE 40 BARS 1.42%

48. What Your Current Script Already Does Well

The strongest parts of your existing design are:

✅ Multi-window detection

20 / 40 / 60-bar analysis.

✅ ATR normalization

Makes the logic adaptive to volatility.

✅ Percentile boundaries

Reduces sensitivity to isolated extreme wicks.

✅ Rotation filter

Helps reject V-shaped reversals and trends.

✅ Two-sided touch requirement

Prevents one-sided structures from being called ranges.

✅ Drift filter

Helps distinguish consolidation from directional channels.

✅ Containment

Requires actual internal price acceptance.

✅ Backward extension

Allows the range to represent more historical structure.

✅ Confirmation state

Separates provisional and established ranges.

✅ Overshoot absorption

Handles small boundary sweeps.

✅ Breakout buffer

Reduces insignificant boundary breaches.

✅ Deviation handling

Attempts to distinguish fakeouts from genuine breakouts.

✅ State-machine architecture

Makes the indicator much easier to extend.

49. Current Weaknesses

The biggest limitations are not that the script lacks features; it's that some features are still binary.

For example:


Rotation >= 4

doesn't distinguish:


4 rotations

from:


12 rotations

Similarly:


Containment >= 80%

doesn't distinguish:


80%

from:


98%

And:


Drift <= 30%

doesn't distinguish:


29%

from:


3%

That information is being thrown away.

50. The Next Version Should Preserve Raw Measurements

Instead of:


rotationOK = rotations >= minRotations

think:


rotationScore

Instead of:


containmentOK

think:


containmentScore

Instead of:


driftOK

think:


driftScore

Then combine them.

Conceptually:


Quality =
Tightness Score
+ Rotation Score
+ Touch Score
+ Containment Score
+ Drift Score
+ Stability Score

This allows the detector to become continuous rather than binary.

51. Final Concept

Your current indicator is best described as:

A rule-based multi-factor consolidation detector with volatility-normalized boundaries and event-state management.

The more advanced version would become:

A multi-dimensional market range analysis engine that measures compression, equilibrium, boundary interaction, structural stability, participation, and breakout behavior across multiple scales.

That is the direction I'd take.

In short:


CURRENT VERSION

Detect Range
↓
Validate Range
↓
Track Range
↓
Detect Breakout
↓
Detect Deviation

ADVANCED VERSION


Detect Candidate
↓
Measure Structure
↓
Measure Volatility
↓
Measure Participation
↓
Measure Boundary Quality
↓
Measure Balance
↓
Measure Stability
↓
Calculate 0–100 Quality
↓
Classify Range
↓
Track Lifecycle
↓
Detect Breakout
↓
Measure Breakout Quality
↓
Detect Retest / Acceptance
↓
Classify Deviation / Failure
 
Disclaimer

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by GoCharting. Read more in the Terms of Use.

Comments (0)

Loading comments…