ITCH 5.0 Market Data Handler 1.0.0
NASDAQ ITCH 5.0 Market Data Feed Handler
Loading...
Searching...
No Matches
Aggregator.h File Reference

Order book price level aggregator. More...

Detailed Description

Order book price level aggregator.

This file provides an efficient aggregator for maintaining order book price levels. The aggregator tracks price, quantity, and order count at each level, supporting operations like add, reduce, and modify with automatic level management.

Key features:

  • Fixed maximum depth (configurable at construction)
  • Automatic sorting (best prices first)
  • Efficient level updates with handler notifications
  • Support for both buy and sell sides
  • Overflow tracking beyond configured depth

The aggregator maintains the best N price levels and tracks overflow levels in a separate set. When top levels are removed, overflow levels are promoted.

Note
Thread-safety: Not thread-safe. External synchronization required.
#include <cassert>
#include <cstdint>
#include <functional>
#include <set>
#include <vector>

Classes

struct  b2bits::cmp_traits< Side >
 Comparison traits for buy/sell sides. More...
struct  b2bits::cmp_traits< 'B'>
 Comparison traits specialization for buy side ('B'). More...
struct  b2bits::cmp_traits< 'S'>
 Comparison traits specialization for sell side ('S'). More...
struct  b2bits::DefaultBookTraits
 Default traits for order book. More...
struct  b2bits::LevelUpdateEvent< Traits >
 Book level update event. More...
class  b2bits::Aggregator< _Traits, _Side >
 Order book price level aggregator. More...

Namespaces

namespace  b2bits

Class Documentation

◆ b2bits::cmp_traits

struct b2bits::cmp_traits
template<char Side>
struct b2bits::cmp_traits< Side >

Comparison traits for buy/sell sides.

Primary template (undefined - must be specialized for specific sides).

Template Parameters
SideSide character ('B' for buy, 'S' for sell)

◆ b2bits::cmp_traits< 'B'>

struct b2bits::cmp_traits< 'B'>

Comparison traits specialization for buy side ('B').

For buy side, higher prices are better (bid side).

Class Members
typedef less< void > GreaterComparer std::less<void> Buy side: lower prices are "greater".
typedef greater< void > LessComparer std::greater<void> Buy side: higher prices are "less".

◆ b2bits::cmp_traits< 'S'>

struct b2bits::cmp_traits< 'S'>

Comparison traits specialization for sell side ('S').

For sell side, lower prices are better (ask/offer side).

Class Members
typedef greater< void > GreaterComparer std::greater<void> Sell side: higher prices are "greater".
typedef less< void > LessComparer std::less<void> Sell side: lower prices are "less".