Launch offer — 30% off every licence until 8 November 7 days free first, no card needed. See the indicators →
Home / Indicators / Order Book & Liquidity / OFS Iceberg Detector
SUBSCRIPTION OFS Iceberg Detector — order book & liquidity indicator for ATAS: market-by-order

OFS Iceberg Detector

Proves hidden size instead of guessing it: reads market-by-order data and shows the price levels where a single order kept refilling from a hidden reserve.

Current version1.3.5 · 2026-10-29
CompatibilityATAS 8.0.14+ and ATAS X 8.0.14+
RequirementsWindows 10/11, .NET 10, ATAS or ATAS X, market-by-order data feed
UpdatesAll future updates included
DeliveryATAS catalog (automatic)
Choose your license VAT included
✔ Activates on your ATAS e-mail automatically after payment — the indicator appears directly in your ATAS catalog.

Description

OFS Iceberg Detector finds the orders that hide their real size - and it proves them instead of guessing.

WHAT AN ICEBERG IS
A large participant who wants to buy 500 contracts does not show 500 in the book. They show 10, let it get filled, show another 10, and repeat. On the screen it looks like thin liquidity that somehow never runs out. Price stalls at a level with no visible reason, and the reason is that the size was never visible in the first place.

WHY MOST TOOLS ONLY GUESS
A tool that reads the aggregated depth of a price level can only notice that more traded than it could see, and then hope no other order arrived or left in the meantime. That assumption breaks constantly in a fast book, which is why level-based iceberg detection produces so many false marks.

Put side by side with such a detector, this one will mark fewer icebergs and mark them later - by design, not by weakness. A level-based tool cannot tell one hidden participant from a queue of small orders taking turns, so part of what it marks is ordinary book traffic. Here a false mark is close to impossible by construction: the claim is arithmetic on one order, not an impression of a level. Quantity was deliberately traded for certainty.

HOW THIS ONE PROVES IT
This indicator reads Market-By-Order data, where every resting order carries its own identifier. That makes it possible to measure hidden size on one order instead of guessing it from a whole price level - arithmetic, not inference.

Trades that cannot be attributed with certainty are never counted as evidence, and the panel reports how many there were.

THREE LEVELS OF EVIDENCE
Every level says how strongly it is established, and never claims more than it knows.

PROVEN - the hidden size is measured on one order.
REFILLED - the same order kept growing back after being hit, repeatedly. An ordinary order does not grow back after being eaten.
ROTATED - the level kept being refilled by replacement orders, the way some venues rotate tranches. This is indirect evidence, it has its own separate count because it needs more repetitions to mean anything, and it can be switched off entirely.

THRESHOLDS ONLY EVER CHANGE WHAT YOU SEE
No volume threshold takes part in detection. The engine records every iceberg it can establish, however small, and the minimum volumes decide only what is worth drawing. Lower one and everything already found reappears immediately; the diagnostic log contains the findings below the threshold too. A tool where the filter sits inside the detection quietly destroys the evidence you later go looking for.

WHAT IS DRAWN
Two things, and no bands across the chart - a line spanning the whole screen covers the price action and says less than what replaces it.

An iceberg here is an ORDER, identified by its exchange order id. Two different orders defending the same price are two icebergs; one order that replenishes twenty times is one iceberg with twenty tranches. Nothing is inferred from the price.

FIRST, a circle for each iceberg, at its exact price and on the bar where it was established, so it sits in the price action where it happened. Several icebergs at one price show as several circles. Its size follows the volume that level absorbed, between a minimum and a maximum you set. Each side has its own color and the transparency lives inside that color, so one setting decides both. And when the order behind an iceberg moves to another price and proves itself again, the old circle stays with what it earned there and a dashed line links it to the new one - two circles, one participant.

