Home / Indicators / Order Book & Liquidity / OFS LiquidityMap
LIFETIME OFS LiquidityMap

OFS LiquidityMap

Tracks a small, evidence-selected map of persistent bid and ask liquidity from the live market-by-order book, then records what actually happened at contact.

Current version1.3.0 · 2026-09-10
CompatibilityATAS 8.0.14+ and ATAS X 8.0.14+
RequirementsWindows 10/11, .NET 10, ATAS or ATAS X, a Rithmic connection supplying market-by-order data with Order ID and Priority, executed trades and best bid/ask
UpdatesAll future updates included
DeliveryATAS catalog (automatic) + download in your account
Coming soon

Almost ready for your charts

OFS LiquidityMap is built and measured — it is just not in the shop yet, so there is no price and no Add to cart to look for on this page.

Everything you see here is already true — the rules it follows, the numbers it produced and the warnings that come with them. Have a read now and decide later: the moment it goes on sale, the license options and the free trial appear right here.

Want to hear the day it lands?

Release news only. No trading tips, no spam — unsubscribe in one click.

Description

OFS LiquidityMap is a selective market-by-order territory engine for ATAS and ATAS X. It is deliberately not a heatmap and it does not turn every large number in the book into a wall. The default chart shows no more than three bid and three ask territories, selected from liquidity that first passed explicit persistence, order-survival and data-integrity rules.

The indicator reconstructs the live book order by order. Every resting order is keyed by its exchange Order ID, kept on its correct side and native tick, and ordered by the exchange Priority value. Snapshot, New, Change and Delete events are processed separately. A new snapshot replaces stale state instead of being merged into it. A duplicate live ID, an unknown change or delete, a time regression, processing overload or a mismatch against the provider snapshot is treated as a data fault. Classification stops, the last confirmed picture is visibly frozen and the book is rebuilt before calculations resume.

Significance is relative to the current market rather than a fixed contract number. Auto Balanced maintains rolling distributions by side and distance from the relevant best quote. Persistent aggregate depth qualifies at the 92nd percentile; an exceptional individual order can qualify at the 97th percentile when it also survives the adaptive age gate. The age gate is the greater of 750 milliseconds and the 70th percentile of completed order lifetimes, capped at 20 seconds. At least 60 percent of the original quantity must still be represented by the same Order IDs, and unresolved reduction may not exceed 25 percent of peak quantity. Warm-up completes only after ten minutes of event time, 20,000 MBO events and 2,000 completed order lifetimes.

An active territory begins at the exact event time when all gates pass. It is never backdated to when a large order first appeared. Native price ticks remain the unit of calculation on time, tick, volume and range charts. Adjacent eligible levels may form one territory, but its identity and every later boundary change are logged. A real merge terminates both parents and creates a new ID at the actual merge time; a split does the same for every child.

Testing begins only when the relevant best quote enters the territory, or when an executed trade reaches it before the quote callback arrives. A quote by itself cannot produce an outcome. Actual contact means a passive execution inside the territory: aggressive selling against a bid order or aggressive buying against an ask order. Trades are attributed to the passive exchange Order ID when the feed supplies it. A lower-confidence price-time-side fallback may update territory statistics but never claims a particular order was filled. Reductions wait inside a short reconciliation window so a delayed trade callback is not mistaken for cancellation. What cannot be separated remains UNRESOLVED.

After contact the indicator can describe observed replenishment, hold, pull, consumption or acceptance beyond the territory. REFILLING means material passive executions were followed by measurable new displayed quantity. It is not called an iceberg and no hidden volume is estimated. HELD requires material execution, liquidity that remains or refills, and a measured response away within the configured window. PULLED is cancellation-dominant disappearance; CONSUMED is execution-dominant disappearance. ACCEPTED BEYOND requires both best quotes beyond the far edge, executions strictly beyond it, at least two seconds of dwell and material beyond volume. A single print through a level is never acceptance.

Current liquidity, structural memory and invalidated traces use visibly different geometry. Active bid and ask territories keep their side color. Territories are drawn as solid bands hanging from the right edge of the chart, so they never cover the candles; the band length, its offset from the edge and the length-by-strength rule are configurable. Each lifecycle state has its own editable color with transparency. Persistent-depth rank changes only the band length, never the hue or the market meaning. Active territories end at the terminal market event. Memory keeps its own state color and expires by its event-specific retention, meaningful retest count, session policy or overlap rule.

Every lifecycle calculation uses exchange event time. The Time Zone setting changes only displayed timestamps. The context panel reports whether MBO, trades, Order IDs, Priority, book synchronization and the recorder are healthy; warm-up state; event rates; visible and hidden qualified counts; and the last UTC event. Fault warnings remain visible even when the optional panel is off.

All alerts are opt-in and default to off. Separate confirmed-transition alerts exist for REFILLING, HELD, PULLED, CONSUMED and ACCEPTED BEYOND, with a separate operational data-integrity alert. The indicator creates standard ATAS alerts, allowing the platform's own alert routing to handle destinations such as Telegram. It contains no separate Telegram client.

Market-by-order data is mandatory. ATAS currently documents MBO availability only through a Rithmic connection. Without MBO the indicator does not fall back to aggregated depth and does not draw invented evidence. Missing trades disable contact outcomes unless the user explicitly permits resting candidates. The product does not identify participants, infer institutional intent, locate stops, predict the next move, generate trading signals or place orders. It reports only what the supplied order and trade events can support.

