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 version | 1.3.0 · 2026-09-10 |
| Compatibility | ATAS 8.0.14+ and ATAS X 8.0.14+ |
| Requirements | Windows 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 |
| Updates | All future updates included |
| Delivery | ATAS catalog (automatic) + download in your account |
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
Changelog — version 1.3.0
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?
What data does it require?
Does REFILLING mean an iceberg?
Why can a territory be TESTING without an outcome?
What happens when the MBO stream becomes inconsistent?
Does changing the chart type change detection?
Can alerts be routed to Telegram?
Why can the chart remain empty even when the indicator is running?
Can I bypass warm-up for a short technical test?
Reviews
No reviews yet — be the first verified buyer to share your experience.