SECOND, a tree beside the price. Each branch sits at the price it belongs to and grows towards the side that was defending it, and its length is the volume that level absorbed. Just past the end of the branch stands the number of contracts absorbed there, written in the color of the branch itself - the same number the length is drawn from, so the two can never disagree. Contracts that arrived in the last moments are added beside it in the highlight color, so a level being hit right now says +40 instead of looking like any other.

Until the first iceberg appears, a neutral alignment guide without any title shows the exact tree position and row thickness. It carries no price or volume, switches itself off with the first iceberg (a newly opened chart shows it again) and can be turned off entirely.

That is all the chart draws. The evidence level and the hidden size are in the card at the mouse, in the panel and in the log, because a line of text beside every level covers the price action it is meant to explain. An iceberg whose order still stands in the book is drawn in full colour, a finished one faded. A one-line control panel at the top switches the circles, the tree and the panel and sets from how many filled contracts an iceberg is drawn; everything is off until you switch it on.

A branch and its circle brighten AND grow the moment the level takes more size, then fade back - a color change on its own is easy to miss on a busy chart, and both the color and how much it grows are settings. On top of that, the branch keeps a softer glow for as long as its +5 increment is shown, fading out with it - so the levels being defended right now are visible at a glance, not only in the instant they grow. A level being defended right now is distinguishable from one defended twenty minutes ago.

Nothing you have found is taken off the chart again, and there is no ceiling that could take it. No distance filter hides a level once price walks away - the whole point of knowing where size was absorbed is what happens when price returns there - and there is no maximum number of icebergs to drop the oldest or the smallest. A ten-contract iceberg and a thousand-contract one are both kept. The volume floors default to zero and exist only if YOU decide the small ones are in your way.

Every color used for market information is yours: circles, branches, numbers, increment and highlight. Transparency lives inside each color rather than in a second setting beside it. The neutral alignment guide deliberately keeps a fixed non-market color so it cannot be mistaken for a bid or ask iceberg.

The context panel says in words whether order data is flowing, how many resting orders are followed, how many levels and how many iceberg orders were found, how many trades could not be attributed, and where the strongest one sits relative to price.

HONESTY
Market-By-Order data is required. Without it the indicator draws no market evidence and the panel says why. The only optional graphic that may remain is the neutral alignment guide, which carries no price or volume - there is no silent fallback to a weaker detection method, because a weaker method dressed up as this one would be worse than nothing.

Every mark can be audited. The diagnostic log records, for every finding, which order id it stands on, when, and why - so you can check any mark yourself instead of taking it on faith. And the indicator admits its own blind spots: the panel counts the trades it could not attribute - no order id, an unknown id, an ambiguous assignment - so you always know how much of the flow it actually saw. A detector that cannot tell you what it missed cannot tell you what its marks are worth.

Order flow cannot be replayed from chart history, so the detection engine works forward from the moment it is on the chart - deterministic, with a diagnostic log you can read yourself. With ATAS 8.0.15 or newer a reloaded chart still is not empty: the indicator takes the icebergs the platform's own market-by-order analytics already knows and draws them where they began, and the panel shows how many icebergs the platform and this engine each found.

The engine is separated from the platform and covered by its own unit tests, including the cases that defeat most iceberg detectors. It has also been replayed over real MNQ order-by-order recordings against an independent ledger built from the raw events, so every proven iceberg it reports has been checked to the contract on real data.

