Skip to main content
Version: 8.5.11.1

Complex Order Book (COB)

SpiderRock's Complex Order Book (COB) framework allows for consistent handling, normalization, and aggregation of exchange-defined spreads across multiple options exchanges. It provides the foundation for building our internal spread book adn delivering real-time normalized market data.

At the core of this framework, there are four primary message types:

MessageDescription
SpreadExchDefinitionThe exchange-specific definition of a spread.
SpreadExchOrder / SpreadPrintThe real-time market data for exchange-specific spreads.
SpreadDefinitionThe aggregated, normalized representation of a spread across exchanges.
SpreadBookQuoteThe SpiderRock spread book, derived from exchange orders and updated continuously.

Leg Normalization

A critical step in handling spreads is normalization. Exchanges often provide legs in different orders or with reversed buy-sell orientations, which would make comparisons inconsistent. After sorting the legs, our system enforces a standard: The first leg of every spread is always a buy. If the exchange's definition does not conform, we will flip the legs and the flipSide attribute records the inversion. This guarantees that spreads, regardless of their source, can be meaningfully compared.

For further explanation, refer to Spread Leg Normalization.

SpreadExchDefinition

The SpreadExchDefinition message provides the base layer of information. Each spread is uniquely identified through a composite key:

  • Exchange (exch) - The originating options exchange.
  • Exchange Spread ID (exchSprID) - The unique identifier assigned to that exchange.

Alongside this key, SpreadExchDefinition contains the normalized leg structure, which acts as the anchor for all exchange-specific spread activity.

SpreadExchOrder and SpreadPrint

Once a spread is defined, real-time trading activity references it:

  • SpreadExchOrder represents live, public spread orders from an exchange, containing details such as price, size, and order type. While they do not include the full legs list directly, they do carry the exch, exchSprID, and flipSide which allows a corresponding SpreadExchDefinition to be referenced for complete leg details.
  • SpreadExchPrint records executed trades for those spreads and contains the legs in the message.

SpreadDefinition

While SpreadExchDefinition captures exchange-specific spreads, SpreadDefinition consolidates equivalent spreads across venues. Spreads with identical and normalized leg structures are grouped together under a single SpiderRock identifier, the SRspreadID. This allows the system to:

  • Track where a spread is being traded across multiple exchanges.
  • Provide a unified reference point in SpiderRock's internal spread book.

SpreadBookQuote

The SpreadBookQuote message delivers a market view as a live spread book. It is built from SpreadExchOrders and continuously updated to reflect the most current book state. Each record:

  • Contains up to two price levels.
  • References its SRspreadID, linking back to SpreadDefinition and the underlying legs of the spread.

To maintain accuracy, new orders are incorporated into the book in real time while every ten seconds, the system scans for and removes orders older than five minutes. This process keeps the spread book both timely and reliable.