B3 Icebergs Sub-Chart Indicator
What is the B3 Icebergs Sub-chart Indicator?
Built for greater analysis, this add-on identifies and displays the evolution of Iceberg Orders.
The B3 Icebergs Sub-Chart add-on is designed to help traders quickly overview the market movements of Iceberg orders displayed on the sub-chart, using greater data detection and analysis tools than your standard instrument. Its main features are:
- Accurate detection of iceberg order executions
- Ability to apply an order size filter to iceberg order data
- Instant computation and display of every market update. Not once per minute or once per second, but instantaneously, exactly whenever it happens
- Ability to compute and display all results and data from the exact moment of your instrument subscription, not from the moment of enabling the add-on
- Ability to Process millions of market data events per second, even on a regular laptop. This allows Bookmap to re-compute the indicator instantly whenever the user changes the settings
Understanding Iceberg Orders
Iceberg orders are buy or sell limit orders that have been split into smaller limit orders to hide the total order quantity. The term "iceberg" comes from the fact that the visible lots are just the "tip of the iceberg", given the greater number of limit orders are not visible.
Background Information
Exchanges process orders in an atomic manner, which means strictly according to the order of their arrival on the exchange (unless the exchange applies artificial speed bumps).
Orders that can't be immediately executed (e.g. due to their limit price) become resting (or working) orders and form the order book. A new order can be matched against one, multiple, or none of the resting orders. Because only the newly arrived (or newly replaced) order may initiate a trade, we call it the aggressor order, and its counterparties -- passive orders.
The order size filter
It is important to understand that the orders size filter refers to the order size, not the trade size. This is because traders are typically interested in tracking the larger orders, and because the actual order size of all participating orders can be larger than their traded size in some particular transactions. This happens when a Stop-Limit order is only partially executed, or when a limit order (especially an iceberg order) was already executed earlier.
To summarize, after the trade object is computed, it is used to update the cumulative-volume-delta (CVD) line on the chart as following:
Iceberg orders CVD | |
---|---|
Affected by | Passive orders where isIceberg is true |
Value | Equals its own tradeSize field |
Sign | Positive if isBuy is false |
Order size filter applied to | totalTradedSize + remainedSize of Iceberg orders |
Accumulation mode
Each object represents the traded volume of its corresponding event. The sign of the resulting value of each object is negative for Sell orders, and positive for Buy orders.
Unfortunately, it is simply impractical to attempt to digest every possible data event visually. Therefore, the indicator line represents a form of accumulation of past events up until the current moment. For convenience, there are several accumulation methods, which are presented here:
Accumulation type | The time parameter T means | Accounted time interval | Indicator's value |
---|---|---|---|
SUM | N/A | From data start | Regular sum |
EXPONENTIAL | T - the decay rate (half-life) | From data start | Sum, gradually decaying by 50% every T |
RESET (every T) | T - how frequently reset occurs, e.g. every 1 minute | From last reset point | Regular sum |
SLIDING | T - the width of the sliding window | From T time ago | Regular sum |
SAME_SIDE_SUM | N/A | Accumulates Buy volume until there is any Sell volume, and vice versa | Regular sum |
Voice and Text alerts
Types of alert triggers
Currently there is only one type of trigger:
- A burst of Iceberg orders executions
This iceberg alert is triggered whenever the volume traded by corresponding orders is greater or equal to V
within the time interval T
, where V and T are configurable parameters
Methods of reporting the alerts
Currently, there are two methods to receive alerts: as text messages via the File->Alerts window, and as a voice alert synthesized from a text message.
The content (or format) of the message is configurable simply by editing the corresponding fields. Variable properties of the alert can be placed anywhere in the message by using keywords surrounded by ${}
, for instance:
Iceberg orders traded ${size} contracts at ${price} within ${time} milliseconds
When an alert is triggered, actual values will be automatically inputted into these variable sections. The following keywords are supported:
${type}
- the type of the trigger, e.g.Stop
, orIceberg
${symbol}
- Full instrument's name such as ESU0${exchange}
- the exchange, e.g.CME
${sym}
- 2 first letters of${symbol}
${size}
- the traded volume which triggered the alert${side}
- eitherBuy
orSell
. Note that if the event is triggered by Stop order(s) trading against Iceberg(s) orders, theside
of these orders is opposite to each other${time}
- the time interval in milliseconds during which it occurred. If it's caused by a single aggressive order, thistime
is zero${price}
- at which price the${size}
is traded. If there are multiple prices, the${price}
represents VWAP (volume weighted average price)${multi}
- The system aggregates the alerts as long as the audio system is busy (e.g. pronouncing the previous alert). Then multiple alerts are aggregated and reported as a single alert. The${multi}
keyword acts as a separator between the message used for a single alert and the message used for an aggregated alert. If this keyword is absent, the entire message is used, regardless of whether the alert is aggregated or not.${N}
- Represents the number of aggregated alerts (appears as1
for a single alert)
Examples:
${type} ${side} alert at ${sym}: ${size}
contracts${type} ${side} alert at ${symbol}.${exchange} (${sym}): ${size} contracts at ${price} within ${time} ms${multi}Miltiple (${N}) ${type} ${side} alerts at ${symbol}.${exchange} (${sym}): ${size} contracts at ${price} within ${time} ms
${sym} ${type} alert: ${side} ${size} in ${time} millis${multi}${sym} ${type} multi alert: ${side} ${size} in ${time} millis by ${N} triggers
${sym} ${type} alert: ${side} ${size}
- a short alert for voice messages${sym} ${type} alert: ${side} ${size}${multi}Multi {sym} ${type} alert: ${side} ${size} by ${N} triggers
- if you want to know which alerts consist of multiple aggregated alerts For voice alerts it's recommended to use a very short and simple pattern. For example,${sym} ${type} alert: ${side} ${size}
will sound likeES Stop alert: Buy 50
. This will reduce the time it takes the robot to pronounce it, helping you digest the information faster.
Alerts vs Indicator
This add-on allows traders to align alerts with indicator values by selecting "Apply threshold on indicator..." checkbox.
If not selected, the two are not designed to be comparable. Here is a simple analogy: when a fire alarm is triggered, it doesn't tell you what the maximum temperature will be during the fire. For that it would need to either delay the alert (not acceptable) or to know the future (not possible).
Due to the above, the indicator's values may reach a higher magnitude than the initial alert would suggest. On the other hand, the indicator accumulates Buy and Sell volume with opposite signs, therefore in theory (because it rarely happens) a consequent Buy Iceberg of 500 and Sell Iceberg of 500 will not change the indicator, but will trigger two alerts.
Note: If the orders size filter is enabled, it's similarly used by the indicator and the alerts system.
Important Notes
Data adapter
The add-on works only with the Cedro L0 data adapter. Use this guide to install the latest available version of the adapter.
Note: Tha add-on will not show any detections with the usual Cedro data adapter - you must install the Cedro L0 data adapter for it to work.
Data Aggregation
The latest version of Bookmap includes some performance optimizations, which can make the application run smoother at the cost of some details.
When the application is under heavy load and new events happen faster than Bookmap can process, an aggregation mechanism automatically turns on to help performance.
In this mode, Bookmap aggregates several individual events into one, improving performance at the cost of losing accuracy.
This allows Bookmap to operate faster, avoiding freezes and delays in data processing, but it may affect indicators that rely on data microstructure accuracy. B3 Icebergs On-Chart and B3 Icebergs Sub-Chart are examples of those indicators.
When the automatic aggregation mechanism turns on, B3 indicators may become unpredictable (lose detections, show fake detections, etc.)
Therefore, if you are using B3 indicators and need accurate data, you can disable automatic aggregation to ensure you get reliable data.
But we do not recommend doing so, as Bookmap may not run smoothly during volatile market conditions. Disabling automatic aggregation means you’ll be unable to perform real-time actions such as closing positions or moving orders, which most traders would consider more critical to trading.
If, however, you do not need to perform real-time actions, or find the risk acceptable, to disable automatic aggregation simply go to Settings > Performance > Automatic aggregation and set Event queue size to Never.
Again, DO NOT DISABLE AUTOMATIC AGGREGATION if you need to perform real-time actions and execute trades, as significant drops in performance will hinder this.
If you’re not trading and you’re happy that Bookmap may occasionally slow down under heavy load, you can change the default parameters to increase the SI detection accuracy. Set the events queue slider to 20000 and delay to 5 seconds.
When the aggregation mechanism is enabled for the first time during a Bookmap session, the B3 Icebergs Sub-Chart add-on will display the following warning:
Note: With aggregation enabled, the B3 Icebergs Sub-Chart add-on is still operational, but it cannot get the required information from parts of the data which were aggregated, so some detections may be missing.
B3 Icebergs Sub-Chart Indicator FAQ
Why do I see different Icebergs values between different PCs?
There are multiple reasons why users may see varying values between different PCs:
-
Data Aggregation: This is the primary performance optimization feature. It allows Bookmap to operate faster and avoid freezes and delays in data processing, but may affect indicators that rely on data microstructure accuracy. B3 Icebergs On-Chart and B3 Icebergs Sub-Chart are examples of those indicators. Read more here.
Aggregation can be applied differently on different PCs, so detection will be different too.
-
Resets: There is always some difference between event timestamps on different PCs, +/- 20ms. It's enough to result in having different detections, where on one PC a reset may be applied before a reset on another.
-
Different B3 Icebergs add-on versions - We improved the B3 Icebergs On-Chart and B3 Icebergs Sub-Chart multiple times, often improving the detection accuracy and the add-on performance with each update. If the computers are running different versions, the detections may be different because of this.
Why do I see different values between my B3 Icebergs On-Chart and B3 Icebergs Sub-Chart?
First, make sure you use the latest version of both the B3 Icebergs On-Chart and B3 Icebergs Sub-Chart.
Also, note that the volume calculation logic is different in Sub-Chart and On-Chart Icebergs Indicators. For a more reliable comparison, configure indicators in the following way:
- Disable filtering for the Sub-Chart and set the ‘Accumulate as’ parameter to SUM.
- Set the threshold for the On-Chart to 0, and select individual icebergs events only.
- Now it is time to zoom in and compare the volumes.
Installation
Please note that the B3 Icebergs Sub-Chart Indicator add-on is only compatible with Bookmap 7.4.
Additionally, this add-on takes advantage of the new Add-ons Manager feature, which simplifies both the installation and updating process. If you'd like to learn more about the Add-ons Manager and how it can benefit your experience, please visit the following page.