Installation guide
1. Create or sign in to your OrderFlowSmith account with the same e-mail address used by your ATAS account. When access to OFS Iceberg Detector is activated and the e-mails match, ATAS delivers the indicator automatically; do not install a DLL manually.
2. Open or fully restart ATAS so the automatically delivered indicator becomes available in the indicator catalogue. Whenever an update is released through ATAS, fully restart the platform; ATAS downloads and loads the new version automatically.
3. If your ATAS account uses a different e-mail address than your OrderFlowSmith account, write to us at orderflowsmith.com/contact - we move the license to your ATAS e-mail and ATAS delivers the indicator automatically.
4. Add the indicator to a chart and paste your license key into Settings, group 01 - License.
5. Market-By-Order data is required. A Rithmic subscription that includes order-by-order depth is known to work. If the notice says No market-by-order data, the feed is not delivering it and nothing will be detected.
6. Until the first iceberg appears, the neutral alignment guide shows exactly where the tree will sit. Adjust Offset From Right Edge and Row Height in group 10 - Level Tree; the guide switches itself off with the first iceberg and can also be switched off there (Show Alignment Guide).
7. Start with the defaults - they hide nothing. If the chart is busier than you want, raise Hidden Volume Floor or Filled Volume Floor in group 06 - Detection; nothing is thrown away by doing so, and lowering them again brings everything back.
Changelog — version 1.3.5
1.3.5 - NOTICES OFF BY DEFAULT AND BELOW EACH OTHER; A DOT ON THE HIDDEN BUTTON.

- The waiting and error notices are off by default, also on saved charts - switch them on with Show Notices. A missing or invalid licence is always shown.

- Notices start 50 px from the top, below the row of hidden panel buttons (Notice Offset Y), and the notices of several OFS indicators stack below each other by themselves - they never cover a control panel or a hidden panel button.

- The hidden panel button shows a dot before the name: green when anything on the control panel is switched on, an empty grey ring when everything is off - you see at once which indicator draws on the chart.

1.3.4 - NO FALSE ICEBERGS FROM THE ATAS HISTORY WHEN TWO CONNECTIONS DELIVER MARKET DATA.

- With two connections delivering market data for the same instrument, the platform's own market-by-order analytics receives every trade twice as well, and almost every traded order appeared there as an iceberg. Those icebergs came onto the chart through History From ATAS. As soon as the indicator recognises the double data, it no longer takes icebergs from the ATAS analytics on that chart - neither the history nor live ones - until the chart is reloaded. The panel row "ATAS history" says "not used - market data arrive twice" and the notice adds one line.

- The indicator's own detection is unchanged: every trade counts once.

- Nothing changes with a single data connection.

1.3.3 - CORRECT ICEBERGS WHEN TWO CONNECTIONS DELIVER MARKET DATA.

- With two connections in ATAS that both deliver market data for the same instrument - for example one Rithmic account for trading and another one for market-by-order data - every trade and every order book change arrived twice, and almost every traded order was marked as an iceberg. The indicator now recognises the copies from the second connection and counts every trade once: the icebergs are the same as with a single connection.

- When it happens, a notice says so for one minute (Show Notices); with the panel on, the row "Data: arrives twice - copies ignored" stays while it lasts.

- Nothing changes with a single data connection.

1.3.2 - LOG: ONE SWITCH, ITS OWN FOLDER.

- New in 15 · Log: Log (on / off, off by default) and Log Folder. Switched on, the indicator writes everything it does into its own log - its settings and every change of them, the chart, the calculation, the market-by-order data and the ATAS history it got, every new iceberg and every stronger proof, its alerts and errors and what the panel shows. Keys, tokens and IDs are never written.
- The files go into the folder of the indicator inside Log Folder, for example D:\logs\OFS Iceberg Detector - one file per chart and day, with the computer and the platform in the file name.
- Diagnostic Log (Off / Events) is replaced by this one switch - a saved chart with Diagnostic Log on has Log on. The CSV of every detection decision is written next to the log while Log is on (until 1.3.1 in %LOCALAPPDATA%\OrderFlowSmith\diag). Panel Diagnostics stays below Log Folder.

1.3.1 - THE PANEL AND THE NOTICES NO LONGER HIDE BEHIND THE CONTROL PANEL.

- The information panel and the notices no longer hide behind an open control panel: where the control panel covered them (top right on a narrower chart), they now sit just below it. Without overlap nothing moves.

1.3.0 - HISTORY FROM ATAS, LIVE AND FINISHED ICEBERGS, A CARD AT THE MOUSE AND A CONTROL PANEL.

