OnixS C++ B3 Binary UMDF Market Data Handler 1.8.4
API documentation
Loading...
Searching...
No Matches
Getting Started

Inner Contents

 Licensing
 Logger Settings
 Event Listeners
 Order Books

Detailed Description

B3 Binary UMDF Market Data Handler is a C++ library that provides access to the B3 Unified Market Data Feed (UMDF). Handler encapsulates all low-level aspects of the market data platform, allowing focusing on implementing trading solutions and market data processing algorithms. High-level C++ API allows building applications quickly to get market data without much involvement in raw protocol specifics.

All Handler classes are encapsulated into the OnixS::B3::MarketData::UMDF namespace. Header files are collected in the master OnixS/B3/MarketData/UMDF/UMDF.h header file for your convenience.

The typical way of using the Handler is as follows:

  • Create an instance of the Handler's settings.
  • Create an instance of the Handler class using the previously initialized instance of settings.
  • Register listener for errors and warnings to be notified about failures that occur while the Handler processes market data.
  • Register listeners for market data messages or order book events.
  • Start market data processing by invoking the Handlers' start method.
  • Process data of the events for which listeners were previously registered.
  • Stop market data processing using the Handler's stop method.

Configuring and Constructing the Handler

HandlerSettings settings;
settings.loggerSettings.logLevel = LogLevel::Debug;
settings.loggerSettings.logSettings = LogSettings::Default;
settings.loggerSettings.logDirectory = "logs";
settings.licenseDirectory = PATH_TO_DIRECTORY_WITH_LICENSE_FILE;
settings.instrumentFeeds.a.address = CHANNEL_80_INSTRUMENT_FEED_A_ADDRESS;
settings.instrumentFeeds.a.port = CHANNEL_80_INSTRUMENT_FEED_A_PORT;
settings.incrementalFeeds.a.address = CHANNEL_80_INCREMENTAL_FEED_A_ADDRESS;
settings.incrementalFeeds.a.port = CHANNEL_80_INCREMENTAL_FEED_A_PORT;
settings.incrementalFeeds.b.address = CHANNEL_80_INCREMENTAL_FEED_B_ADDRESS;
settings.incrementalFeeds.b.port = CHANNEL_80_INCREMENTAL_FEED_B_PORT;
settings.snapshotFeeds.a.address = CHANNEL_80_SNAPSHOT_FEED_A_ADDRESS;
settings.snapshotFeeds.a.port = CHANNEL_80_SNAPSHOT_FEED_A_PORT;
#if !defined(_WIN32)
settings.networkInterfaceA = NETWORK_INTERFACE_FOR_FEEDS_A;
settings.networkInterfaceB = NETWORK_INTERFACE_FOR_FEEDS_B;
#endif
Handler handler(settings);

Registering Event Listeners

handler.registerWarningListener(&issueListener);
handler.registerErrorListener(&issueListener);
handler.registerMessageListener(&messageListener);
handler.registerOrderBookListener(&orderBookListener);

Starting Market Data Processing

handler.start();
// processing listener's events
handler.stop(true);
See also