Cival Manipulation & Pressure Toolkit — Platform Compatibility

The ATAS plugin is the reference implementation. Each port computes what its platform's data allows and labels anything approximate or unavailable inside the indicator itself. The sections below are the READMEs that ship next to each port's source file (ports/<platform>/README.md).

TradingView (Pine Script v6)

Cival Manipulation and Cival Pressure Toolkit for TradingView (Pine Script v6)

Two overlay indicators ported from the ATAS originals Cival Manipulation v1.1.1 and Cival Pressure Toolkit v1.0.0. Neither trades, sends orders or makes network calls. Evidence points are a checklist, not a probability, and nothing here claims profit, win rate or accuracy.

File What it does Data it needs
CivalManipulation.pine Closed-bar consolidation, then a one-sided sweep and reclaim, then a directional expansion, with optional recorded-orderflow evidence. "Manipulation" names a price/flow pattern, not proof of intent. Price and volume only. Orderflow evidence uses request.footprint() (Premium/Ultimate) when available, otherwise an optional, labelled lower-timeframe approximation.
CivalPressureToolkit.pine Footprint pressure bubbles, wick-absorption candidates with until-touch lines, and adaptive round numbers. Footprint rows (Premium/Ultimate) for bubbles and absorption lines. Round numbers need no footprint.

Not available on TradingView: individual big prints (including the print-statistics settings and print alerts) and live resting depth / DOM bars. Pine has no tape and no order-book data, so these Pressure Toolkit features cannot be built, and nothing is simulated in their place. The indicator's panel states this.

Install

  1. In the TradingView Pine Editor choose Open > New blank indicator, paste one file, Save, Add to chart. Repeat for the second file.
  2. Use standard candles/bars on a symbol and timeframe where TradingView can build a footprint.
  3. Alerts are off by default. Enable the alert input you want, then create a TradingView alert on the indicator with condition Any alert() function call. Alerts fire only on live bar closes, never for history.
  4. If TradingView reports a runtime/time-limit error, raise Footprint ticks per row or lower Maximum bars back (group 98 TradingView data and Performance).

Cival Manipulation

Feature matrix

Values: Full / Approximate / Not available / Not ported.

Feature ATAS original This port Notes
Consolidation detection (range bars, ATR baseline, max range/ATR, max efficiency) Yes Full Boundaries freeze at the confirmation close; ATR is the mean of the prior true ranges.
One-sided sweep, ambiguous double sweep, maximum sweep depth Yes Full Both boundaries in one candle invalidates the cycle.
Closed-price reclaim within a window Yes Full
Expansion confirmation (opposite-boundary clearance, body/ATR, body/range, close location) Yes Full A later closed candle is required; no same-bar expansion.
Phases: range, swept, reclaimed, expansion, complete, invalidated, expired Yes Full Range, expansion and cooldown timeouts as in ATAS.
Invalidation (outward-rounded), 1R/2R reference guides, retest, midpoint failure Yes Full Invalidation wins over targets; guides are reference prices, not trades.
Coverage-break handling (clears state across gaps) Yes Full Same rule: a bar more than 1.5x the chart timeframe after the previous one resets state. This means weekend/overnight gaps reset it on equity charts, exactly as in ATAS.
Evidence points /100, price-based items (compression, sweep, reclaim, displacement, relative volume, anchored candle VWAP, 20-bar mean) Yes Full Observable score shown as points / available points.
Evidence points, flow items (directional delta, 5-bar CVD, counterflow reclaim) Yes Approximate From the reconciled footprint when available. If not, from the labelled lower-timeframe up/down-volume approximation (counted up if the lower bar closed above its open, down if below). The dashboard says which source is active.
Evidence point, recorded stacked imbalance Yes Approximate Footprint only, never approximated. Counts runs of 3 or more adjacent rows with an aggressor at least 3x the opposite side one row away. Depends on ticks per row.
Orderflow modes UseWhenAvailable / RequireCompleteDelta / PriceOnly Yes Approximate RequireCompleteDelta accepts footprint delta only; the lower-timeframe approximation is never accepted for it.
Range, sweep and expansion regions, labels, "range known" line Yes Approximate Time-anchored boxes and labels; no collision avoidance.
Reference risk guides for the selected cycle Yes Approximate Selected cycle = most recent one (no mouse pick).
Evidence dashboard Yes Approximate Pine table, four corners, no width control. Adds a Flow data: row naming the active source.
Expansion tint Yes Full Per closed bar from trigger to the cycle's last bar.
Hidden outputs: phase code and evidence points Yes Full Data-window plots.
Opt-in alert on a NEW confirmed expansion Yes Approximate alert() at bar close; alert sound is chosen in the alert dialog.
Compact display / full analysis detail Yes Approximate Compact shows the newest cycle only. The ATAS read-out badge is not ported.
Event ledger and diagnostic JSON export Yes Not available Pine cannot write files; the event ledger existed only for the report.
Cycle and history limits (64 cycles, 300-bar history) Yes Full