- New: history from ATAS (8.0.15 or newer). When the chart loads, the indicator takes the icebergs the platform's own market-by-order analytics already knows - the same source as the ATAS Icebergs Tracker - and draws them on the candle where each began, so a reloaded chart is no longer empty. Live detection is still this indicator's own engine; the same order found by both is one iceberg, and icebergs the platform finds live are added too. The panel shows how many each found since the chart loaded (ATAS check: both / OFS only / ATAS only). Setting History From ATAS in 06 - Detection, on by default.

- New: an iceberg whose order still stands in the book is drawn in full colour, a finished one faded; a tree branch stays bright while a live iceberg stands on it.

- New: hover over a circle or a tree branch for its card - side, price, shown / filled / hidden contracts, time, proof, live or finished and the source (OFS, ATAS or both).

- New: one-line control panel at the top of the chart - MIN - 0 + | MARKERS TREE | PANEL (MIN = Filled Volume Floor). Everything is off by default. HIDE hides it into a small button; the hidden buttons of all OFS indicators line up side by side by themselves at the top (5 px) and open control panels stack below each other (40 px). Settings in the new group 12 - Control Panel; Alerts, Telegram and Log are now the groups 13, 14 and 15.

- Show Markers and Show Tree are off by default for a newly added indicator; a saved chart keeps its own setting.

1.2.19 - ALERTS AND TELEGRAM IN WORDS; TEXTS MATCH THE INDICATOR.

- An alert and the Telegram message now say it in words, for example "ICEBERG PROVEN BID @ 21500.25 hidden 120 MNQZ6", followed by the machine-readable details. Until now Telegram received only a technical record.

- The red outage frame of the panel returns to normal after 4 s of healthy data (10 s after lost data or a lost connection) instead of 30 s.

- Descriptions, the product page and the manual now describe the alignment guide as it works (no title, it switches itself off with the first iceberg), name the notice "No market-by-order data" exactly as the chart shows it and point to 12 - Alerts.

1.2.18 - RED PANEL FRAME WHEN THE CONNECTION OR THE DATA DROPS; LOG FOLDER.

- New: the indicator watches the connection and the market data - the account connection (for example Rithmic) lost for more than 15 s, no market data for 15 s while CME is trading, or the data more than 5 s late. While that lasts, the panel gets a thick red frame; the indicator keeps working, and the frame returns to normal after 30 s of healthy data. No alert and no sound. Setting Panel Outage Frame (on by default) in the panel group.

- New: Log Folder (in the Log group) - the folder for the diagnostic CSV files, for example D:\logs; the files go into a subfolder named after the computer, so two computers can share one synchronised folder. Empty = %LOCALAPPDATA%\OrderFlowSmith\diag as until now.

1.2.17 - ALERTS: SOUND ONLY, NO POPUP WINDOW.

- When an alert fires, the indicator only plays its sound - no popup window appears on the chart.

1.2.16 - A SHORTER SETTINGS LIST; CLEARER TEXTS.

- The settings list shows what is yours to tune: the evidence rules and the book hygiene of the engine are no longer listed and keep their measured values. Saved charts keep every value.
- The notice about the order-book safety limit no longer points to a setting.
- Setting descriptions and the manual say what each setting changes on the chart.

1.2.15 - THE NEW-VERSION CARD POINTS TO ATAS; SHORTER CHANGELOG.

- The new-version card now says that ATAS delivers the new version to your platform automatically (until 1.2.14 it pointed to a download in your account on orderflowsmith.com, which is no longer offered).
- Versions 0.1.0 to 1.1.13 keep their headline only, so the product card shows the whole history.
- Nothing else changed.

1.2.14 - PRODUCT NAME IN TELEGRAM.

- Telegram messages start with the product name [OFS Iceberg Detector] instead of a short internal code.

1.2.13 - THE NEW-VERSION CARD HAS ONLY THE CLOSE BUTTON.

The card announcing a new version no longer has a cross in its top corner - the Close button at the bottom is the only way to close it, the same in every OFS indicator. Closing it still remembers that version, so the card does not come back until the next release. Nothing else changed.

