For the Geeks
This page is for readers who will not trust the pane until they have a picture of what is happening to the price series on the way to the reading. It teaches that picture at the mental-model level. It does not publish...
Written By Axiom Admin
Last updated 22 days ago
For the Geeks
This page is for readers who will not trust the pane until they have a picture of what is happening to the price series on the way to the reading. It teaches that picture at the mental-model level. It does not publish formulas, exact clamp ordering, blend weight normalization rules, fallback behavior in degenerate cases, or anything else that would let a reader rebuild the script from scratch. The goal is interpretability β enough that you can reason about what the pane is doing and why it is doing it β without erasing the line between understanding a tool and duplicating it.
There are two reasons the line exists. The first is that the specific arithmetic in the middle of this transformation is the work that makes the CTX trim behave the way it does; publishing it would let someone rebuild the mechanic without any of the audience-facing care this pack is trying to teach. The second is that a recipe is not understanding. A reader who can rebuild the formula from a doc has acquired the mechanism; a reader who can audit the pane against the model in this page has acquired judgment. The pack is in the second business.
If you are looking for a recipe, this is not that page. If you are looking for the honest answer to "what is this thing actually doing to the price series," read on.
The pipeline in one sentence
For each enabled slot, the tool measures how far the chosen source sits from a baseline MA, rescales that distance by a volatility reference, pushes the result through a bounded window, smooths it, and then proportionally combines the active slots into a single bounded pair of lines that optionally get one more smoothing pass. Every stage is a decision the user can interrogate.
Stage by stage, at the mental-model layer
Stage 1 β Distance from a baseline
The honest answer to "where is price relative to an MA" is a number that can be positive or negative and can grow arbitrarily large. The tool does not report that raw number. It takes it as an intermediate value for the later transformation.
Why this matters: the raw distance is unit-dependent. A raw distance of 2.00 on a $50 stock is a different economic event from a raw distance of 2.00 on a $50,000 index future. If you tried to read a pane of raw distances across different instruments, the pane would be unreadable. Everything that comes later is what fixes that.
Stage 2 β Rescaling by a volatility reference
The raw distance is normalized against a recent-volatility reference. In this script, the reference is ATR over a user-configured length. The output is a distance expressed in "how many ATRs," which is a scale-free quantity that lets you compare stretch across calm and volatile markets.
What the choice costs: ATR is itself an imperfect volatility proxy. ATR measures bar-to-bar range, which is sensitive to gaps and quiet sessions. It is the most widely understood volatility scale on a trading chart, and it is not a neutral statement about volatility. When the tool uses ATR, it inherits ATR's quirks β a quiet Monday can inflate the normalized reading because ATR over a 14-bar window carries a memory of the prior week.
ATR Length is the dial that sets that memory. A short ATR length makes the normalization reactive to the current regime. A long ATR length anchors the normalization in a longer window and takes longer to adjust to regime changes. There is no ATR Length that is correct for every use. Extending the window adds stability and delays adaptation; shortening it does the reverse.
Stage 3 β Sensitivity multiplication
The ATR-normalized distance is multiplied by a user-settable sensitivity factor before it reaches the bounded mapping. The multiplier has no volatility-awareness of its own β it is a fixed number you have chosen.
What this dial really does: it moves where the "typical" reading lives inside the bounded window. At sensitivity 1.0, the typical reading on most instruments sits somewhere in the middle of the 0..100 band. At sensitivity 2.0, the same stretch reading that used to live near 60 now lives near 70 or 80, which pushes the tails of the distribution toward the edge. At sensitivity 0.5, the whole reading compresses toward 50.
Why a saturated reading is not an intense reading: once the product of normalized distance and sensitivity is deep in the tail of the bounded curve, different raw stretch values crowd near the same visible edge. The tool has very little room left to tell them apart on the pane. If your reading frequently saturates, sensitivity is too high for this regime, ATR Length is too short, or both.
Stage 4 β Mapping into a bounded window
The sensitivity-scaled distance is limited to a reasonable input range and passed through a smooth 0..100 curve. Extra clamps later in the pipeline keep smoothed and blended outputs inside the pane. This bounded mapping is the reason every pane is comparable. It is also the reason saturation hides information at the extremes. The pack refers to this throughout; the "stretch, not momentum" language in Visuals & Logic is the direct consequence.
What the bounded mapping does not do: it does not preserve unlimited resolution near the edges. It flattens as it approaches the boundaries, so another unit of raw stretch matters less visually near 100 than it does near 50.
Stage 5 β Fast and slow on each slot
The bounded reading is the slot's fast line. On top of it, the tool applies an MA β the Slow Type family at the Slow Length β to produce the slot's slow line. The slow line is not plotted per slot; it drives the fast-vs-slow color on that slot.
What a short Slow Length is doing: producing a slow line that is only a few bars behind the fast, so the fast-vs-slow relationship flips quickly. What a long Slow Length is doing: producing a slow line that trails further, so the fast-vs-slow relationship flips less often and the slot color becomes a slower regime read. Neither is "better." They are different reads of the same stretch signal.
When the slow line has not accumulated enough history to be defined, the slot compares fast against the midline of the window. This is the first-bar fallback described in Visuals & Logic and in Troubleshooting. The fallback is a design choice rather than a bug, and it resolves quickly as bars accumulate.
Stage 6 β The blend
The enabled slots with positive weights are combined into a single fast line and a single slow line. The combination is weights-proportional β the ratio of weights to each other determines each slot's contribution β and the result is again bounded inside the window.
What stays protected: the exact normalization rule for weights, the exact handling of missing slot values inside the combine, and the precise ordering of clamping operations in and around the combine. All of those are implementation details that would make the mechanic cloneable. Missing slot values are handled conservatively and the blend continues to produce a defined reading when at least one enabled slot has a positive weight; beyond that, the handling is not published.
Stage 7 β Optional master smoothing
If master smoothing is enabled, the blended fast and slow lines receive one more MA pass before plotting. The master pass is additive stability at the cost of additive lag. It does not modify slot lines and it does not change any individual slot's alerts.
Why the master pass cannot rescue a noisy blend: smoothing smooths whatever it receives. A noisy blend with a master pass produces a smoother, later noisy blend. The right place to fix slot-level noise is the slot.
Properties of the mechanic
Bounded by construction. Readings cannot escape 0..100 regardless of market behavior. This is the comparability property.
Volatility-normalized. Readings are expressed in ATR units before bounding, which makes cross-instrument reading possible. This is the scale-invariance property.
User-shaped. Every stage is controlled by an input you can change and an input you can read back. This is the configurability property the pack keeps emphasizing.
State-reporting, not event-reporting. The pane reports "where the stretch is right now" on every bar. Transitions are inferred by the reader, not announced by the tool.
Bar-close honest. All alerts evaluate on confirmed bars. Intrabar behavior is controlled per-slot by the
On Bar Close?posture.
Properties the mechanic deliberately lacks
Unbounded resolution at extremes. The bounded mapping costs you the ability to distinguish "very stretched" from "extremely stretched" once either side saturates. This is the price of comparability.
Built-in regime awareness. The tool does not know whether the current regime is trending, ranging, or transitioning. It reports stretch; you interpret the regime. Any "the market is in a range" reading is yours, not the pane's.
Cross-slot independence enforcement. The alignment alerts and the blend combine slots regardless of whether the slots carry independent information. The tool does not audit whether your slot set is differentiated. The alignment trap lives in the gap between the slot-agreement question the tool answers and the independent-evidence question a careful reader wants answered.
Prescriptive defaults. The shipped defaults load cleanly and teach the pane. They are not a recommendation for any instrument, timeframe, or workflow. Treating them as tuned is a category error β nothing in the script thinks about your instrument when it sets those defaults.
Transition detection. The tool reports state on every bar. The "just flipped" reading comes from comparing state across bars, and that logic lives in the reader or in an external alert filter, not in the script. Alerts fire on the state that holds at close.
How to verify the model on your chart
Add the indicator with a single slot enabled. Change ATR Length while holding the rest fixed. Watch the pane redistribute; you are seeing the volatility normalization adapt.
Change ATR Sensitivity. Watch the reading push toward the boundaries at higher values and compress toward 50 at lower values. You are seeing the sensitivity multiplier.
Change Slow Length on that slot. Watch the frequency of color flips change. You are seeing fast-vs-slow behavior shift with smoothing.
Enable a second slot and raise its weight from 0. Watch the blend move toward the new slot's behavior. You are seeing the combine.
Enable master smoothing and raise its length. Watch the blend color flips delay. You are seeing the master pass's lag cost in action.
None of those experiments reveals a formula. Every one of them lets you confirm that the mechanic is behaving the way this page describes. That is the intended trust posture of this page β informative, not reproducible.
Where this page stops
The following are deliberately out of scope:
The exact arithmetic of the distance-to-reading transformation.
The exact role of each clamp and its precise order.
The blend's weight normalization formula.
Internal behavior when any slot returns a missing value and exactly how that value is substituted.
Internal behavior when ATR is zero or degenerate.
Any expression that would let a competent programmer rebuild the pipeline.
These lines exist because the pack would rather earn your trust than hand you a recipe. If a question you want to answer would require crossing those lines, the honest answer is that this page does not answer it. The answer you can act on is above.
Where to go next
The practical mental model without the mechanic layer: Visuals & Logic.
The trust boundaries that the mechanic shape forces on interpretation: Limitations & Trust Boundaries.
Scenarios that exercise each stage of the pipeline deliberately: Workflows.