Settings

All ATAS inputs keep their names, groups and defaults, including Orderflow confirmation (UseWhenAvailable, RequireCompleteDelta, PriceOnly).

TradingView-only inputs, group 98 TradingView data: Footprint ticks per row (1), Lower-timeframe delta approximation when footprint is unavailable (on), Lower timeframe for the approximation (1 minute; must be lower than the chart timeframe, otherwise the approximation is off).

Not ported Reason
Dashboard width Pine tables size to their text.
Alert sound Chosen in TradingView's alert dialog.
Export current diagnostic report No file I/O in Pine.

Known differences from ATAS

  1. Flow evidence can come from a lower-timeframe approximation on plans without footprint, which ATAS does not have. It is labelled and never feeds RequireCompleteDelta.
  2. Footprint totals must match chart volume within 1% (the ATAS rule); symbols whose TradingView chart volume differs from their footprint total therefore get no flow evidence on those bars.
  3. "Maximum visible cycles" keeps the newest N overall; Pine cannot read the scrolled viewport.
  4. Bar indices in labels are Pine bar_index values, not ATAS ordinals.

Cival Pressure Toolkit

Feature matrix

Feature ATAS original This port Notes
Pressure bubbles (rows where aggressive volume is at least ratio x opposite and above the floor) Yes Approximate Same rule on TradingView footprint rows (1 tick per row by default). Bubble area is bucketed into five label sizes instead of a continuous 5-20 px radius, and has no outline.
"Strong pressure" shading and B/S/delta text Yes Full Strong when the largest qualifying row is at or above the significant-row threshold.
Significant-row threshold (greater of the floor and mean + 2 population std. dev. of the prior bars' rows) Yes Full Needs every one of the prior lookback bars to have footprint rows, and at least 30 rows in total.
Bubble volume numbers, compact numbers, number colour Yes Approximate Number sits inside the circle label.
Wick-absorption candidates Yes Approximate Heavy row with aggressive selling in a lower wick (or buying in an upper wick). Candidates do not establish that any participant absorbed anything.
Until-touch lines/zones, touched-level toggle, nearest-first visible limit Yes Approximate Touches are detected on closed bars only. ATAS also marks a touch while the forming candle trades through the level.
Round-number levels (adaptive 1/2/5 step, explicit step) Yes Full Nine levels around the last price; labels sit at the last bar.
Round-number cross alert Yes Approximate Fires on realtime updates as TradingView delivers them; never on history.
Individual big prints, print statistics, thresholds, print alerts Yes Not available No tape in Pine.
Live resting depth / DOM bars, depth stale and expiry timeouts Yes Not available No order book in Pine.
Alerts: pressure bubble, absorption candidate, line touch Yes Approximate alert() at bar close under the master switch.
Information panel with readiness text Yes Approximate One table; font size mapped to five sizes; no automatic multi-panel arrangement. Always states that prints and DOM are unavailable.
Compact display / full analysis detail Yes Approximate Compact: newest 8 signals within 21 bars, 3 nearest zones, plain-language labels. Read-out badge not ported.
Label overlap avoidance, minimum bar spacing for labels Yes Not ported Pine cannot measure pixels. A drawing cap (default 120 signals) protects the 500-label limit.
CSV export Yes Not available No file I/O in Pine.

Settings

Present with ATAS names, groups and defaults: Pressure ratio, Minimum aggressive row volume, Row statistics lookback, Round-number step (0 = automatic), Pressure bubbles, Wick absorption candidates, Round-number levels, Alerts on closed signal / level touch, Pressure bubble alerts, Absorption candidate alerts, Absorption line touch alerts, Alert on round-number cross, Maximum bars back, Panel font size, Compact panel, Show readiness/status panel, Compact volume numbers, Maximum visible zones, Show touched levels, Show labels, Show bubble volume numbers, Bubble number color, Bull color, Bear color, and the two chart-clarity switches.

TradingView-only inputs, group 98 TradingView data: Footprint ticks per row (1), Maximum footprint rows per bar (5000; a bar needing more is treated as having no footprint), Maximum drawn signals (120), Panel position.

Not ported Reason
Individual big prints, Live resting depth Not available on TradingView.
Big-print settings (robust threshold, percentile, standard-deviation multiplier, lookback, floor, coverage, partial history), Maximum retained individual prints, Big print alerts Depend on individual prints.
Depth stale timeout, Depth row expiry Depend on live depth.
Automatic panel placement One table; use Panel position.
Avoid overlapping labels, Minimum bar spacing for signal labels Pixel measurement unavailable.
CSV export folder No file I/O in Pine.
Alert sound Chosen in TradingView's alert dialog.

Known differences from ATAS

  1. Row prices use the row's lowest tradable tick (down_price + max(0, up_price - down_price - mintick) / 2). This is an assumption about TradingView's row edges, unverified on live data, and equals the ATAS price at 1 tick per row.
  2. Zones are drawn from the bar after the source, with a half-row either side of the row price.
  3. Footprint availability, history depth and chart-volume agreement differ from an ATAS feed; a bar with no reconcilable footprint breaks the row-statistics window.
  4. Wide-range bars at 1 tick per row can be slow; raise ticks per row if TradingView reports a time limit.

Verification status

Both scripts compiled with TradingView's Pine compiler (pine_check) on 2026-10-26: compiled: true, 0 errors, 0 warnings. Neither has been run on a live chart or in replay. Footprint row conventions, history depth, runtime on real symbols, alert delivery and drawing appearance are unverified.

NinjaTrader 8 (NinjaScript)

Cival Manipulation and Cival Pressure Toolkit - NinjaTrader 8

Two NinjaScript indicators ported from the ATAS originals:

Evidence points in Cival Manipulation are a rule checklist out of 100, not a probability. Guides are reference prices only, not orders, fills or P&L. Neither indicator places orders, touches an account or uses the network.

Requirements

Item Requirement
Platform NinjaTrader 8 (NinjaScript, .NET Framework 4.8).
Bar type Order Flow+ Volumetric bars with Ticks per level = 1 and delta type Bid/Ask for footprint evidence (Manipulation flow evidence; all of Pressure Toolkit's bubbles and absorption).
License / data An Order Flow+ entitlement and a feed that supplies tick-level bid/ask history and real-time data. The depth view additionally needs Level 2 market depth from your feed.
Calculation Calculate must stay On bar close. Any other setting is refused and the study says so.
Other bar types Cival Manipulation still runs on price alone: with Orderflow confirmation = "Use when available" flow evidence is shown as unavailable; with "Require complete delta" no expansion can confirm. Pressure Toolkit shows "footprint features off" and draws no bubbles or candidates; round numbers and depth still work. Nothing is estimated or filled in.
Compile status Not compiled. NinjaTrader is not installed on the machine where these ports were written, so neither file has been through the NinjaScript compiler. Compile on import: NinjaScript Editor -> F5. Please report any compiler message verbatim.

Install

  1. Close any open NinjaScript Editor windows.
  2. Copy CivalManipulation.cs and/or CivalPressureToolkit.cs to Documents\NinjaTrader 8\bin\Custom\Indicators\.
  3. In NinjaTrader choose New -> NinjaScript Editor and press F5 to compile. If the compiler reports an error, keep the exact message.
  4. Open a chart with an Order Flow+ Volumetric series (Ticks per level 1), right-click -> Indicators and add Cival Manipulation and/or Cival Pressure Toolkit.
  5. Allow enough completed bars for the warm-up (Manipulation: 14 prior true ranges and 12 range candles; Pressure Toolkit: 20 prior bars that all have footprint rows).

Values used below: Full = same rules and thresholds; Approximate = same idea, platform difference described; Not available = the platform cannot supply it; Not ported = not implemented.


Cival Manipulation

Feature matrix

Feature ATAS original This port Notes
Consolidation detection (12 bars, ATR 14, width <= 3.2 ATR, efficiency <= 0.30, frozen boundaries) Yes Full
One-sided sweep (0.15 to 1.75 ATR), both-sided sweep invalidates Yes Full
Closed-price reclaim within the window Yes Full
Directional expansion (later bar, opposite boundary +0.10 ATR, body, body/range, close location) Yes Full
Orderflow mode (price only / use when available / require) Yes Full Needs Volumetric bars for any flow evidence.
Invalidation, retest, midpoint failure, 1R / 2R guide observation, timeouts, cooldown Yes Full Adverse invalidation wins over targets, as in the original.
Evidence points /100 (11 checks) Yes Full Not a probability. Frozen at each phase confirmation.
Recorded flow from price rows (whole-bar delta, 5-bar CVD, stacked-imbalance runs of 3 at 3x) Yes Full Rows come from Volumetric bars. Flow counts only when classified volume is within 1 percent of candle volume.
Coverage / ordering break quarantine Yes Approximate Time gaps (more than 1.5x the bar duration) are detected for Second, Minute and Day bars and for Volumetric bars built on them, as in the original. Other bar types have no fixed duration, so only malformed bars and out-of-order timestamps interrupt.
Range, sweep and expansion regions with phase labels Yes Approximate Draw.Rectangle, Draw.Text, Draw.VerticalLine, Draw.Dot in bar/price units. No label collision handling; the full-height expansion band is not drawn.
Reference guides (invalidation, 1R, 2R) Mouse-selected cycle Approximate Dashed Draw.Line for the newest cycle; no crosshair selection.
Evidence dashboard Floating panel, width setting Approximate One Draw.TextFixed block. Corner supported, width not ported.
Local alert on new confirmed expansion Yes, off by default Full Real-time only; history never alerts. Alert sound is a file name under <NinjaTrader install>\sounds (default alert1 -> alert1.wav); a missing file is silent.
Diagnostic JSON export Action button Approximate Switch Export current diagnostic report: when on, Documents\NinjaTrader 8\CivalManipulation\manipulation-report.json is rewritten once after history loads and again whenever a phase event is added in real time.
Hidden outputs (phase code, evidence points) Hidden series Full Public non-plotted Series<double>: ManipulationPhase (0 none, 1 range, 2 swept, 3 reclaimed, 4 expansion, 5 complete) and ManipulationEvidencePoints.
Bounded retention (64 cycles, 512 events, 300 bars) and Maximum bars back Yes Full
Chart clarity compact display Yes Approximate Only the compact/full switch (shows the newest cycle only). The clarity banner is not ported.
Select cycle by mouse position Yes Not ported Closed-bar study; the newest cycle is always the selected one.

Settings

31 of 32 ATAS inputs are ported with the same display names, group names and defaults: 00 Chart clarity, 01 Consolidation, 02 Sweep and reclaim, 03 Directional expansion, 04 Recorded orderflow, 05 Lifecycle, Performance, Appearance, Alerts, Export. Values are clamped to the documented ranges, then validated; invalid combinations (for example a range timeout shorter than the range bars) stop the study and the HUD shows "Invalid manipulation settings".

Not ported Reason
Dashboard width Draw.TextFixed has no width control.

Known differences from ATAS


Cival Pressure Toolkit

Feature matrix

Feature ATAS original This port Notes
Footprint pressure bubbles (row ratio 3, minimum aggressive row volume 10) Yes Full Rows come from Volumetric bars. Needs 20 prior bars that all have rows and at least 30 prior rows, as in the original.
"Strong pressure" (row volume >= mean + 2 standard deviations of the prior 20 bars' rows) Yes Full
Bubble size (square-root scale, 5 to 20 px), bubble volume numbers Yes Full Drawn in OnRender with SharpDX.
Signal labels (compact K/M numbers, minimum bar spacing, overlap avoidance) Yes Approximate Same rules; text widths come from DirectWrite so label placement differs slightly.
Wick absorption candidates Yes Full Large-volume row in a lower wick with sell-side dominance, or upper wick with buy-side dominance.
Until-touch absorption lines Yes Approximate Touch is evaluated when a bar closes (the original also checked the forming bar), so a line ends one close later than on ATAS.
Round-number levels (automatic 1/2/5 step near 0.5 percent of price, or manual step) Yes Full Based on the last closed price.
Alerts: pressure, absorption, line touch Yes, off by default Approximate Real-time Alert() only; touch alerts fire at bar close.
Alert on round-number cross Yes, off by default Approximate Checked between consecutive closes, not every tick.
Live resting depth bars (nearest 20 levels) Updated levels only, with stale and row-expiry timeouts Approximate Built from the NinjaTrader level-two book via OnMarketDepth (live only, no history, needs Level 2 from your feed). Shown only while updates are arriving: after Depth stale timeout seconds without an update the view says "Depth stale/awaiting fresh feed". Per-row expiry is not ported because the full book is maintained.
Individual big prints (statistical thresholds, circles, print alerts) Yes (cumulative trades + live prints) Not ported See "Big prints" below.
Information panel (title, readiness, data source) Auto-arranged panels Approximate One panel, word-wrapped, compact (3 lines) or full. Automatic placement among several Cival panels is not ported.
CSV export of signals and levels Yes, folder-gated Approximate Written when CSV export folder is set: after history loads and again when signals or levels change in real time. Timestamps are NinjaTrader bar timestamps; available_time equals time because the port only acts on closed bars.
Chart clarity compact display Yes Approximate Compact mode keeps the last 8 signals from roughly the last 20 bars and 3 levels, with short descriptive labels. The clarity banner is not ported.
Share with Cival Decision Panel Hidden Not ported No Decision Panel on this platform.

Big prints (not ported)

The ATAS original reads individual executions, side-classified by the platform, and builds a statistical population from the previous 100 bars. NinjaTrader's help guide states that OnMarketData is not called on historical data by default, that Tick Replay replays only Last events, and that historical bid/ask events do not work with Tick Replay. That means the aggressor side of a historical print cannot be established, and it also states only that OnMarketData is expected to run after OnBarUpdate, which is not a guarantee when prints must be assigned to closed bars. A live-only version with a long warm-up would be a different tool, so the feature, its statistics inputs, and its alerts are left out instead of being faked. The panel says so.

Settings

32 of 44 ATAS inputs are ported with the same display names, group names and defaults: Performance, Pressure, Features, Alerts, Information panel, Appearance, Export, 00 Chart clarity.

Not ported Reason
Individual big prints (feature switch) See above.
Maximum retained individual prints Big prints.
Minimum populated lookback coverage (%) Big prints.
Allow incomplete history Big prints.
Robust threshold Big prints.
Percentile threshold Big prints.
Print statistics lookback (bars) Big prints.
Standard deviation multiplier Big prints.
Minimum individual print volume Big prints.
Big print alerts Big prints.
Depth row expiry (seconds) The NinjaTrader level-two book is complete, so rows do not need to expire.
Automatic panel placement Single panel; no panel registry.

Known differences from ATAS


Verification status

Done offline against stand-ins for the NinjaTrader API, because NinjaTrader is not installed here:

Not verified: compilation against the real NinjaTrader and SharpDX assemblies, behaviour on a live chart, Volumetric and market-depth behaviour on real data, and how the drawings look. The fixtures and scenarios are synthetic; they say nothing about market behaviour, and neither indicator makes any claim of profitability or accuracy.