1.2.12 - THE ALIGNMENT GUIDE HAS NO TITLE AND SHOWS ONLY UNTIL THE FIRST ICEBERG.

The tree alignment guide - the neutral ruler that shows where the level tree will sit - no longer carries the title TREE ALIGNMENT GUIDE - NOT MARKET DATA. It is shown only until the first iceberg appears on the chart; then it switches off and does not come back, even when no tree row is on screen (until 1.2.11 it returned every time the tree was out of view). A newly opened chart shows it again until its first iceberg. Show Alignment Guide (10 - Level Tree) still turns it off completely.

1.2.11 - DRAW ABOVE CANDLES IN THE WHOLE FAMILY; NOTHING OVER THE PANELS OF OTHER INDICATORS.

The icebergs followed only their own Draw Above Candles switch. ATAS applies the order to the whole price panel, so when another indicator put the panel above the candles, the icebergs were in the live layer that ATAS then draws only while the last bar is on screen - after scrolling back they disappeared. They now follow the real order of the panel and are always there.

Draw Above Candles stays off by default; its description now says that it applies to the whole panel.

1.2.10 - CHECK FOR UPDATES CHECKS AT ONCE; THE NEW-VERSION CARD ALWAYS IN THE MIDDLE OF THE CHART.

Unticking Check For Updates in the settings and ticking it again now asks orderflowsmith.com for the latest version straight away and, when a newer version exists, shows the card at once - also on a weekend or in a quiet market with no new ticks. Until now the check started only if the chart happened to redraw between the two clicks, so without ticks nothing happened, and the answer waited for the next redraw. Ticking it again also brings back a card you closed earlier.

The new-version card always opens in the middle of the chart, whatever the position of the control panel or the notices of the indicator. Nothing else changed: the calculation, the settings and saved charts stay as they were.

1.2.9 - SETTINGS IN THE COMMON OFS ORDER; CHECK FOR UPDATES ON DEMAND.

The settings window follows the same layout in every OFS indicator: 01 License first (product, key, website, version, Check For Updates), then Session and Time where it applies, the indicator's own groups, and at the end Panel, Alerts, Telegram and Log. Saved charts keep all their values - only names and the order of the groups changed.

Check For Updates now also works on demand: untick it and tick it again and the indicator asks orderflowsmith.com straight away - a new-version card you closed earlier comes back as well. Until now the switch promised this but the check waited for its daily turn.

In this indicator: Alerts and Telegram close the gap in the numbering (12 and 13), the diagnostic group is now 14 - Log, and the panel rows read Panel Position, Panel Offset X/Y and Panel Font Size like everywhere else.

1.2.8 - LIVE TREE AND CIRCLES: THE FLASH, THE GLOW AND THE +5 NOW MOVE WITH THE DATA.

The circles and the level tree were drawn in the platform layer that ATAS repaints only with a new candle, a scroll or a zoom - the ordinary chart refresh the indicator asked for repaints the panel only. On a one-minute chart the tree, the +5 of newly arrived contracts, the short flash and the glow therefore changed at most once a minute. They are now drawn in the layer the platform repaints with every tick, still behind the candles, and when the book changes without a trade the chart is refreshed at most five times a second; the flash, the glow and the +5 fade smoothly while the data flows. With Draw Above Candles on, the content stays in the layer that also shows when you scroll back.

Every display setting now repaints the chart at once, also on a quiet market.

Settings: numbers have no upper limit any more - only a logical minimum (for example Minimum Refills at least 1, Maximum Tracked Orders at least 1,000); panel and notice offsets are free in both directions.

Detection is unchanged: the 155 engine checks pass and the replay over real MNQ market-by-order recordings still confirms every PROVEN iceberg (16 of 16 and 9 of 9) with none missed.

1.2.7 - INTERNAL: THE CHART DRAWING IS SHARED WITH OFS ENTRYDESK. NOTHING CHANGES ON YOUR CHART.

