INDICATOR MANUAL
Pivot points and CPR indicatorPivot Matrix + Zones [AFD] · full manual · published to TradingView
Start with a clean pivot ladder and plain-language Read, then add independent packs, reaction zones, retained levels, confluence, and alerts only when the chart question needs them.
Start here
What the indicator does, the questions it can help answer, and its fresh-install defaults.
The Simple chart preset shows CPR, PP, and R1/S1 by default. Full restores every tier selected by each pack. The preset changes presentation only: pivot math, retained tracking, and alerts keep running from the configured packs.
The dashboard leads with a plain-language Read of price versus CPR and R1/S1, paired with the prior-period CPR relationship for the selected anchor. It follows the first operational pack rather than letting an invalid Pack A blank otherwise usable context.
CPR always uses the standard prior-high/low/close floor pivot. It remains distinct from formula-specific pivots such as Woodie or DM. Reaction width changes only the band around exact levels, never the pivot price.
Confluence requires overlapping eligible reaction zones from at least two distinct enabled packs. Current and retained levels from one pack cannot create confluence by themselves.
Fresh-install defaults10 documented defaults
Swipe or scroll horizontally to see every column.
| Area | Default | Result |
|---|---|---|
| Chart preset | Simple | Shows CPR, PP, and R1/S1; Full restores the complete selected ladders without changing calculations, tracking, or alerts. |
| Pack A | On · Shadow Trader · Auto · R3/S3 | Shows PP, CPR, labels, blue R/S lines, and Solid style. |
| Pack B | Off · Camarilla · Auto · H4/L4 | PP is on internally; CPR and labels start off. |
| Pack C | Off · Fibonacci · Weekly · R3/S3 | PP is on internally; CPR and labels start off. |
| Data | Daily-based · Exchange default | Uses completed standard-symbol anchor data; futures RTH name starts at us_regular. |
| Active geometry | Current + offset · 20 bars | Exact lines, labels, CPR, and active fills share a finite future-bar edge. |
| Reaction zones | On · Daily ATR(14) · 0.05 per side | Falls back to 4 ticks when the selected ATR is unavailable. |
| Confluence | Enabled · Current bar | Uses yellow zones, white text, and normal pivot layers. |
| Test-status coloring | Off | Tracking still runs; enabling it reveals Untested/Tested styling and the retained-history controls. |
| Dashboard and dynamic messages | On | Shows compact context and permits aggregated alert() detail. |
How it works
How the indicator turns chart data into the states and drawings you see.
Nine selectable methods
Floor Pivots, Fibonacci, Frank Dilernia, and Shadow Trader extend through R3/S3; Woodie and Classic through R4/S4; DM and ACD Method through R1/S1; Camarilla through H5/L5 aliases. Shadow Trader reproduces the Floor Pivots ladder, so the menu offers nine named methods but duplicate detection treats those two names as one geometry.
Simple presentation, full logic
Simple caps visible R/S tiers at the first level while leaving configured packs, lifecycle tracking, and alerts active. Full displays the complete native tier selected for each pack; neither choice changes any pivot calculation.
Six anchor choices
Auto maps chart resolution to Daily, Weekly, or Monthly. Explicit choices add Daily, Weekly, Monthly, Quarterly, and Yearly completed periods.
Daily-based and chart-derived data
Daily-based mode requests the selected exchange, RTH, or ETH context. On intraday charts, chart-derived mode aggregates the chart feed. Daily-or-higher calculations remain daily-based.
Standard CPR
CPR P is (prior high + prior low + prior close) ÷ 3; BC is (high + low) ÷ 2; TC is 2 × CPR P − BC. Boundaries are sorted for display, and an exact duplicate center is suppressed.
Reaction geometry
Daily ATR, Anchor ATR, or Ticks supplies a symmetric half-width around exact levels. Width freezes when the anchor geometry is created, so later ATR movement does not reshape history.
Distinct-pack confluence
Eligible bands are sorted and clustered transitively. A cluster needs at least two pack identities; its chart label lists unique formula names in Pack A–C order and omits the pack count.
Tested and untested lifecycle
At rollover, tracked pivot and CPR zones enter retained history as Tested or Untested. A later confirmed wick touch changes an Untested record to Tested and freezes its right edge. The retained collections keep up to 30 untested and 20 tested records.
Read, dashboard, and focus mode
The redesigned dashboard highlights Read, lists enabled-pack status, CPR vs Prior, Anchor Open, and the nearest Untested level, and follows the first operational pack. Show confluence only hides other drawings without stopping calculations, lifecycle cleanup, dashboard values, or enabled alerts.
Visibility and duplicate rules
A hidden Pack A CPR stops only its drawing; CPR Enter and CPR Exit keep running. Formula PP visibility still gates that PP’s drawings, events, confluence, and retained tracking. Packs using Shadow Trader and Floor Pivots on the same resolved anchor are duplicate ladders even though their menu names differ.
Output and state reference13 documented states
Swipe or scroll horizontally to see every column.
| Output or state | When it appears | Meaning |
|---|---|---|
| READ | First operational pack has current CPR and R1/S1 data | Plain-language price location paired with the prior-period CPR relationship; descriptive context only. |
| PACK A / B / C | Pack enabled | Displays its formula ladder, optional PP, CPR, and labels at the selected anchor. |
| CPR · PP / LOWER / UPPER | Completed anchor data | Shows the standard floor-pivot center and sorted BC/TC boundaries. |
| REACTION ZONE | Eligible exact level | Shows the origin-frozen ATR or tick band surrounding the center line. |
| DEVELOPING CPR | Pack A preview enabled | Provisional next CPR; excluded from history, confluence, dashboard, and alerts. |
| CONFLUENCE | Two or more distinct packs overlap | Shows unique contributing formula names in Pack A–C order, without a count. |
| UNTESTED | Untouched level at rollover | Retains lifecycle identity even when its drawing is hidden. |
| TESTED | Confirmed wick overlap | Marks current or retained geometry as tested; a retained record freezes its right edge. |
| DUPLICATE | Same ladder and resolved anchor as an earlier enabled pack | Excludes repeated geometry, including Shadow Trader paired with Floor Pivots on the same anchor. |
| INVALID ANCHOR | Resolved anchor below the chart timeframe | Excludes that pack instead of mixing lower-period pivots into the chart. |
| NO DATA | Anchor data unavailable | Only the affected enabled pack degrades instead of fabricating levels. |
| ATR UNAVAILABLE | Selected ATR basis unavailable | Reports the missing basis while reaction-zone width falls back to the configured fixed ticks. |
| DASHBOARD | Latest chart update | Summarizes packs, CPR relationship, anchor open, and retained-level context. |
Settings
The 62-input reference starts with Chart preset and a compact matrix for all three nine-control packs. The remaining rows document shared data, level, zone, confluence, retained-level, dashboard, and alert controls.
Pivot pack controls
27 mapped inputs
Swipe or scroll horizontally to see every column.
| Row | Enabled | Formula | Anchor | Highest tier | PP | CPR | Labels | R/S color | Style |
|---|---|---|---|---|---|---|---|---|---|
| Pack A | OnToggle | Shadow TraderChoice / text · conditional | AutoChoice / text · conditional | Through R3/S3Choice / text · conditional | OnToggle · conditional | OnToggle · conditional | OnToggle · conditional | BlueColor · conditional | SolidChoice / text · conditional |
| Pack B | OffToggle | CamarillaChoice / text · conditional | AutoChoice / text · conditional | Through R4/S4Choice / text · conditional | OnToggle · conditional | OffToggle · conditional | OffToggle · conditional | RGB 255,152,0Color · conditional | DashedChoice / text · conditional |
| Pack C | OffToggle | FibonacciChoice / text · conditional | WeeklyChoice / text · conditional | Through R3/S3Choice / text · conditional | OnToggle · conditional | OffToggle · conditional | OffToggle · conditional | RGB 156,39,176Color · conditional | DottedChoice / text · conditional |
00 · Chart1 input
Swipe or scroll horizontally to see every column.
| Setting | Control | Default | Choices, limits & availability |
|---|---|---|---|
| Chart presetchartPresetInput | Choice / text | Simple | Simple · Full |
01 · Data & Sessions3 inputs
Swipe or scroll horizontally to see every column.
| Setting | Control | Default | Choices, limits & availability |
|---|---|---|---|
| Use daily-based valuesuseDailyBasedInput | Toggle | On | — |
| Session basissessionBasisInput | Choice / text | Exchange default | Exchange default · RTH · ETH | Conditional |
| Futures RTH session namefuturesRthSessionInput | Choice / text | us_regular | Conditional |
05 · Active Levels & Labels7 inputs
Swipe or scroll horizontally to see every column.
| Setting | Control | Default | Choices, limits & availability |
|---|---|---|---|
| PP colorppColorInput | Color | Yellow | — |
| CPR rangecprRangeColorInput | Color | RGB 156,39,176 | — |
| Pivot line widthlineWidthInput | Whole number | 1 | Min 1 · Max 4 |
| Active line projectionactiveProjectionInput | Choice / text | Current + offset | Current + offset · Anchor end · Extend right |
| Label offsetlabelOffsetBarsInput | Whole number | 20 | Min 0 · Max 100 |
| Show prices in labelsshowPricesInLabelsInput | Toggle | Off | — |
| Label text sizelabelTextSizeInput | Choice / text | Small | Tiny · Small · Normal · Large · Huge |
06 · Reaction Zones6 inputs
Swipe or scroll horizontally to see every column.
| Setting | Control | Default | Choices, limits & availability |
|---|---|---|---|
| Show active zone fillsshowReactionZonesInput | Toggle | On | — |
| Zone width basiszoneModeInput | Choice / text | Daily ATR | Daily ATR · Anchor ATR · Ticks |
| ATR lengthatrLengthInput | Whole number | 14 | Min 1 · Max 100 | Conditional |
| Width per sideatrMultiplierInput | Decimal | 0.05 | Min 0.0 · Max 2.0 · Step 0.01 | Conditional |
| Fixed / fallback ticksfixedTicksInput | Whole number | 4 | Min 1 · Max 1000 |
| Zone fill transparencyzoneTransparencyInput | Whole number | 88 | Min 0 · Max 100 |
07 · Context & Confluence8 inputs
Swipe or scroll horizontally to see every column.
| Setting | Control | Default | Choices, limits & availability |
|---|---|---|---|
| Show dashboardshowDashboardInput | Toggle | On | — |
| Text sizedashboardSizeInput | Choice / text | Small | Tiny · Small · Normal | Conditional |
| Show Pack A developing CPRshowDevelopingCprInput | Toggle | Off | Conditional |
| Enable confluenceenableConfluenceInput | Toggle | On | — |
| Zone colorconfluenceColorInput | Color | Yellow | Conditional |
| Text colorconfluenceTextColorInput | Color | White | Conditional |
| Confluence projectionconfluenceProjectionInput | Choice / text | Current bar | Current bar · At label offset · Extend right | Conditional |
| Show confluence onlyconfluenceOnlyInput | Toggle | Off | Conditional |
08 · Level Test Status9 inputs
Swipe or scroll horizontally to see every column.
| Setting | Control | Default | Choices, limits & availability |
|---|---|---|---|
| Tracking scopeuntestedScopeInput | Choice / text | Core | Core · All enabled levels · All visible levels |
| Color levels by test statuscolorByStatusInput | Toggle | Off | — |
| Show status historyshowStatusHistoryInput | Toggle | On | Conditional |
| Show status labelsshowStatusLabelsInput | Toggle | Off | Conditional |
| Untested coloruntestedColorInput | Color | RGB 96,125,139 | Conditional |
| Tested colortestedColorInput | Color | Gray | Conditional |
| Untested styleuntestedStyleInput | Choice / text | Dashed | Solid · Dashed · Dotted | Conditional |
| Tested styletestedStyleInput | Choice / text | Solid | Solid · Dashed · Dotted | Conditional |
| Fill status historyshowStatusHistoryFillsInput | Toggle | Off | Conditional |
09 · Alerts1 input
Swipe or scroll horizontally to see every column.
| Setting | Control | Default | Choices, limits & availability |
|---|---|---|---|
| Send detailed dynamic messagesdynamicAlertsInput | Toggle | On | — |
Alerts and limitations
What can notify you, what can change the output, and what the indicator cannot establish.
7 fixed alert conditions
An active reaction zone was touched on a confirmed bar.
Price crossed above an active pivot level on a confirmed bar.
Price crossed below an active pivot level on a confirmed bar.
Price entered Pack A CPR on a confirmed bar.
Price exited Pack A CPR on a confirmed bar.
A retained untested zone was filled on a confirmed bar.
An enabled multi-pack confluence zone was touched on a confirmed bar.
Limits to keep visible
- Each formula stops at its published native maximum. Selecting a higher tier does not invent unsupported levels.
- Auto anchor changes with chart resolution. An explicit anchor is clearer when cross-timeframe consistency matters.
- Session basis applies to daily-based mode. Futures RTH relies on a valid symbol-specific named subsession and may fall back when the name is invalid.
- Chart-derived quarterly or yearly anchors can lack enough chart history and report NO DATA.
- Developing CPR is provisional and deliberately excluded from history, confluence, dashboard context, and alerts.
- Confluence requires at least two distinct enabled packs. Repeated origins from one pack do not qualify.
- Shadow Trader and Floor Pivots draw the same ladder. Using both on one resolved anchor creates a duplicate, not a second independent pivot opinion.
- Collections are capped at 30 untested levels, 20 tested markers, and 20 confluence zones within the declared drawing budgets.
- Pivot and reaction geometry describe reference levels. They do not supply entries, exits, targets, scores, or performance claims.
Troubleshooting
Start with what you see on the chart. Each answer explains the likely cause and the first setting, timeframe, or data condition to check.
Why does an enabled pivot pack say NO DATA?
The chart does not have enough completed history for that anchor and data mode. Load more bars, choose a shorter anchor, or try daily-based values. The pack is enabled; it simply has no complete period to calculate yet.
Why does a pivot pack say DUPLICATE or INVALID ANCHOR?
DUPLICATE means an earlier enabled pack already uses the same ladder and effective anchor. Shadow Trader and Floor Pivots count as the same ladder even though the names differ. INVALID ANCHOR means the selected period is smaller than the chart interval. Change the method or choose a larger anchor.
Why does a pack say ATR UNAVAILABLE even though zones still draw?
The selected daily or anchor ATR could not be calculated in that chart context. Rather than remove the zones, the script falls back to your fixed-tick width. Treat the zones as fixed-width references until ATR data becomes available.
Why did hiding PP also change confluence or alerts?
Show PP is not only a display switch. Turning it off removes that central pivot from drawings, events, confluence, and retained-level tracking. Turn Show PP back on if you want PP included in those calculations.
Why is there no confluence even though several zones are visible?
Confluence needs overlapping zones from at least two different enabled packs. Several zones from the same pack still count as one source. Check which pack produced each zone, not just how many zones are on the chart.
Why do the pivots change when I switch between RTH and ETH?
The session choice changes the prior high, low, close, ATR, anchor open, and period boundaries used by the formulas. Pick the session that matches how you trade that market and keep it consistent when comparing charts.
Why are retained levels still counted after I hide status history?
Show status history only hides the drawings. The script still tracks those levels for dashboard counts, confluence, cleanup, and fill alerts. Hiding a level keeps it out of view, not out of the calculation.
Why is a running alert still using my old Confluence setting?
TradingView saved the indicator settings when the alert was created. Changing the chart afterward does not update that alert. Delete it and create a new one with the current settings.
Why do CPR Enter and CPR Exit still fire after I hide Pack A CPR?
The Pack A CPR checkbox is now a drawing control. Hiding it removes the CPR lines and band but deliberately leaves those two confirmed-bar alert conditions active. Delete the alert if you no longer want the event, or recreate it after finalizing the updated setup.
Why does the dashboard follow Pack B or C instead of Pack A?
The card follows the first operational pack. If Pack A has an invalid anchor or no usable data while Pack B or C can calculate, the dashboard uses that later pack instead of blanking the whole card. Review each pack’s status row to see which one degraded.