Limitations and Trust Boundaries
This page names, in plain language, what Axiom CVD Osc STR does not and cannot do. It is the honest-limits page. Nothing here is hidden elsewhere in the pack — most of it appears in smaller doses on the pages where it...
Written By Axiom Admin
Last updated 22 days ago
Limitations and Trust Boundaries
This page names, in plain language, what Axiom CVD Osc STR does not and cannot do. It is the honest-limits page. Nothing here is hidden elsewhere in the pack — most of it appears in smaller doses on the pages where it first becomes relevant — but this is where it lives explicitly, without other content competing for attention. If a reader only ever opens two pages, this should be one of them.
The goal of this page is not to talk you out of using the tool. It is to make sure that when you do use it, you know where to stop trusting the reads and where to pull in something outside the pane.
The estimate boundary
The participation model inside STR's slots estimates signed volume from lower-timeframe OHLCV. It is not footprint-grade bid/ask delta. No setting on the indicator turns it into footprint data.
This is the single most important fact on this page.
What that means concretely
Every CVD value the slots produce is the output of an estimator that reads body direction, close location, wick asymmetry, and carry-forward state across indecisive bars. The estimate is defensible. It is not a measurement.
Every slot line you see is a smoothed function of that estimator.
Every blended value is a weighted mean of those smoothed functions.
Every structure feature — Keltner, BBWP, Donchian, divergence — reads from the blended value, which inherits the estimate boundary.
None of those layers can turn an estimate into a measurement. A well-built estimator is still an estimator.
When the boundary matters most
On balanced bars and wick-led rejection bars. This is where footprint data and OHLCV-based estimation diverge the most. The estimator reads wick asymmetry explicitly; a tool that assumes "close above open means buying" does not. The estimator is more defensible than that naive approach on these bars, but it is still not the same number a true-delta tool would produce.
On instruments with unusual volume profiles. The estimator uses bar volume as the magnitude of participation. Instruments with unusual volume behavior — very thin overnight sessions, heavy auction bars at open and close — will produce slot values that reflect the volume profile's peculiarities as well as the underlying pressure. Read the slot on those bars as a joint statement about both.
On instruments where your own read of participation is already strong. If you have reliable true-delta data elsewhere in your process, the boundary is where you switch from using STR as the primary read to using it as the bounded, portable, 0-to-100 framing on top of that other read.
What verification looks like
Load the indicator alongside any true-delta tool you have access to, on the same instrument, at the same window. The two reads will not match bar-for-bar. The question is whether they agree on direction and pressure character across stretches. If they do, the estimator is doing what estimators should do.
Compare slot behavior across strong-body bars and wick-heavy bars. The estimator should behave differently on the two. That is not a failure; that is the point of the wick-aware design.
Structure features are not independent reads
The divergence module, the Keltner envelope, the BBWP columns, and the Donchian channel all read from the same blended CVD line. When two or more of them say the same thing on the same bar, that is the blended line agreeing with itself under multiple constructions. It is not two independent reads reaching the same conclusion.
What that means concretely
"The Keltner is stretched and the Donchian is pushing a new high and BBWP is expanding" is one line agreeing with itself three ways. The reading is coherent; the confidence you should place on it is no higher than it would be from any one of the three features alone.
"The divergence triangle printed, and the blend is at the upper Keltner line" is a description of geometry on a line that is currently stretched. Both statements are about the same line. The stretch does not corroborate the divergence; it describes the same bar from a different angle.
Where you should look for independent corroboration
The slot stack underneath the blend. Slot 1, slot 2, and slot 3 are separate computations on separate timeframes. They can genuinely agree or disagree. They are the closest thing to independent corroboration inside the pane.
The chart itself. Price is not derived from the blend. A divergence triangle inside a price structure that has already been showing exhaustion is a different read from the same triangle inside a clean continuation.
A second instrument. A correlated-instrument slot (via
Optional Ticker) can be weight-zero and watched purely as an independent check.
BBWP is a blend read, not a price read
BBWP on STR measures the blended CVD line's own Bollinger band width, ranked as a percentile across the blend's own recent width history. The columns tell you about the blend's own width regime. They do not tell you about price's volatility.
What that means concretely
A low BBWP column says the blend's own Bollinger width is currently low by the blend's own recent standards. It says nothing about whether price is compressed.
A high BBWP column says the blend's own Bollinger width is high by its own recent standards. It says nothing about whether price is in an expansion regime.
A BBWP threshold crossing is a regime change in the blend's width, not in price's.
When the mismatch between blend width and price width matters
Quiet price, busy blend. The instrument's price may be rangebound while the pressure read is moving actively. BBWP will expand; price will not. That is genuine information — it says pressure is building while price is not yet following — but if you read BBWP as "price volatility," you will misinterpret the moment.
Busy price, quiet blend. Price can move violently while the blend sits. Real example: an exogenous news shock produces large price bars with balanced participation underneath. BBWP stays low. The tool is not malfunctioning; it is saying the pressure read did not behave like price did.
Divergence triangles have real limits
The divergence module is the most magnetic visual on STR and the easiest to over-read. Several limits matter.
Triangles are a description of geometry, not a directional call
Every pack page reinforces this because it is the single most common and costly misread STR invites. A confirmed bullish divergence is two confirmed price pivot lows in lower-low order paired with two blended-CVD values in higher-low order at the same offsets. That description is geometry. It makes no claim about what price does next. Confirmed divergences print directly into continuations routinely — that is not a bug and the module is not broken when it happens.
Strict pivots require confirmation time
The pivot functions that drive the module need Pivot Len bars to the right of the pivot before they confirm. That is the cost of a strict pivot definition. Loosening the definition (lowering Pivot Len) produces more triangles at a noisier scale, not better triangles. The pack will not name a "best" lookback; the correct value depends on the swing scale you actually read.
Plot On Pivot is a display control, not a timing change
With Plot On Pivot OFF, the triangle prints on the confirmation bar — the bar where the right-hand pivot completed. With Plot On Pivot ON, the triangle is visually shifted back by Pivot Len bars to sit on the original pivot bar. The alert still fires on the confirmation bar in both modes. The back-shifted marker is a display convenience for historical review; it is not a statement that the script could have flagged the triangle at that earlier bar in real time.
If you learn the pane with Plot On Pivot ON, you will form the instinct that the triangle appeared at the bar where it visually sits. That instinct will cost you money the first time you try to act on it live. Leave Plot On Pivot OFF in working configurations.
Divergence geometry is not causation
A divergence that appears at the same bar price reverses is not the reason price reversed. The triangle is describing the shape of the pivot pair; the reversal may be caused by any number of unrelated inputs. The correct use of the triangle is as a prompt to re-read the pane, not as an explanation of a move that was already underway.
Alerts repeat; they do not flip
Every alert in this script except the two divergence alerts fires on every confirmed bar where its state holds. That is by design — it keeps the alert surface honest about what the condition is — but it has two implications worth naming.
Sustained states produce many alerts. A slot that has been bullish for thirty confirmed bars has fired thirty
Is Bullishalerts if that alert was armed. This is not a malfunction. It is the alert working correctly. If you need flip-only firing, you need to add edge detection on the receiving side or throttle in your alert platform.The script does not gate alerts on "first bar of state." There is no distinction in the alert stream between a state that just flipped and a state that has held for an hour. If your process cares about that distinction, you need to add the gate yourself.
The two divergence alerts are one-shot per confirmation bar — they cannot fire on a bar that does not have a new confirmed pivot. That is a different behavior from the state-descriptor alerts, and confusing the two is easy if you have not read both carefully.
Intrabar data is finite
The slot estimator relies on intrabar data at the lower timeframe precision you set. TradingView serves intrabar data across a limited history window. When you scroll the chart back far enough, intrabar data ages out.
What happens at that point
The slot falls back to estimating delta from the slot bar's own OHLCV, using a fallback function. The fallback is a cruder estimate — less granular than the intrabar walk. The slot line does not visually announce the change. The line just starts behaving differently on older bars.
Why this matters for backtests
If you backtest a workflow across a long history, the slot's estimator is not reading the same estimate across the whole chart. Recent bars read at the precision you set; older bars read at the fallback. Behavior differs. This is not a bug — it is a limit of the data feed — but a backtest that treats every bar as reading the same estimate is comparing apples to slightly-different apples.
Verification
Scroll the chart back far enough to leave the intrabar history window for your precision setting. Watch the slot line. If the line's character changes — more abrupt, more quantized, less smooth — that change is the fallback.
Mitigation
Pick a lower-timeframe precision whose intrabar history covers your whole chart window. Higher precision (smaller LTF) ages out faster; lower precision (larger LTF) ages out more slowly.
Runtime guardrails exist for a reason
STR enforces three runtime constraints that throw errors when violated. They are not decorative.
Slot timeframe must be greater than or equal to the chart timeframe. A slot lower than the chart would be asking for higher resolution than the chart bar can carry.
Lower-timeframe precision must be strictly lower than the slot timeframe. A precision equal to or higher than the slot timeframe would make the intrabar walk either trivial or impossible.
Window Lengthmust be greater than or equal to the slot timeframe. A window smaller than the slot would reset before the slot had filled a single bar.
The errors are not subtle — they surface with the slot label in the message. If you hit one, the message tells you which slot needs fixing. Do not suppress these by reworking what you are asking; read them as "you were asking for something the math cannot do." Change the configuration to match.
What the tool will not do
Even used correctly, STR will not:
Tell you when to enter or exit a position. That is a process decision, not an indicator output. The pack does not document setups because there are no setups inside the pane; only state descriptions and geometric events.
Tell you whether a divergence will work. Strict geometry is a description, not a forecast. The same triangle is a useful read in one market context and a coincidence in another.
Tell you what price will do. The slots read pressure, which is related to price but not the same thing. Pressure can move while price sits, and price can move while pressure sits — the relationship between the two is part of what you are trying to learn from the pane, not something the pane is going to settle for you.
Guarantee the 0-to-100 pane is meaningful across all instruments. The pane is bounded, which makes it portable. Boundedness is a normalization guarantee, not a structure guarantee. A slot pinned at 0 or 100 for a long stretch on a very quiet instrument may be amplifying micro-moves, not describing a real one-sided regime; cross-check with the instrument's absolute price behavior across the same window.
Make a crowded pane readable. If you have five slots visible, three features on, and master smoothing engaged, the pane is harder to read, not easier. The indicator cannot compensate for that by itself. The right move is almost always to take something off the pane, not to look harder at the pane you have.
How to handle the boundaries in practice
Knowing the limits is the first half of the job. The second half is having a habit for what to do when you reach one.
When the estimate boundary matters most, the move is to introduce a second source of evidence — a true-delta tool if you have access to one, a manual read of the chart's body and wick behavior if you do not, or a correlated-instrument slot through
Optional Tickerat weight zero. The boundary is not a reason to stop using STR; it is a reason to know when STR is the only voice in the room and when it is one voice among several.When you notice multi-feature agreement on the blend, the move is to look outside the blended line for independent corroboration. The slot stack, price itself, a correlated instrument. Multi-feature agreement on the blend is not nothing — it is a coherent description — but it is not the same evidentiary weight as agreement between independent surfaces.
When you notice BBWP and price width disagreeing, the move is to read the disagreement as information. Pressure moving while price sits is a real regime; price moving while pressure sits is also a real regime. Neither is a malfunction. Both are read as questions about which axis is leading and whether your process should weight the leading axis here.
When a triangle prints into a continuation, the move is to add it to the log of triangles that printed into continuations. Over enough triangles, you will learn the rate at which it happens around your instrument and your timeframe — which is the only honest way to calibrate how much weight a triangle deserves in your process.
When intrabar fallback is active on a backtest, the move is to stop treating the older portion of the backtest as the same estimator. Either restrict the backtest window to the precision's intrabar coverage, or coarsen the precision so the whole window is on the same fallback regime. Mixed-regime backtests look honest and are not.
When a runtime guardrail fires, the move is to read the message and change the configuration. Do not engineer a workaround. The guardrail exists because the math the configuration was asking for is not coherent.
Where to go next
For the timing and repaint tradeoffs that underlie the estimator's honesty posture, MTF and Repainting.
For the participation model's shape and each structure feature's construction at mental-model altitude, For the Geeks.
For named use patterns that respect these limits, Workflows.
For the alert behavior described above, Alerts.