The markers, the level tree, the numbers, the flash and the alignment guide moved into a shared painter so that OFS EntryDesk shows exactly the same tree. Every setting, default and pixel is unchanged; the 155 engine checks pass as before.

1.2.6 - MANUAL UPDATE CHECK.

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. Nothing else changed.

1.2.5 - PRODUCT ROW SHOWS THE NAME ONLY.

The Product row in 01 - License now shows the product name only. No internal code is displayed anywhere in the settings. Nothing else changed.

1.2.4 - SETTINGS TEMPLATE: LICENSE HEADER, ALERT SOUND UNDER THE ALERT SWITCH, TELEGRAM IN ONE FORM. DETECTION LOGIC UNCHANGED.

Group 01 - License now reads Product, License Key, Website, Version and Check For Updates - the same header in every OFS indicator. In 13 - Alerts the Alert Sound sits right under Enable Alerts, followed by the event switches. The five Telegram rows carry the same names, order and help as every other OFS indicator. Alerts stay off by default.

1.2.3 - A SMALLER PANEL: TRADING ROWS ONLY, TECHNICAL ROWS BEHIND ONE SWITCH.

The panel now shows what matters while trading: icebergs and levels, evidence (proven / refilled / rotated), the strongest iceberg, the nearest above and below, and the version and licence footer. The technical rows - data state, orders tracked, snapshots reconciled, marks and levels drawn, trades used / without id / unknown / rejected, the trade field that carried the passive id, and the drawing-layer counters - are still there, behind Panel Diagnostics in 15 - Diagnostics (off by default). Nothing was removed from the engine or the diagnostic log.

1.2.2 - THE PANEL IS THE STANDARD OFS PANEL FROM THE FIRST BOOK UPDATE, IT STAYS INSIDE THE CHART, AND DIAGNOSTICS IS THE LAST GROUP.

With Show Panel on you now get the same panel as in every OFS indicator - counters, strongest and nearest icebergs, version and licence footer - from the first book update on, whether or not an iceberg has been found yet. The separate waiting badge and the Waiting Notice setting are gone: with the panel on you see the panel, with it off nothing, and faults follow Show Notices.

The panel, the notices and the update card are placed inside the visible chart region like in every other OFS indicator; before, the default top-right panel could overhang the right edge of the window under the price scale.

The Diagnostic Log moved to the last settings group, 15 - Diagnostics, after Alerts and Telegram, as in every OFS indicator. Detection and evidence logic are unchanged.

1.2.1 - A HIDDEN PANEL NO LONGER HIDES A PROBLEM.

Since 1.1.17 every notice followed Show Panel, and the panel is off by default - so a chart without a licence or without market-by-order data stayed silent. Notices now have their own switch, Show Notices (on by default), their own nine-point position and X/Y offsets, independent of the panel. Error states - missing or rejected licence, no market-by-order data, order-book safety limit, book updates without order ids, trades that cannot be matched, display filters that removed everything - are drawn while the panel is hidden. Waiting for the first iceberg is normal work, not a fault, so it is still shown only with the panel on, according to Waiting Notice.

New: Panel Background - one colour with transparency in its alpha channel, used by the panel, the waiting badge and the notices. Detection and evidence logic are unchanged.

1.2.0 - MEASURED ON REAL ORDER-BY-ORDER RECORDINGS; THREE THINGS THE DATA CHANGED.

1.1.17 - PANEL LAYOUT AND VISIBILITY CONTROLS.

1.1.16 - THE TREE CAN BE POSITIONED BEFORE THE FIRST ICEBERG, AND SEVEN AUDIT EDGE CASES ARE FIXED.

1.1.15 - THE UPDATE CARD NOW TELLS YOU WHAT IS NEW.

1.1.14 - THE PANEL AND THE NOTICES SIT ABOVE THE CANDLES, AND THE NEW-VERSION CARD ALWAYS SHOWS.

