OnixS C++ CME MDP Premium Market Data Handler 5.11.1
Users' manual and API documentation
Loading...
Searching...
No Matches
Book Update Notification Strategies

OnixS::CME::MDH::BookManagement::updateNotification controls when the handler publishes incremental book updates. A market event can span multiple packets and messages. The default policy waits for the relevant event boundary; an alternative policy publishes earlier when the processed security changes.

Access these parameters through handler.settings().bookManagement().

BookUpdateNotification::OnEndOfEvent

For incremental data, book update callbacks wait for the relevant market event boundary.

The handler raises book updates for:

  • MBO and direct books at the end of real quotes updates,
  • implied books at the end of implied quotes updates,
  • consolidated books at the end of the entire event.

This is the default policy. It avoids exposing intermediate changes within the corresponding quote sub-event or market event. Recovery completeness and currency with the live stream are separate conditions; see Interpreting a book update.

BookUpdateNotification::OnSecurityChange

The handler raises the book update event once the security (id) is changed in a sequence of book entries, and for the final security when that entry sequence ends, without waiting for the end of a market event.

Attention
This policy can expose inconsistent or crossed books, especially consolidated books, before all changes in the market event have been processed.

Interpreting a book update

OnixS::CME::MDH::SecurityListener::onBookUpdate reports the book at the handler's current processing position. Consider three separate properties before using it:

  • Event consistency. The notification policy above determines whether a callback waits for the relevant quote sub-event or market-event boundary, or can expose intermediate updates.
  • Completeness. Snapshot processing also raises book updates: after an accepted MBP snapshot or the last chunk of an MBO snapshot. These callbacks can precede completion of channel-wide recovery and replay of queued incremental packets. With Natural Refresh, missing levels or orders can remain absent even at an event boundary. Book state() describes construction and refresh state; it is not a recovery-completion or live-processing signal.
  • Currency. A snapshot or replayed update describes an earlier processing position. Even successful market recovery can be reported while TCP recovery is active. Observe recovery completion statuses and real-time processing events as described in Processing Phases and Data Readiness, including the ContinueProcessing notification limitations. An event boundary does not guarantee that the handler has caught up with incoming traffic.

For a late join, configure snapshot recovery for the required book types and observe its outcome. For a pre-opening session that starts without snapshots, completeness depends on receiving the necessary market data from the beginning. A first book update, BookState::Latest, or OnixS::CME::MDH::HandlerListener::onRealtimeProcessing alone does not establish all three properties or determine whether data is suitable for an application's trading decisions.