Installation guide
1. Install OFS.LiquidityMap.dll through the delivery method assigned to your product account, then fully restart ATAS or ATAS X. 2. Add OFS LiquidityMap to a chart and paste the OFS-LM license key into group 01 - License. 3. Use a Rithmic connection that supplies market-by-order Snapshot/New/Change/Delete events with Exchange Order ID and Priority, executed trades and best bid/ask. ATAS currently documents MBO availability only for Rithmic. 4. Leave Detection Mode on Auto Balanced while its three warm-up conditions complete. 5. Keep the context panel visible to inspect MBO, trade, synchronization, recorder, warm-up and detection status. No liquidity alert is enabled until you switch on its individual setting.
Changelog — version 1.3.0
1.3.0 - SETTINGS TEMPLATE: LICENSE HEADER, PANEL NOTICES, TELEGRAM, DIAGNOSTICS; UPDATE CARD ON TOP. DETECTION LOGIC UNCHANGED.

Group 01 - License now reads Product, License Key, Website, Version and Check For Updates - the same header as every OFS indicator. Allow Resting Candidates Without Trades moved to 06 - Detection. The tail follows the OFS template: 11 - Panel (with Show Notices and an own notice position and offsets - the licence, no-MBO, no-trades, calibrating and data-fault notices show even while the panel is hidden), 12 - Alerts, new 13 - Telegram (the five common rows; every alert event can go to Telegram as well) and 14 - Diagnostics, where the local recorder now lives (off by default; a night of MNQ MBO data is about 20 GB). Every setting has a description. The new-version card is drawn on top of the panel instead of under it, so its Close button can be reached, and a click on it repaints immediately. Check For Updates: unticking it and ticking it again now runs the version check immediately and shows the new-version card again, even if you had closed it for that version. Territory detection, qualification and drawing are unchanged; the replay of the 2 September recording gives the same states.

1.2.3 - TERRITORIES AS BANDS AT THE RIGHT EDGE, ONE COLOR PER STATE.

Territories no longer stretch from their birth bar across the candles. Every territory is a solid band anchored at the right edge of the chart: it ends Zone Right Offset pixels before the edge and runs to the left at most Zone Max Length pixels (default 160). With Length By Strength on (default), the band length runs from Zone Min Length (default 40) to Zone Max Length by persistent-depth strength, so a stronger level is a longer band; off, every band uses Zone Max Length. Bands never reach past the left edge of the chart and a band fully outside the chart is not drawn.

The outlined, dashed, dotted, crossed and pulsing frames are gone - they made the states impossible to tell apart. Each state now has one solid, fully editable color with transparency in the alpha channel: Bid Active, Ask Active, Bid Held and Ask Held (new), Testing / Contact, Replenishing (new), Pulled Trace, Consumed Trace, Accepted Beyond and Data Fault. Bid Border, Ask Border, Bid/Ask Line Width Scale, Refilling Pulse Enabled and Pulse Frequency were removed; Border Width (px) 0-3 (default 0) adds an optional opaque outline in the band's own color. Label placement and text colors are unchanged.

Detection, qualification and lifecycle logic are untouched. An unused legacy drawing path with hard-coded frame colors was removed from the code.

Frequently asked questions

Is OFS LiquidityMap a heatmap?
No. It deliberately selects a small number of evidence-qualified territories, three per side by default. It does not paint every order-book row or the chart background.
What data does it require?
Live market-by-order events with Exchange Order ID and Priority, executed trades and best bid/ask. ATAS currently documents MBO availability only through a Rithmic connection. Aggregated Level 2 depth is not a substitute and there is no silent fallback.
Does REFILLING mean an iceberg?
No. REFILLING says only that material passive executions were followed by new displayed quantity in the same territory. Version 1.0 contains no iceberg label and no hidden-volume estimate.
Why can a territory be TESTING without an outcome?
The best quote can enter a territory without any trade occurring there. That creates TESTING, but REFILLING, HELD, CONSUMED and ACCEPTED BEYOND require an actual passive execution inside the territory.
What happens when the MBO stream becomes inconsistent?
New qualification and liquidity alerts stop. Confirmed territories remain visible only as a muted frozen picture, transient state is discarded and the internal book is rebuilt atomically from a clean provider snapshot.
Does changing the chart type change detection?
No. Detection consumes the same ordered MBO, trade and quote events in native ticks and event time. Time, tick, volume and range chart construction affects only where the finished picture is projected.
Can alerts be routed to Telegram?
The indicator creates standard ATAS alerts. If your ATAS installation supports Telegram routing, configure that in the platform. LiquidityMap does not run a second Telegram client or store Telegram credentials.
Why can the chart remain empty even when the indicator is running?
LiquidityMap is selective and does not draw an ordinary DOM heatmap. A blank territory layer can simply mean that no level has passed the current persistence, survival, percentile and integrity gates. Keep the status panel visible: it distinguishes missing MBO, unavailable trades, calibration, resynchronization, candidates and a healthy scan with no qualified territory.
Can I bypass warm-up for a short technical test?
Yes. In Advanced Detection, set Warm-up Time, Warm-up MBO Events and Warm-up Completed Lifetimes to zero. Setting Minimum Persistence to zero removes the initial age floor. This is only a diagnostic configuration; it does not fabricate MBO data, trades or a qualifying territory and should not be treated as a calibrated trading setup.
⚠ This indicator is an analytical description of live order-book events. It does not place orders, identify market participants, predict prices or provide financial, investment or trading advice. Displayed orders may be changed or cancelled and no territory guarantees support, resistance or a profitable trade. Futures, forex and cryptocurrency trading can cause substantial losses. Every trading and risk decision remains entirely with the user.

Reviews

No reviews yet — be the first verified buyer to share your experience.