1.1.13 - NEW UPDATE CARD, CENTRED AND WITH DIRECT LINKS.

1.1.12 - CIRCLES AND MOVE ARROWS SIT ON THE WICK TO THE PIXEL.

1.1.11 - MARKERS SIT EXACTLY ON THEIR PRICE LEVEL.

1.1.10 - ALERT SOUND IS A LIST WITH A PLAY BUTTON.

1.1.8 - THE UPDATE CARD'S CLOSE BUTTON IS A REAL BUTTON - a framed, highlighted square instead of a faint cross, comfortably clickable.

1.1.7 - THE PANEL FOOTER NO LONGER SHOWS YOUR E-MAIL ADDRESS.

1.1.6 - A NEW VERSION NOTICE.

1.1.5 - LICENCE GATE ON NOTIFICATIONS.

1.1.3 - waiting for the first iceberg no longer takes a wide box on the chart.

0.3.3 - the product texts now say openly how this compares with level-based detectors.

0.3.2 - the waiting notice says what is actually happening.

0.3.1 - numbers in the tree stop disappearing, and active branches glow.

0.3.0 - a deep audit: moved orders, stable drawing, centred circles.

0.2.5 - the passive side of a trade is now DETERMINED, not assumed. This is what stopped it finding anything.

0.2.4 - the status numbers were only refreshed when something was found.

0.2.3 - the three defects a full code audit turned up, and an empty chart that explains itself.

0.2.2 - fixes a regression from 0.1.9 that could hide the whole tree.

0.2.1 - no ceilings, and the tree says contracts.

0.2.0 - an iceberg is an ORDER, not a price.

0.1.9 - drawing survives zooming, levels cannot be hidden, numbers match the bars.

0.1.8 - a number instead of a sentence, every color yours, and levels that stay.

0.1.7 - circles in the candles, where the iceberg actually happened.

0.1.6 - the tree is the whole chart output, and it says how many.

0.1.5 - a trade now has to prove it was absorbed, and thresholds stop destroying evidence.

0.1.4 - findings from a full code audit.

0.1.3 - the chart is readable again: the tree carries the information, the price carries only the strongest levels.

0.1.2 - the tree and the levels showed only proven icebergs.

0.1.1 - the context panel is off by default.

0.1.0 - first release of OFS Iceberg Detector.

Frequently asked questions

