Reading the Indicators - Cival Manipulation & Pressure Toolkit
This page explains every element each indicator draws, every state it can be in, every panel line and how each number is computed. Defaults are the values a fresh instance loads with; the full list is in 02-Settings-Reference. Setting names appear in italics exactly as ATAS shows them.
Both indicators describe what already happened in candles and executed order flow. The vocabulary is deliberate: pattern, candidate, evidence points (a checklist, not a probability), reference prices (not orders or targets). Footprint volume shows executed aggression; it does not show who holds positions or where stops are.
Demo data used for the worked examples. The store demo was produced by the shipped plugins (Cival.Manipulation 1.1.1.0 and Cival.PressureToolkit 1.0.0.0, default settings) on Hyperliquid BTC-PERP five-minute bars built from trades recorded by the Cival order-flow recorder, 17 to 21 October 2026, 1,380 closed bars, tick size 1. Times are UTC bar open times. Examples illustrate mechanics on one sample; they say nothing about future results. The demo carries no individual-print or live-depth feed, so those two Pressure Toolkit layers are explained from their rules only.
Layout note (both indicators). Group 00 Chart clarity holds Compact display (full detail must be off) (on) and Full analysis detail (on). With the defaults you get the full layouts described below, and a small text layer spells out abbreviations (RVOL is shown as Relative volume) and rewrites a few labels, noted where it matters. Turning Full analysis detail off and Compact display on gives a reduced layout: Manipulation shows only its newest cycle, Pressure Toolkit shows at most 8 recent markers (roughly the last 20 bars) with plain-language labels and at most 3 levels, and both hand their summary to a small shared panel titled CIVAL / CURRENT CHART READ.
Cival Manipulation
1. What it measures
Cival Manipulation maps one sequence on closed candles: a compressed range, a one-sided sweep of one boundary, a closed-price reclaim back inside, and a later directional expansion through the opposite boundary. "Manipulation" is the name of the pattern, not a claim about anyone's intent, hidden stops or conduct. It is described in the product as research: it draws reference prices, it does not place orders.
Only one cycle is active at a time. When a cycle ends (for any reason) there is a cooldown of 4 bars before a new range can be recognised. The indicator keeps at most 64 cycles and 512 events.
2. The phases
| Phase (panel name) | What triggers it (defaults) | On the chart |
|---|---|---|
| Range (RANGE) | After at least 14 prior true ranges (with an ATR above one tick), the last 12 closed bars form a window whose high-low width is at least 2 ticks and at most 3.2 x ATR, and whose price efficiency is at most 0.30. Efficiency is the net move from the window's first open to the latest close divided by the sum of the window's true ranges. The window's high and low are frozen at that bar ("range known"). | Blue box, label, vertical line at the known bar |
| Swept (SWEPT) | While the range is active, a closed bar trades beyond one boundary by at least max(1 tick, 0.15 ATR). A break below the low is a sell-side sweep (long bias, side +1); a break above the high is a buy-side sweep (short bias, side -1). The excursion must not exceed 1.75 ATR beyond the boundary. | Purple band between the sweep extreme and the swept boundary |
| Reclaimed (RECLAIMED) | A completed bar closes back inside: at or above low + 0.05 ATR (long bias) or at or below high - 0.05 ATR (short bias). This can be the sweep bar itself or any of the next 3 bars (Reclaim window (bars)). The sweep extreme keeps updating until the reclaim. The invalidation is then fixed at the extreme minus (long) or plus (short) max(1 tick, 0.15 ATR), rounded outward to a whole tick. | Label SWEEP / RECLAIM; invalidation line begins |
| Expansion (EXPANSION) | A later closed bar (never the reclaim bar), within 8 bars of the reclaim (Expansion window (bars)), closes beyond the opposite boundary by at least 0.10 ATR, with a body of at least 0.80 ATR in the cycle's direction, body / range of at least 0.55, and a close in the directional 32% of the range (closing location at least 0.68). With Orderflow confirmation = RequireCompleteDelta it also needs directional delta of at least 8%. The bar's close becomes the reference price. | Tinted column from that bar, label with the evidence score, a dot at the reference, 1R/2R guides |
| Complete (COMPLETE) | After expansion, a later bar reaches the 2R reference price. | Cycle ends |
| Invalidated (INVALIDATED) | Checked on every bar after the reclaim, before anything else: the bar's low touches the invalidation (long) or its high touches it (short), wicks included. Also: both boundaries swept in one candle (path unknown); a sweep deeper than 1.75 ATR (treated as an accepted breakout); a sweep that grows past that depth before reclaim; after expansion, a close back through the range midpoint; a malformed candle; or a coverage break. | Cycle ends |
| Expired (EXPIRED) | The range ages past 40 bars with no sweep; no reclaim within 3 bars of the sweep; no expansion within 8 bars of the reclaim; or the expansion has run 32 bars (Expansion timeout (bars)). | Cycle ends |
Other events recorded in the report: retest (first later bar within 0.1 ATR of the broken boundary that closes back on the expansion side) and target1 (1R reference observed). They are not drawn as markers.
Reference prices. At expansion the indicator sets: Reference = the expansion bar's close; risk = the distance from Reference to the invalidation; 1R and 2R = Reference moved in the cycle's direction by one and two times that risk. These are analytical distances: not entries, orders, targets or profit and loss. If a later bar crosses both the invalidation and a target, the invalidation takes priority.
3. Fixed rules (not settings)
| Rule | Value |
|---|---|
| Reclaim buffer | 0.05 ATR |
| Invalidation buffer | max(1 tick, 0.15 ATR) |
| Expansion close location | at least 0.68 |
| Relative-volume evidence threshold | 1.25 x the mean volume of the previous 20 candles |
| Retest tolerance | 0.1 ATR |
| Evidence lookbacks | VWAP anchored at the range's first bar; trend uses the previous 20 closes; CVD uses 5 candles |
ATR here is the simple mean of the previous 14 true ranges (ATR baseline bars), excluding the current bar (a plain average, not Wilder smoothing), and is frozen into each cycle when its range is recognised.
4. Evidence points (a checklist, not a probability)
Evidence is recomputed at each phase event on the bar that produced it, and frozen after expansion. The panel shows Evidence N/100 · M observable: N is the points met, M is the points available (items that could not be evaluated, such as flow items without footprint, are not scored).
| Item (id) | Points | Met when |
|---|---|---|
| Range compression (compression) | 10 | Efficiency at most 0.30 (always true for a recognised range) |
| One-sided sweep (sequence) | 15 | A sweep has occurred |
| Closed-price reclaim (reclaim) | 10 | The reclaim has occurred |
| Directional displacement (displacement) | 15 | The evaluating candle has body at least 0.80 ATR in the cycle's direction, body / range at least 0.55 and closing location at least 0.68 |
| Relative volume (volume) | 10 | The candle's volume is at least 1.25 x the previous 20 candles' mean |
| Anchored candle VWAP (vwap) | 8 | The close is on the cycle's side of a VWAP built from (high + low + close) / 3 x volume, anchored at the range's first bar (candle VWAP, not execution VWAP) |
| Prior 20-bar mean (trend) | 7 | The close is on the cycle's side of the mean of the previous 20 closes (needs 20 prior bars) |
| Directional delta (delta) | 8 | Recorded flow is available and direction-adjusted delta / volume is at least 8% (Minimum directional delta %) |
| Five-bar CVD response (cvd) | 5 | This and the previous 4 candles all have recorded flow and their summed delta points in the cycle's direction |
| Counterflow reclaim (counterflow) | 7 | The sweep candle had recorded flow whose delta pushed through the swept boundary (against the cycle's direction) by at least 8% of that candle's volume, and the reclaim has happened. It is a proxy for aggression that failed, not proof of absorption |
| Recorded stacked imbalance (stacks) | 5 | The evaluating candle has at least one run of 3 or more consecutive diagonal imbalance rows (3x or more) on the cycle's side |
5. Recorded order flow
A candle has recorded flow only if its bid + ask volume adds up to its candle volume within 1%, with consistent totals. Anything else is treated as unavailable, never as zero. Orderflow confirmation chooses how flow is used:
| Mode | Behaviour |
|---|---|
| UseWhenAvailable (default) | Flow evidence is scored when available. Price-only detection still works; unavailable evidence is shown as such |
| RequireCompleteDelta | Expansion also needs directional delta of at least Minimum directional delta % on a candle with recorded flow |
| PriceOnly | Flow evidence is not used at all |
6. What is drawn
| Element | Setting | Meaning |
|---|---|---|
| Range box | (always) | Blue (#38BDF8) box from the first bar of the 12-bar window to the sweep bar (or the latest bar), between the frozen low and high. Label 01 CONSOLIDATION low — high, shown as Consolidation range low — high in the default detail mode |
| Range-known line | Show phase labels | Thin vertical line with Range known · bar N (shown as Range confirmed at bar N). The box reaches back for context, but the range was not known until that bar |
| Sweep band | (always) | Purple (#C084FC) band between the sweep extreme and the swept boundary. Label 02 SWEEP, or 02 SWEEP / RECLAIM (shown as Sweep rejected / range reclaimed) once reclaimed |
| Expansion column | (always) | Faint full-height tint from the expansion bar, green (#34D399) for long and rose (#FB7185) for short, a dot at the reference, and the label 03 LONG EXPANSION · score/100 (shown as Bullish expansion · score/100; short is Bearish expansion) |
| Risk guides | Show reference risk guides (on) | For the selected cycle: dashed lines from the reclaim bar to the right edge. INVALIDATION <price> always uses the Short colour and 1R GUIDE / 2R GUIDE the Long colour, whichever way the cycle points. In the default detail mode the first reads Count invalid below/above <price>. Same price either way |
| Panel | Show evidence dashboard (on) | Section 7 |
The newest Maximum visible cycles (8) that overlap the visible bars are drawn. Labels move to a free spot nearby or are dropped if crowded. There are no markers for retests or targets; read those in the exported report.
7. The panel, line by line
Hover a candle to select the cycle spanning it; otherwise the newest cycle is shown, even if it has finished. The panel sits in Dashboard corner (TopRight) with Dashboard width 370 (240 to 520).
| Line | Meaning |
|---|---|
| CIVAL MANIPULATION | Title |
| Phase in capitals | RANGE, SWEPT, RECLAIMED, EXPANSION, COMPLETE, INVALIDATED, EXPIRED; WARMUP / SCANNING when no cycle exists. Rose when the cycle's side is short, blue otherwise |
| Evidence N/100 · M observable | Points met / points available |
| Range low — high | The frozen boundaries |
Invalidation <price> | Reference <price> |
— while not yet defined |
1R <price> | 2R <price> |
— until expansion |
Delta <n>% | Relative volume <n>x |
Direction-adjusted delta and relative volume of the evaluating candle, or unavailable. Numbers show up to 8 decimals. Delta is meaningful only after a sweep has given the cycle a direction |
| Met item ids | The first five met evidence ids, e.g. compression · sequence · reclaim |
| Recorded flow F/C bars | F closed bars had usable bid/ask flow out of C closed bars processed |
| Status | Section 9; with no status, Closed-bar evidence · no execution / probability claim |
8. Timing, history and gaps
- Closed bars only. The newest candle is always treated as forming and excluded, even on a static chart. A phase appears when the candle that completes it has closed. There is no live preview layer. Alerts (if on) fire when the next candle begins.
- Ranges are drawn back, known late. A range is recognised at the end of its 12-bar window. The early part of the box is context, not an earlier signal.
- Revisions. If ATAS delivers a corrected candle or you change a setting, the study rebuilds from the loaded history, and earlier cycles can change.
- History window. Maximum bars back (3000, 100 to 10000) bounds the analysed bars; each warm-up needs about 15 bars.
- Coverage breaks. On a time-based chart, a gap between consecutive candle times of more than 1.5 x the chart's timeframe (a session break, a weekend, or an interval with no candle) invalidates any active cycle, clears the baselines and restarts the warm-up. A malformed candle does the same.
9. Status messages
| Message | Meaning |
|---|---|
| Waiting for instrument tick size | ATAS has not supplied a tick size |
| Waiting for a qualifying closed-bar range | No cycle yet |
| Invalid manipulation settings | A combination was rejected (for example Range timeout (bars) below Range bars, or Maximum sweep / ATR below Minimum sweep / ATR). Nothing is calculated until fixed |
Study unavailable: <error type> |
An unexpected error |
Diagnostic report exported to ATAS / CivalManipulation / Export failed: <error type> |
Result of the export action |
10. Alerts and export
- Alert. Local alert on NEW confirmed expansion (off) notifies once for each new expansion on the candle that just closed:
Cival Manipulation: long expansion confirmed, 100/100 evidence points.(or short, with the actual score). Nothing fires while history loads, during recalculation or after a rebuild. Alert sound defaults toalert1. - Export. Export current diagnostic report (an action) writes
manipulation-report.jsonto%APPDATA%\ATAS\CivalManipulation, overwriting the previous file. It holds the instrument, provider, a note that timestamps are the ATAS chart clock (milliseconds since 1970, no timezone inferred), a flag that reference guides are not trades, and the full report: settings used, every retained cycle with its evidence items, and the retained events (range,swept,reclaimed,expansion,retest,target1,complete,invalidated,expired).
11. Where every setting acts (32)
| Group and setting | Default | Range / effect |
|---|---|---|
| 00 Chart clarity: Compact display (full detail must be off) | on | Reduced layout only when full detail is off |
| 00 Chart clarity: Full analysis detail | on | Full layout; expands abbreviations |
| 01 Consolidation: Range bars | 12 | 4 to 80; window length |
| 01: ATR baseline bars | 14 | 4 to 100 |
| 01: Maximum range / ATR | 3.2 | 0.5 to 12; widest allowed range |
| 01: Maximum price efficiency | 0.30 | 0.01 to 0.9; how directionless the window must be |
| 02 Sweep and reclaim: Minimum sweep / ATR | 0.15 | 0.01 to 2; also sets the break size |
| 02: Maximum sweep / ATR | 1.75 | 0.1 to 8; not below the minimum |
| 02: Reclaim window (bars) | 3 | 1 to 20 |
| 03 Directional expansion: Expansion window (bars) | 8 | 1 to 40, counted from the reclaim |
| 03: Minimum body / ATR | 0.8 | 0.1 to 4 |
| 03: Minimum body / candle range | 0.55 | 0.1 to 0.95 |
| 03: Opposite boundary clearance / ATR | 0.1 | 0.01 to 2 |
| 04 Recorded orderflow: Orderflow confirmation | UseWhenAvailable | UseWhenAvailable / RequireCompleteDelta / PriceOnly |
| 04: Minimum directional delta % | 8 | 0 to 90; used by the delta, counterflow and (in require mode) expansion tests |
| 05 Lifecycle: Range timeout (bars) | 40 | 4 to 200; not below Range bars |
| 05: Expansion timeout (bars) | 32 | 2 to 200 |
| 05: Cooldown bars | 4 | 0 to 40 |
| Performance: Maximum bars back | 3000 | 100 to 10000 |
| Appearance: Show phase labels | on | Labels and the range-known line |
| Appearance: Show reference risk guides | on | Invalidation, 1R, 2R lines for the selected cycle |
| Appearance: Show evidence dashboard | on | The panel |
| Appearance: Dashboard corner | TopRight | TopRight / TopLeft / BottomRight / BottomLeft |
| Appearance: Dashboard width | 370 | 240 to 520 |
| Appearance: Maximum visible cycles | 8 | 1 to 32 |
| Appearance: Range color | #38BDF8 | Sky blue |
| Appearance: Sweep color | #C084FC | Purple |
| Appearance: Long expansion color | #34D399 | Green (also the 1R/2R lines) |
| Appearance: Short expansion color | #FB7185 | Rose (also the invalidation line) |
| Alerts: Local alert on NEW confirmed expansion | off | Section 10 |
| Alerts: Alert sound | alert1 | ATAS sound identifier |
| Export: Export current diagnostic report | off | Action; section 10 |
Out-of-range numbers are clamped to the range shown.
12. Worked example from the demo data
Range (known at bar 246, 20:30). Bars 235 to 246 (19:35 to 20:30) formed a window with high 81,622 and low 81,514: width 108, against an ATR of 36.36 (limit 3.2 x 36.36 = 116.3), and a price efficiency of 0.195 (limit 0.30). Evidence at this point: 10 points (compression).
Sweep (bar 252, 21:00). The bar traded up to 81,639, past the high by more than max(1, 0.15 x 36.36 = 5.45). A buy-side sweep, so the cycle leans short. Evidence 30.
Reclaim (bar 253, 21:05). The next bar pushed the extreme to 81,662 (40 beyond the high, 1.10 ATR, within the 1.75 limit) and then closed at 81,604, below 81,622 - 0.05 x 36.36 = 81,620.2. Invalidation: 81,662 + max(1, 5.45) = 81,667.45, rounded outward to 81,668. Evidence 85.
Expansion (bar 256, 21:20). Bars 254 and 255 did not qualify. Bar 256 opened at 81,592 and closed at 81,480: body 112 = 3.08 ATR (needs 0.8), body / range 0.97 (needs 0.55), closing location 0.97 (needs 0.68), and a close below 81,514 - 0.1 x 36.36 = 81,510.4. Reference 81,480; risk 81,668 - 81,480 = 188 (5.2 times the frozen ATR); 1R 81,292; 2R 81,104. Evidence 100/100: relative volume 5.76x, direction-adjusted delta +95.4%, five-bar CVD response, counterflow +23.7%, a recorded stack.
Afterwards. Bar 257 (21:25) traded down to 81,120, observing the 1R reference. Bar 258 (21:30) traded down to 80,966, observing 2R: complete.
The same run, in aggregate. 56 ranges were recognised; 50 were swept; 34 were reclaimed; 5 reached expansion; 2 of those ran on to the 2R reference; 3 were invalidated by a close back through the midpoint, one of them with 100/100 evidence. The other cycles ended before expansion: 17 invalidations (touch of the invalidation), 12 expiries without qualified displacement, 8 expiries without a reclaim, 8 sweeps that went too deep before reclaim, 5 sweeps deeper than 1.75 ATR, and 1 range that aged out. These are lifecycle counts on one short sample, with no entries, costs or profit and loss modelled. They show how few recognised ranges run the whole sequence, and that a full evidence score is not a guarantee of anything.
13. If a reading looks wrong or stays empty
| Observation | Check |
|---|---|
| No ranges at all | Confirm about 15 completed bars are loaded (14 prior true ranges, then a 12-bar window), then check the range tests: width at most 3.2 ATR and efficiency at most 0.30. A trending market produces none, by design |
| Ranges appear but nothing is swept | The sweep must clear a boundary by max(1 tick, 0.15 ATR) within 40 bars of the range being known; otherwise it expires |
| INVALIDATED with a reason about both boundaries | One candle swept both sides, so the intrabar order is unknown and the cycle is discarded rather than guessed |
| INVALIDATED or accepted-breakout reasons | The excursion beyond the boundary exceeded 1.75 ATR (Maximum sweep / ATR) before a reclaim, so it was treated as a breakout, not a sweep |
| Swept but never reclaimed | A close back inside must arrive within 3 bars of the sweep (Reclaim window (bars)) |
| Reclaimed but no expansion | The later candle needs body, body-to-range, closing-location and clearance tests, and (in RequireCompleteDelta) directional delta. Check the 8-bar Expansion window (bars) |
| Recorded flow shows few bars, or flow items read unavailable | Bid + ask volume does not reconcile to candle volume within 1% on those bars. Fix the data; PriceOnly mode excludes flow but does not repair it |
| The study restarts unexpectedly | A time gap of more than 1.5 timeframes (session break, missing candle) or a malformed candle clears the baselines and invalidates the active cycle |
| Panel is blank or missing | The price pane is under 200 x 100 pixels, or Show evidence dashboard is off |
Do not loosen thresholds merely to force a pattern. Source corrections, a different amount of loaded history, a different timeframe or bar type, and settings changes can legitimately recalculate results; cursor movement only changes which cycle the panel shows.
14. What it cannot know
- Whether anything was "manipulated", who acted, or where anyone's stops were. A sweep is a price excursion beyond a boundary, and the evidence points are checklist items for a hypothesis, not exposure of hidden positions.
- Why a candle closed where it did, or what happens after it.
- Resting orders: it uses candles and executed volume only.
- Anything on a bar with no recorded flow: such evidence is unavailable, not zero. Flow coverage is an internal consistency check, not an audit of the feed.
- Session context: it resets on time gaps on time-based charts but has no concept of session open, news or liquidity.
- Anything before Maximum bars back or before a restarted warm-up.
Cival Pressure Toolkit
1. What it draws
Five independent layers, each with its own switch and data needs:
| Layer | Setting | Needs | Timing |
|---|---|---|---|
| Pressure bubbles | Pressure bubbles | Footprint rows | Closed candle |
| Wick absorption candidates and until-touch lines | Wick absorption candidates | Footprint rows | Candidate on a closed candle; the line ends on the first touch, including by the forming candle |
| Big individual prints | Individual big prints | Individual trade history and live trades | Closed candle |
| Live resting depth | Live resting depth | A live depth feed | Live, never historical |
| Round-number levels | Round-number levels | Nothing | Follows the last price |
A row is one price level of a candle's footprint: bid volume (trades at the bid, aggressive selling), ask volume (trades at the ask, aggressive buying), and row volume = bid + ask. Volumes are in the feed's units, not dollars. The newest candle is always treated as forming; a candle counts as closed once the next one exists.
2. Pressure bubbles
For each closed candle and each side, a row qualifies when, at the same price, the aggressive side's volume is at least Minimum aggressive row volume (10, in feed units) and at least Pressure ratio (3) times the opposite side's volume. Buying qualifies on ask volume against bid; selling on bid volume against ask. If any row qualifies:
- Position. The bubble sits at the qualifying row with the largest row volume.
- Number in the centre. The aggressive-side volume summed across all qualifying rows of that side in the candle. It is not the candle's volume and not a single order, and it counts only the aggressive side even when the bid-plus-ask volume in those rows is larger.
- Label.
PressureorStrong pressure, thenB:(sum of ask volume over the qualifying rows),S:(sum of bid volume) andΔ:(sum of ask minus bid), in compact form (K / M). - Strong. The label says
Strong pressure(and the fill is brighter) when the biggest qualifying row's row volume is at least max(the floor, mean + 2 standard deviations of row volumes over the previous 20 bars). Both signals need the previous Row statistics lookback (20) bars to have footprint and at least 30 rows in total, so the first reading comes on the 21st footprint bar. This statistic does not decide whether a row qualifies; it only sets "Strong" and the absorption threshold. - Colour. Green (
#3CB371, Bull color) = aggressive buying. Tomato (#FF6347, Bear color) = aggressive selling. - Size. Radius 5 to 20 pixels: 5 + 15 x the square root of (this bubble's number / the largest bubble of the same kind in the previous 100 bars), so bubbles are relative to recent history and do not resize when you pan.
- One of each side per candle, so a candle can show both a buying and a selling bubble.
Numbers are drawn with a dark outline in Bubble number color (white), largest bubble first. Text stays anchored to its price and crowding hides text instead of moving it: with Avoid overlapping labels on, a number or label that would overlap one already drawn is skipped, and labels are also hidden when bars are too close together (Minimum bar spacing for signal labels (pixels), 6). The bubbles themselves are always drawn.
3. Wick absorption candidates and lines
A candidate needs a row whose row volume is at least the same "Strong" threshold (the greater of Minimum aggressive row volume and mean + 2 standard deviations over the previous 20 bars) and that lies outside the candle's body:
- Lower wick (row price below the lower of open and close) where bid volume exceeds ask volume: aggressive selling into a lower wick, which may mean buyers absorbed it. Drawn green.
- Upper wick (above the higher of open and close) where ask volume exceeds bid volume: aggressive buying into an upper wick, which may mean sellers absorbed it. Drawn tomato.
The largest such row per side is marked with an Absorption? bubble (number = that row's bid + ask) and creates a line: a one-tick band centred on the row price (price +/- half a tick), beginning on the next bar and running to the right. The question mark is deliberate: footprint rows cannot show which passive participant took the other side. A candidate is not confirmed absorption: this toolkit applies no price-response confirmation to it.
A line ends at its first touch: the first bar, including the still-forming one, whose high-low range overlaps the band. Touched lines are hidden by default (Show touched levels, off). The Maximum visible zones (12) untouched lines nearest to the last price are drawn, each labelled Wick absorption candidate New (or Tested when shown after a touch). Fill and centre line are the side's colour; a touched line is grey. Because touches are checked on the forming candle, a line can disappear mid-candle.
4. Big individual prints
Each closed candle can show one Print <volume> bubble per side, at the price of that side's largest exceptional print, with a number equal to the total exceptional print volume for that side.
- Source. Individual trade ticks only. ATAS supplies historical trades for up to 7 days (the request starts about Print statistics lookback (bars) + 2 bars back), and live trades are added as they arrive. Trades with no classified direction are ignored; aggregate cumulative volume is never used in place of individual prints.
- Threshold, computed from prints in the previous Print statistics lookback (bars) (100) bars, never the current one, and never below Minimum individual print volume (0):
| Robust threshold | Rule |
|---|---|
| StandardDeviation (default) | mean + Standard deviation multiplier (2) x population standard deviation |
| Percentile | the Percentile threshold (99th) percentile of print sizes |
| MedianMad | median + multiplier x 1.4826 x median absolute deviation |
- Readiness. At least Minimum populated lookback coverage (%) (80) of the previous 100 bars must contain prints; at least 30 prior prints must exist; the bar itself must have prints; and, unless Allow incomplete history is on, the print history must not have been flagged partial (trade groups without ticks, prints dropped by the retention limit, or ambiguous bar time stamps). The panel's tape line shows why a bar produced none.
- What this means on a fresh load. Only about the last 100 bars of prints are loaded, so the 80% coverage rule is met only for roughly the newest 20 closed bars right after loading. Older bars will not show print bubbles. After that, each new closed bar is evaluated as it closes.
5. Live resting depth
With a live depth feed, the 20 price levels nearest the last price in the indicator's depth book are drawn as short horizontal bars at the right edge of the price pane (up to 80 pixels wide, scaled to the largest displayed), green for bids and tomato for asks, under the label LIVE resting depth (updated levels only). The book is built from the platform's depth updates and re-seeded from a snapshot of the platform's market depth about every 2 seconds while updates are flowing. Rows not refreshed for Depth row expiry (seconds) (60) are dropped. If no depth update has arrived for Depth stale timeout (seconds) (10), the bars disappear and the label reads Depth stale/awaiting fresh feed. Depth is never reconstructed for history, and a feed may not show every resting order.
6. Round numbers
Nine faint grey horizontal lines, labelled Round <price>, centred on the last price. The step is 1, 2 or 5 times a power of ten, the smallest such step at or above 0.5% of the price, and never below one tick; for a price near 82,000, 0.5% is about 410 so the step is 500. Round-number step (0 = automatic) overrides it. They are arithmetic guides, not claims about orders. Alert on round-number cross (off) sends Cival round-number cross at <price>; step <step> when the live price moves from one step interval to another; this alert has its own switch and is not gated by the master alert switch.
7. The information panel and statuses
A panel at the top-left (Show readiness/status panel, on) shows the title, a readiness line and a tape line. Automatic panel placement stacks it with other Cival panels (a gold N panels need space: hide unused panels message appears when there is not enough room); Panel font size (13, 10 to 22) and Compact panel (title + two lines) (on) adjust it.
| Readiness line | Meaning |
|---|---|
| Waiting for closed candles / historical calculation | Nothing processed yet |
| Missing bid/ask footprint: check feed and history | The newest closed bar has no rows |
| Partial bid/ask footprint; some tools suppress signals | Bid + ask is not within 1% of candle volume. This indicator still evaluates the rows it is given; treat that bar with caution |
| Active • N bars • no qualifying setup yet | Running, no markers or lines yet |
| Active • N signals • M untouched levels | Retained markers (the latest 500) and untouched absorption lines |
| Footprint bid/ask history unavailable | A processed bar had no footprint |
| Tape line | Meaning |
|---|---|
| Waiting for individual prints | No prints yet |
| Loading individual historical prints (up to 7 days) | Request in flight |
| Individual print history loaded; live tape active | History loaded |
| No individual print history; live prints only | Provider returned none |
| Partial print history: some trade groups lack ticks | Some history groups had no individual ticks |
Print history unavailable: <message> |
The request failed |
| Ambiguous bar timestamps: print allocation suppressed | Two candles share a time stamp, so prints cannot be assigned |
| Tape warmup/coverage X% (required Y%) | Not enough populated bars |
| Tape X% coverage | N prior prints | threshold T | Ready; T is the print-size threshold in feed units |
8. Alerts
Master switch Alerts on closed signal / level touch (off) must be on for the first four rows. Alerts are silent while history loads or recalculates.
| Setting | Default | Fires when |
|---|---|---|
| Pressure bubble alerts | on | A pressure bubble is created on the candle that just closed. Text Cival <label>: <price> |
| Big print alerts | on | A print bubble is created on the candle that just closed |
| Absorption candidate alerts | on | An Absorption? marker is created on the candle that just closed |
| Absorption line touch alerts | on | A line is touched. This is evaluated on the forming candle, so it can fire intrabar. Text Cival level touched: <label> <low>–<high> |
| Alert on round-number cross | off | Section 6; independent of the master switch |
| Alert sound | alert1 | ATAS sound identifier |
9. CSV export
If CSV export folder (blank disables) names a folder, the indicator writes two files there and updates them as markers arrive and after each recalculation: PressureToolkit-signals.csv (time,available_time,bar,price,side,kind,label,volume) and PressureToolkit-zones.csv (available_bar,low,high,poc,side,label,state,touched_bar,invalidated_bar). available_time is when the marker could first be known (the next candle). Use a different folder per chart or instrument so files do not overwrite each other. It keeps the latest 500 markers and 1,000 lines. A failure shows in the readiness line as CSV export failed: <message>.
10. What updates when
| Element | Updates |
|---|---|
| Pressure bubbles, absorption markers, print bubbles | When a candle closes (alerts at the next candle's first update) |
| Absorption line creation | When the source candle closes |
| Absorption line end (touch) | On any tick of the forming candle |
| Depth bars | Live updates, refreshed at most about every 2 seconds |
| Round-number lines | With the last price |
| History corrections or setting changes | Rebuild from loaded history (tape is re-requested) |
11. Where every setting acts (44)
| Group and setting | Default | Range / effect |
|---|---|---|
| 00 Chart clarity: Compact display (full detail must be off) | on | Reduced layout only when full detail is off |
| 00 Chart clarity: Full analysis detail | on | Full layout |
| Pressure: Pressure ratio | 3 | 1 to 100; aggressive / opposite at the same price |
| Pressure: Minimum aggressive row volume | 10 | Feed units; set for your instrument |
| Pressure: Row statistics lookback | 20 | 5 to 500 bars for the "Strong" and absorption threshold |
| Pressure: Round-number step (0 = automatic) | 0 | Overrides the automatic step |
| Features: Pressure bubbles | on | Layer switch |
| Features: Wick absorption candidates | on | Layer switch |
| Features: Individual big prints | on | Layer switch |
| Features: Live resting depth | on | Layer switch |
| Features: Round-number levels | on | Layer switch |
| Big prints: Minimum populated lookback coverage (%) | 80 | 0 to 100 |
| Big prints: Allow incomplete history | off | Accept thinner or partial print history |
| Big prints: Robust threshold | StandardDeviation | StandardDeviation / Percentile / MedianMad |
| Big prints: Percentile threshold | 99 | 50 to 100 |
| Big prints: Print statistics lookback (bars) | 100 | 5 to 500 |
| Big prints: Standard deviation multiplier | 2 | 0 to 10 (also the MedianMad multiplier) |
| Big prints: Minimum individual print volume | 0 | Absolute floor in feed units |
| Alerts: Alerts on closed signal / level touch | off | Master switch |
| Alerts: Pressure bubble alerts | on | Section 8 |
| Alerts: Big print alerts | on | Section 8 |
| Alerts: Absorption candidate alerts | on | Section 8 |
| Alerts: Absorption line touch alerts | on | Section 8 |
| Alerts: Alert on round-number cross | off | Section 6 |
| Alerts: Alert sound | alert1 | ATAS sound identifier |
| Information panel: Automatic panel placement | on | Stacks with other Cival panels |
| Information panel: Panel font size | 13 | 10 to 22 |
| Information panel: Compact panel (title + two lines) | on | Limits wrapped text |
| Information panel: Show readiness/status panel | on | The panel |
| Appearance: Compact volume numbers | on | K / M formatting in the bubble numbers |
| Appearance: Avoid overlapping labels | on | Hide a label rather than overlap another |
| Appearance: Minimum bar spacing for signal labels (pixels) | 6 | 0 to 30; below this, labels are hidden |
| Appearance: Maximum visible zones | 12 | 1 to 100 untouched lines, nearest first |
| Appearance: Show touched levels | off | Keep touched lines (grey) |
| Appearance: Show labels | on | Labels, including round-number labels |
| Appearance: Show bubble volume numbers | on | Numbers inside bubbles |
| Appearance: Bubble number color | #FFFFFF | White |
| Appearance: Bull color | #3CB371 | Green |
| Appearance: Bear color | #FF6347 | Tomato |
| Performance: Depth stale timeout (seconds) | 10 | 1 to 300 |
| Performance: Depth row expiry (seconds) | 60 | 1 to 3600 |
| Performance: Maximum retained individual prints | 100000 | 1000 to 1000000 |
| Performance: Maximum bars back | 10000 | 100 to 100000 |
| Export: CSV export folder (blank disables) | blank | Section 9 |
12. Worked example from the demo data
Pressure bubbles (bar 867, 20 October 00:15). The five-minute bar opened at 81,766, reached 81,786, fell to 81,562 and closed at 81,585 on 501.8 BTC with delta -228.08. The indicator drew a selling bubble at 81,631 labelled Strong pressure B:10.6935 S:130.52075 Δ:-119.82725: across the qualifying sell rows (bid volume at least 10 and at least 3 times the ask at the same price), 130.52 BTC sold into the bid against 10.69 BTC bought, and the number in the centre is 130.52. The largest pressure bubble (either side) in the previous 100 bars was 236.59, so its radius was 5 + 15 x square root(130.52 / 236.59), about 16 pixels. The same bar also drew a buying bubble at 81,657 (B:35.29434, radius about 10). Bar 868 followed with a buying bubble of 119.34 at 81,586.
Wick absorption candidate (bar 831, 19 October 21:15). The bar opened at 82,164, reached 82,208 and closed at 82,064. At 82,208, in the upper wick, ask volume exceeded bid volume and the row's total of 16.192 BTC exceeded the "Strong" threshold, so an Absorption? marker was drawn there and a line (82,207.5 to 82,208.5) started on bar 832. Bar 843 (22:15) traded up to 82,275 and touched it: 11 bars, 55 minutes, after it began. The line then stopped being drawn.
In aggregate. The run created 285 absorption lines; 277 were touched later, and 158 of those by the very next candle. Being touched is the ordinary fate of a line, and says nothing about whether the level mattered. The indicator keeps the latest 500 markers; in the demo's retained set, 352 were pressure bubbles and 148 absorption markers. Big prints and live depth are not in the demo data.
13. If a reading looks wrong or stays empty
| Observation | Check |
|---|---|
| A bubble's number is smaller than the row volume you see in a footprint | The number is the aggressive-side volume summed over the qualifying rows only, not the candle's total and not bid + ask. Compare it with B: (or S:) in the label, and with the individual rows that meet the floor and the 3 to 1 ratio |
| No bubbles on a quiet instrument | Minimum aggressive row volume (10 feed units) is too high for it, or fewer than 21 footprint bars are loaded |
| Bubbles but no absorption candidates | A candidate needs a row above the "Strong" threshold that lies outside the candle body with the right side dominant. Many candles have none |
| An absorption line vanished | It ended at its first touch, possibly by the still-forming candle. Switch Show touched levels on to see it greyed |
| No big prints on older bars | Only about the newest 20 closed bars can pass the coverage rule after a fresh load (section 4). Check the tape line for the reason |
| Depth bars disappear although the feed is connected | The stale timeout (10 s) and the row expiry (60 s) are independent: no update for 10 seconds hides all bars, while individual rows older than 60 seconds are dropped. Raise Depth stale timeout (seconds) only if your feed is legitimately quiet |
| Labels vanish when you zoom out | Bars are closer than Minimum bar spacing for signal labels (pixels) or a label would overlap another. Zoom in; the bubbles are still there |
| N panels need space | Several Cival panels compete for the top-left corner; turn some off or disable Automatic panel placement |
Do not loosen thresholds merely to force output. Source corrections, a different amount of loaded history, a different timeframe or bar type, and settings changes can legitimately recalculate results; cursor movement does not change the closed-bar sequence.
14. What it cannot know
- Absorption. A large row in a wick with the opposite side dominant is a candidate. It cannot show that a specific passive participant absorbed anything.
- Resting orders in history. Depth is live-only and is not a record of the book over time; a different tool is needed for resting-liquidity history. No complete initial depth snapshot and no dollar liquidation amounts are implied.
- Who or why. Large executions are observed aggressive prints, not a trader's identity or a verified position opening. Executed volume does not identify participants, their size, or whether trades opened or closed positions.
- Print quality. Big prints depend on the provider's trade history, its caps and its classification of direction.
- Units. Row, print and bubble volumes are in the feed's units, not dollars; thresholds need setting per instrument.
- No invalidation, no lifecycle. Pressure Toolkit does not produce stops, targets or invalidation prices. Everything it draws is an observation on a closed candle (or live context).
- Anything about the future. None of the layers has been validated to predict price.