Quant for Free
Home / Analysis / Air Pocket Profile
Strategy teardown · Air Pocket Profile · method only

Air Pocket Profile — HVN Shelves Plus Explicit Thin-Volume Zones

Most volume profiles paint where trade concentrated and leave the thin bands as blank chart. Air Pocket Profile, a public open-source Pine indicator by FeelsStrategy, tries to promote that blank space into a first-class object: continuous low-volume “air pockets,” beside high-volume shelves and a single peak-volume anchor. This page locks the mechanism as the public script page describes it. It is not a Quant for Free clean-room backtest, and it is not an opening-range, session-VWAP, squeeze, or cumulative-delta system.

summary.json not yet — no clean-room run. No site Sharpe, Deflated Sharpe, hit rate, or trade count is attached, because none was produced.

1 / What the object actually is

The public description (script page Air Pocket Profile [FEELS]) specifies a range-weighted profile, not a close-only bin:

Row display is a contrast rescale, not a second signal. With the heaviest row as the peak and the average row volume as the mean, each row is rescaled by min(rowVolume / mean / 2, 1) ^ contrast. Rows above average stay vivid; rows below fade. That is a drawing rule.

The page then names four structural reads on that histogram:

Object What the page says it is
HVN shelves Local maxima of the profile, ranked by volume. Places “where price tends to slow.”
Volume anchor The single heaviest row, drawn as a glow line. Called the strongest reference in the window.
Air pockets Continuous runs of rows below an air-pocket threshold, and tall enough to pass a minimum pocket size. “Price tends to travel through them with little resistance.”
Fresh vs old Volume inside a fresh window is coloured separately from older volume.

Two derived reads sit on top: profile balance (share of volume above vs below the anchor) and anchor shift (anchor now versus its position N bars ago, direction only or direction with a percent). Optional marks — acceptance/rejection, and bars that travelled through a pocket — can be toggled. The page says behaviour marks use confirmed bars “to avoid intrabar repainting.” On symbols without volume, the profile “falls back to a range-based weight.”

Parameters named on the page, without numeric defaults in the text we could read: lookback, vertical resolution (row count), air-pocket threshold, minimum pocket size, profile contrast, fresh window, node count (how many HVNs to draw), anchor-shift window and display mode, and the two signal toggles.

The script page says the author tested it across BTC, ETH, and other liquid assets on 1H, 4H, 1D, and 1W. That is a coverage note, not a result table.

2 / What it does not claim — and where it fails

The page’s own closer is the right boundary: “This is an analysis tool, not a signal service.” Nothing on the page is a completed-trade study. There is no published hit rate for “transit through a pocket,” no hold-time comparison of pocket vs shelf, no costed path, no out-of-sample window.

Failure modes that follow from the mechanism, not from a backtest we did not run:

We did not extract the Pine source from the fetched page (the HTML carried the description and an empty pineVersion, not //@version text). Numeric input defaults, exact local-maximum definition, and the precise row-threshold comparison are therefore unverified against code. If the source disagrees with the description, the source wins and this draft should be corrected before any publish.

3 / How a reader could tear it down next

Not a signal. A next attempt, still untested here:

  1. Lock the profile in a clean room. Reimplement range-weighted binning with the published impulse 0.7 + 0.6 × body ratio, the contrast rescale, HVN = local maxima ranked by volume, anchor = argmax row, air pocket = contiguous rows under the threshold with a minimum height. Put the formula in the notebook. Do not paste Pine into a live chart and call it validation.
  2. Separate drawing from behaviour. Define one pre-registered measurement: time (or range traveled per bar) while price is inside a pocket versus inside an HVN shelf of similar height, on the next confirmed bars only. Baseline: zones of the same height placed at random inside the same lookback, and the same rules with impulse weight disabled.
  3. Freeze parameters before looking. Lookback, row count, threshold, min pocket size, contrast, fresh window, node count, shift window. One instrument, one timeframe, one chronological split. If you touch the threshold after seeing the pockets, that pass is in-sample search, not a test.
  4. Volume identity. Run the identical lock on a feed with real volume and on the no-volume fallback. If the “pocket” only appears in one of them, say so.
  5. Do not borrow ORB / VWAP / Squeeze / CVD. Those are different objects already on this site. A pocket is unused thin-zone geometry. If the only way the marks “work” is by coinciding with an opening range or a VWAP cross, the profile was not the cause.
  6. Only then a gauntlet. If someone later turns confirmed-bar marks into a position rule, that is a new hypothesis: costs, a walk-forward or hold-out that respects the sufficiency–coverage–causality budget (α + β ≤ 1 + Λ when the scheme is not causal — see Li 2026, this slate’s Learn draft), and a deflated Sharpe if a grid was searched. That summary.json does not exist yet.

4 / Where it sits

Session VWAP Bias and Stocks-in-Play RelVol ORB ask about session imbalance and abnormal open volume. Squeeze Momentum asks about a compression oscillator. Air Pocket Profile asks whether the holes in a range-weighted profile are worth drawing as zones, and whether price actually transits them faster than a shelf. Until step 2 above is measured, the honest status is: the drawing is specified; the behavioural claim is not.

5 / Verdict

Clear unused object: HVN shelves, one anchor, explicit thin-volume runs, fresh-volume colour, anchor migration. Not an ORB, not a VWAP, not a squeeze, not CVD. Also not a validated edge. The page does not pretend to be one. The open possibility is small and empirical — transit time through a frozen pocket versus a frozen shelf, with the impulse weight ablated — not a chart mark promoted into an order. Rules of the drawing are partly locked from the public description; the Pine text itself was not in the fetch, so a clean-room still has to read the source before anyone trusts a threshold.

Source

Numbers

Only figures read on the source page:

No hit rate, Sharpe, sample size, or pocket-transit statistic was stated. No performance numbers taken from the source beyond the two formulas and the timeframe list above. No Quant for Free metrics. summary.json not yet — no clean-room run.

Educational analysis, not investment advice. A methodology note of a publicly documented source — not a recommendation to trade or avoid any instrument, script, parameter set, or workflow. This page does not report a Quant for Free clean-room backtest and does not attach a summary.json. Figures in the text are the source’s, labeled as such. See the full disclaimer.