How is this different from an iceberg detector that reads the DOM?
A DOM shows the total size at a price, not the individual orders behind it. A detector built on that can only observe that more traded than was displayed at the level, and it has to assume nothing else was added or cancelled meanwhile - an assumption that fails many times a minute in a fast book. This indicator reads each order separately and attributes each trade to the specific order it hit, so the hidden quantity is measured on one order rather than inferred from a level.
Why does it show fewer icebergs than level-based detectors?
Because it only marks what it can prove on a single order id, and proof takes more evidence than an impression. A level-based detector marks any price where more traded than was displayed, which also catches queues of ordinary orders taking turns - so it shows more marks, and more false ones. This indicator deliberately trades quantity for certainty: it marks later and less often, every mark carries its evidence level, and the diagnostic log lets you audit each one - which order id it stands on and why. It also tells you what it could NOT see: the panel counts trades that carried no order id or could not be attributed, so the coverage is never a guess. If you want more findings at the cost of weaker evidence, enable rotated tranches; the defaults keep only what is proven or repeatedly refilled.
What data do I need?
Market-By-Order depth, sometimes sold as order-by-order or full depth of book. A Rithmic subscription that includes it is known to work. Plain Level 2 is not enough, because it aggregates orders and throws away exactly the identifiers this indicator depends on. Without the data the notice says No market-by-order data and no market evidence is drawn; only the optional neutral alignment guide may remain visible.
Why does everything disappear when I reload the chart?
Order flow is not stored in chart history and cannot be replayed. The indicator works forward from the moment it is on the chart. This is a property of the data rather than a design choice, which is also why the detection is deterministic and why a diagnostic log is included so you can verify any session yourself.
What is the difference between PROVEN, REFILLED and ROTATED?
PROVEN means the hidden size was measured on one order - it is arithmetic. REFILLED means the same order kept growing back after being hit, repeatedly. ROTATED means the level kept being refilled by replacement orders, which is how some venues rotate tranches. Only the first is a proof; the other two are strong patterns and are labelled as such.
Can I turn off the weaker evidence?
Yes - it is off by default. Accept Rotated Tranches in group 06 - Detection controls whether new rotated evidence is accepted. ROTATED needs more repetitions than REFILLED on purpose, because ordinary queue turnover looks exactly like rotation and only repetition tells them apart. Findings already recorded in the live session are not rewritten when a detection setting changes.
Does it repaint?
Detection is event driven and never revisits a decision once made: a signal can only be upgraded to stronger evidence, never downgraded or removed retroactively. We do not use the phrase non-repainting about this indicator, because the parity test the other OFS indicators pass cannot be run on data that cannot be replayed. What we can offer instead is a deterministic engine and a diagnostic log, so the same recorded session always yields the same result.
Do levels disappear once price moves away?
No, and there is deliberately no setting that could make them. A level where size was absorbed stays for the rest of the session, because the moment it matters most is when price comes back to it. Only the visible price range of the chart limits what you see.
What do the two numbers beside each branch mean?
420 (3) means that level absorbed 420 contracts and three different orders did the absorbing. The first number is exactly what the length of the bar is drawn from, so the two always agree. Repeated refills of the same order do not increase the count in brackets - it counts orders, not events.
Will it slow the chart down?
Detection and drawing are separate: the chart receives a finished picture at most ten times a second and never reruns detection. The number of followed orders is capped, and orders the feed deletes are released at once. Confirmed findings are intentionally kept for the live session, so a very long and exceptionally busy session still carries more drawing work than a fresh one.
What does the number beside each branch mean?
420 means that the price level absorbed 420 contracts. It is exactly the quantity the branch length is drawn from, so the bar and the number always agree. The context panel reports the separate count of iceberg orders and price levels without covering the chart with extra labels.
What happens when I reload the chart?
With ATAS 8.0.15 or newer the indicator takes the icebergs the platform's own market-by-order analytics already knows - kept on disk for the days set in ATAS - and draws them on the candle where each began, so a reloaded chart is not empty. Live detection is this indicator's own engine from the moment it is on the chart; the same order found by both is one iceberg, and the panel shows how many each found. Order flow itself cannot be replayed from chart history, so on an older platform or another data source the chart starts empty as before. History From ATAS in group 06 - Detection switches it off. With two connections delivering market data for the instrument it does not use them on that chart.
I use two connections in ATAS - one for trading and one for market data. Does that matter?
When both connections deliver market data for the same instrument, ATAS passes every trade and every order book change to the indicator twice. The indicator recognises the copies and counts every trade once, so the icebergs are the same as with a single connection; a notice says so for one minute and, with the panel on, the row "Data: arrives twice - copies ignored" stays. Nothing has to be switched off. The ATAS analytics receives the same double data, so the ATAS history is not used on that chart; the panel row "ATAS history" then says "not used - market data arrive twice".
⚠ This indicator is an analytical tool; it does not place orders and does not predict prices. Past behavior of the order book does not guarantee future results. Trading futures, forex and crypto carries a substantial risk of loss and is not suitable for everyone. This product is analysis software - it is not financial, investment or trading advice, and it cannot guarantee any profit. Every decision stays with you: whether to trade at all, position size, stop-loss and when to walk away. Any performance figures we publish come from historical testing; hypothetical and back-tested results have inherent limitations and never guarantee future results. To the maximum extent permitted by law, OrderFlowSmith is not liable for trading losses, missed opportunities or other damage arising from the use of this software. Never trade with money you cannot afford to lose.

Reviews

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