Cboe Titanium Cboe Futures Exchange Multicast Depth of Book (PITCH) Specification

Cboe Titanium Cboe Futures Exchange Multicast Depth of Book (PITCH) Specification

Overview

Note that this specification is the standard Multicast PITCH specification for Cboe US Futures Exchange (CFE) platform. This protocol is essentially the same as the Multicast PITCH protocol used by the Cboe US Equities and Options exchanges, with the addition of CFE specific messages.

CFE participants may use CFE Multicast PITCH to receive real-time depth of book quotations and execution information direct from CFE. The Multicast PITCH protocol is more timely than the Multicast TOP protocol.

PITCH cannot be used to enter orders. For order entry, refer to the appropriate CFE FIX or BOE Specification.

All versions of the Multicast PITCH feed are WAN-shaped (maximum 100 Mb/s) and are available from one or both of CFE's datacenters. Participants may choose to take one or more of the following Multicast PITCH feeds depending on their location and connectivity to CFE.

Table 1. Multicast PITCH Feed Descriptions
ExchangeShapingServed From Data Center (Primary/Secondary)Multicast Feed ID
CFEWANPrimaryFC
CFEWANPrimaryFD
CFEWANSecondaryFE

Feed Hours and System Restart

The PITCH feed starts on Sunday at approximately 10:30 a.m. CT and shuts down on Friday at approximately 4:05 p.m. CT. A daily restart occurs between 4:05 and 4:45 p.m. CT each day at which time sequences will be reset. The daily restart is typically observed between 4:05 and 4:10 p.m. CT, but could occur later if needed for operational reasons. Feed startup and shutdown times may be adjusted without notice.

Under normal operations, it is expected that the order books are cleared (Delete Order messages sent for any open orders, including GTC and GTD orders), prior to the daily restart and reset of sequences. Persisted GTC and GTD orders will be added back into the order book starting at approximately 10 minutes prior to the scheduled queuing time for each futures root.

Feed Connectivity Requirements

WAN-Shaped feeds are available to participants who meet the minimum bandwidth requirements to CFE via cross-connect, dedicated circuit, or a supported carrier.

Participants with sufficient connectivity may choose to take both the FC and FD feeds from the CFE's primary datacenter and arbitrate the feeds to recover lost data. Alternatively, participants may choose to arbitrate feeds from both datacenters. It should be noted that feeds from the secondary datacenter will have additional latency for those connected with CFE in the primary datacenter due to proximity and business continuity processing.

CFE Multicast PITCH real-time events are delivered using a published range of multicast addresses divided by symbol range units. A TCP/IP connection to one of CFE's Gap Request Proxy (GRP) servers can be used to request dropped messages. Replayed messages are delivered on a separate set of multicast ranges reserved for packet retransmission. Intraday, a spin of all open orders may be requested from a Spin Server. This allows a client to become current without requesting a gap for all messages up to that point in the day.

The following diagram is a logical representation Multicast PITCH feed message flow between CFE and a participant feed handler that is listening to the A and B instances of two units:



Symbol Ranges, Units, and Sequence Numbers

Products are separated into units by a published distribution. Product distribution will not change intra-day. CFE does, however, reserve the right to add multicast addresses or change the product distribution with 48 hours prior notice to participants. Care should be taken to ensure that address changes, address additions, and product distribution changes can be supported easily.

Message sequence numbers are incremented by one for every sequenced message within a particular symbol unit. It is important to understand that one or more units will be delivered on a single multicast address. As with symbol ranges, unit distribution across multicast addresses will not change intra-day, but may change after notice has been given.

Symbol distribution across units as well as unit distribution across multicast addresses are identical for real-time and gap response multicast addresses.

Futures Specific Symbol Processing

CFE has implemented a symbol mapping mechanism (Futures Instrument Definition message) which maps each specific simple futures contract or spread instrument to a six character, ASCII Symbol. For example, the weekly VX11 contract expiring March 14, 2017 might be represented by the Symbol 0ab123. This symbol mapping significantly reduces the size of the Multicast PITCH feed for futures and allows participants to use the same symbol handling mechanisms for the Cboe operated equity, options, and futures exchanges. This symbol mapping is the same as the Multicast TOP feed.

Mapping occurs on a continuous basis on each unit's multicast feed. Futures Instrument Definition messages can be both un-sequenced and sequenced. Un-sequenced messages are sent from pre-market through the end of trading in a continuous loop that will complete approximately once every minute. Once the same contract has been seen twice, the user can be certain the full loop has been observed. The rate is variable and will be adjusted as bandwidth allows.

Spread instruments may be occasionally created intra-day. In these cases, the Futures Instrument Definition message will be sent as a sequenced message on the real-time feed and from the Spin Server before any other messages that reference an instrument created intra-day are sent.

In addition to the symbol mapping events available on the Multicast TOP feed, a downloadable file with current mappings is available via the CFE website.

Table 1. Production and Certification Symbol Files
Production symbol files:Certification symbol files:
Simple Simple
Spread Spread

Gap Request Proxy and Message Retransmission

Requesting delivery of missed sequenced data is achieved by establishing a TCP connection to a Multicast PITCH GRP port. This GRP port is specific to Multicast PITCH and is NOT shared with the Multicast TOP GRP port. Participants who do not wish to request missed messages do not need to connect to a GRP port for any reason or listen to the multicast addresses reserved for message retransmission. Participants choosing to request missed data will need to connect to their assigned GRP port, log in, and request gap ranges as necessary. All gap requests will be responded to with a Gap Response message. A Gap Response message Status code of A=Accepted signals that the replayed messages will be delivered via the appropriate gap response multicast address. Any other Gap Response message Status code will indicate the reason that the request cannot be serviced.

Gap requests are limited in message count, frequency, and age by the GRP. Gap requests will only be serviced if they are within a defined sequence range of the current multicast sequence number for the requested unit. Participants will receive a total daily allowance of gap requested messages. In addition, each participant is given renewable one second and one minute gap request limits.

If more than one gap request is received for a particular unit/sequence/count combination within a short timeframe, all requests will receive a successful Gap Response message from the GRP, but only a single replayed message will be sent on the gap response multicast address.

If overlapping gap requests are received within a short period of time, the gap server will only send the union of the sequence ranges across grouped gap requests. Participants will receive gap responses for their requested unit/sequence/count, but receivers should be prepared for the gap responses to be delivered via multicast in non-contiguous blocks.

Gap acknowledgements or rejects will be delivered to users for every gap request received by the GRP. Users should be prepared to see replayed multicast data before or after the receipt of the gap response acknowledgement from the GRP.

Spin Servers

A Spin Server is available for each unit. The server allows participants to connect via TCP and receive a spin of the inside book and symbols with limited trading conditions on that unit. By using the spin, a participant can get the current CFE book quickly in the middle of the trading session without worry of gap request limits. The Spin Server for each unit is assigned its own address and/or TCP port.

Upon successful login and periodically thereafter, a Spin Image Available message is sent which contains a sequence number indicating the most recent message applied to the book. Using a Spin Request message, a participant may request a spin for the orders up to a sequence number noted within one of the last ten Spin Image Available messages distributed. If the Spin Request message submitted does not present a sequence number that matches one of the last ten Spin Image Available messages distributed, the spin will return orders up to the next closest sequence number reported through a Spin Image Available message that is greater than the sequence number requested.

In the case a Participant sends a sequence number in a Spin Request message that is higher than the sequence number reported by the most recent Spin Image Available message, the next spin image to be generated will be returned when it is available. If the requested sequence number is still higher at that time, an O (Out of Range) error will be generated.

A spin consists only of Add Order (expanded, long and/or short), End of Day Summary, Futures Instrument Definition, Futures Variance Symbol Mapping, Trading Status, Settlement,Price Limits, Time Reference, and Time messages. Trading Status messages will be sent in spins for all symbols that are not S=Suspended, which results in at least one message for every symbol that has not been Suspended since system startup. Futures Instrument Definition messages will be sent for all symbols on the unit, so a spin may be used to get the current list of all instrument definitions. A Time message will be sent as the last message in a spin if the last Time message sent on a spin is older than the last received time from the internal market data producers.

Spins will not contain any message for an order which is no longer on the book. While receiving the spin, the participant must buffer multicast messages received. If the Spin Image Available message sequence number is the participant's reference point, multicast messages with larger sequence numbers should be buffered. If a non- Spin Image Available message sequence number is the participant's reference point which they send in their Spin Request message, they should buffer from that point on, but note that the spin they will receive sequence numbers beyond that point which they may disregard. When a Spin Finished message is received, the buffered messages must be applied to spun copy of the book to bring it current.

Spin Server Usage Example shows an example flow of messages between a participant and CFE's Multicast PITCH feed and Spin Server.

Protocol

CFE users may use the PITCH protocol over multicast to receive real-time full depth of book quotations and execution information direct from CFE.

All orders and executions are reflected via the PITCH feed. All orders and executions are anonymous, and do not contain any participant identity.

Message Format

The messages that make up the PITCH protocol are delivered using CFE's Sequenced Unit Header message header which handles sequencing and delivery integrity. All messages delivered via multicast as well as to/from the Gap Request Proxy (GRP) or Spin Server will use the Sequenced Unit Header message header for handling message integrity.

All UDP delivered events will be self-contained. Developers can assume that UDP delivered data will not cross frame boundaries and a single Ethernet frame will contain only one Sequenced Unit Header with associated data.

TCP/IP delivered events from the GRP may cross frames as the data will be delivered as a stream of data with the TCP/IP stack controlling Ethernet framing.

The PITCH data feed is comprised of a series of dynamic length sequenced messages. Each message begins with Length and Message Type fields. CFE reserves the right to add message types and grow the length of any message without notice. Participants should develop their decoders to deal with unknown message types and messages that grow beyond the expected length. Messages will only be grown to add additional data to the end of a message.

Data Types

The following field types are used within the Sequenced Unit Header message header, GRP messages, Spin Server messages, and PITCH.

  • Alphanumeric fields are left justified ASCII fields and space padded on the right.
  • Binary fields are unsigned and sized to Length bytes and ordered using Little Endian convention (least significant byte first).
  • Signed Binary fields are signed and sized to Length bytes and ordered using Little Endian convention (least significant byte first).
  • Binary Price fields are signed Little Endian encoded 8 byte binary fields with 4 implied decimal places (denominator = 10,000).
  • Binary Short Price fields are signed Little Endian encoded 2 byte binary fields with 2 implied decimal places (denominator = 100).
  • Bit Field fields are fixed width fields with each bit representing a Boolean flag (the 0 bit is the lowest significant bit; the 7 bit is the highest significant bit).
  • Printable ASCII fields are left justified ASCII fields that are space padded on the right that may include ASCII values in the range of 0x20 - 0x7e.
  • Binary Date fields are 4 byte unsigned Little Endian values where the base-10 representation is the YYYYMMDD representation of that date. For example, October 30, 2023 would be represented as 20,231,030 (20231030).
  • Time Offset are 4 byte unsigned Little Endian values that represent the number of nanoseconds since the last Time message.

Trade Date

Throughout this document, the term "Trade Date" is synonymous with the term "Business Date". The term Trade Date is used within this document to match identically named fields in the CFE FIX and BOE specs.

Message Framing

Depth of book update messages will be combined into single UDP frame where possible to decrease message overhead and total bandwidth. The count of messages in a UDP frame will be communicated using the CFE Sequenced Unit Header message header. Framing will be determined by the server for each unit and site. The content of the multicast across feeds (e.g. A/B) will be identical, but framing will not be consistent across feeds. Receiving processes that receive and arbitrate multiple feeds cannot use frame level arbitration to fill gaps.

CFE Sequenced Unit Header Message Fields

The CFE Sequenced Unit Header message header is used for all CFE Multicast PITCH messages as well as messages to and from the Gap Request Proxy (GRP) and Spin Servers.

Sequenced and un-sequenced data may be delivered using the Sequenced Unit Header message header. Un-sequenced headers will have a 0 value for the Hdr Sequence field and potentially for the Hdr Unit field. All messages sent to and from the GRP and Spin Server are un-sequenced while multicast may contain both sequenced and un-sequenced messages.

Sequenced messages have implied sequences with the first message having the sequence number contained in the header. Each subsequent message will have an implied sequence one greater than the previous message up to a maximum of count messages. Multiple messages can follow a Sequenced Unit Header message header, but a combination of sequenced and un-sequenced messages cannot be sent within one header.

The sequence number for the first message in the next frame can be calculated by adding the Hdr Count field to the Hdr Sequence. This technique will work for sequenced messages and Heartbeat messages.

Table 1. Sequenced Unit Header
FieldOffsetLengthValue/TypeDescription
Hdr Length02BinaryLength of entire block of messages. Includes this header and messages following Hdr Count.
Hdr Count21BinaryNumber of messages to follow this header.
Hdr Unit31BinaryUnit that applies to messages included in this header.
Hdr Sequence44BinarySequence of first message to follow this header.
Total Length = 8 bytes

Heartbeat Messages

The CFE Sequenced Unit Header message header with a count field set to 0 will be used for Heartbeat messages. During trading hours Heartbeat messages will be sent from the GRP, Spin Server, and all multicast addresses if no data has been delivered within 1 second. Heartbeat messages never increment the sequence number for a unit, but can be used to detect gaps on the real-time multicast channels during low update rate periods.

Heartbeat messages on the real-time multicast addresses during trading hours will have an Hdr Sequence value equal to the sequence of the next sequenced message to be sent for the unit. Heartbeat messages on gap multicast addresses will always have the Hdr Sequence field set to 0. All Heartbeat messages sent to and from the GRP and Spin Server are considered un-sequenced and should have sequence and unit fields set to 0.

Outside of trading hours CFE sends Heartbeat messages on all real-time and gap channels with a sequence of 0 to help users validate multicast connectivity. Heartbeat messages might not be sent from 4:00 PM CST - 4:45 PM CST or during maintenance windows.

CFE expects Heartbeat messages to be sent to the GRP on live connections no less than every 5 seconds. Failure to receive two consecutive heartbeat messages will result in the GRP or Spin Server terminating the client connection. With the exception of Time messages, each PITCH message reflects the order addition, order deletion, order modification or execution of an order in the system.

Time Message Fields

A Time message is immediately generated and sent when there is a PITCH event for a given clock second. If there is no PITCH event for a given clock second, then no Time message is sent for that second. All subsequent Time Offset fields for the same unit will use the new Time message value as the base until another Time message is received for the same unit. The Time field is the number of seconds relative to midnight Central Time, which is provided in the Time Reference message. The Time message also includes the Epoch Time field, which is the current time represented as the number of whole seconds since the Epoch (Midnight January 1, 1970).

Table 1. Time
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110x20 Time message.
Time24BinaryNumber of whole seconds elapsed since the start of the current Central Time calendar day, derived by converting the current Central wall clock time (HH:MM:SS) to seconds.

On Daylight Saving Time transition days, Time reflects wall clock seconds and does not adjust for the UTC offset change. On a DST spring-forward day, the maximum value will be 82,799 (23 hours). On a DST fall-back day, values between 3,600 and 7,199 will appear twice. Recipients requiring unambiguous absolute timestamps should use Epoch Time (where available) or Midnight Reference in the Time Reference message.

Epoch Time64BinaryNumber of whole seconds since the Epoch (Midnight January 1, 1970 UTC).
Total Length = 10 bytes

Unit Clear Message Fields

The Unit Clear message instructs feed recipients to clear all orders for the CFE book in the unit specified in the Sequenced Unit Header message header. It would be distributed in rare recovery events such as a data center fail-over. It may also be sent on system startup (after daily restart) when there are no persisted GTCs or GTDs.

Table 1. Unit Clear
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110x97 Unit Clear message.
Time Offset24BinaryNanosecond offset from last unit timestamp.
Total Length = 6 bytes

Time Reference Message Fields

The Time Reference message is used to provide a midnight reference point for recipients of the feed. It is sent whenever the system starts up and when the system crosses a midnight boundary. All subsequent Time messages for the same unit will use the last Midnight Reference until another Time Reference message is received for that unit. The Time Reference message includes the Trade Date, so most other sequenced messages will not include that information.

Time Reference messages will be included in a spin response.

Table 1. Time Reference
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110xB1 Time Reference message.
Midnight Reference24BinaryMidnight Central Time reference time for subsequent Time messages, expressed as number of whole seconds since the Epoch (Midnight January 1, 1970 UTC).
Time64BinaryNumber of whole seconds elapsed since the start of the current Central Time calendar day, derived by converting the current Central wall clock time (HH:MM:SS) to seconds.

On Daylight Saving Time transition days, Time reflects wall clock seconds and does not adjust for the UTC offset change. On a DST spring-forward day, the maximum value will be 82,799 (23 hours). On a DST fall-back day, values between 3,600 and 7,199 will appear twice. Recipients requiring unambiguous absolute timestamps should use Epoch Time (where available) or Midnight Reference in the Time Reference message.

Time Offset104BinaryNanosecond offset from last unit timestamp.
Trade Date144Binary DateCurrent Trade Date
Total Length = 18 bytes

Futures Instrument Definition Message Fields

The Futures Instrument Definition message can be sent as a sequenced message or an un-sequenced message. It is sent as a sequenced message when the system starts up at the beginning of a trading session or an the instrument is created or modified during a trading day. A new sequenced message may be sent for a Symbol that does not visibly change any attribute. One un-sequenced Futures Instrument Definition message for each Symbol is also sent in a continuous loop, which completes approximately once every minute as part of the Periodic Refresh mechanism.

If the instrument is a spread (Leg Count > 0) then the message contains one or more repeating groups of leg definitions beginning at the field indicated by Leg Offset. There is a limit of 4 leg definitions.

The Leg Offset field is provided to support adding additional fields to this message preceding the Leg definitions.

The Report Symbol field will contain either the weekly (e.g. VX01) or the monthly (e.g. VX) symbol for any simple futures contract. The Report Symbol will always contain the standard futures root symbol (e.g. VX) for all spread instruments.

Table 1. Futures Instrument Definition Message Fields
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110xBB Futures Instrument Definition message.
Time Offset24BinaryNanosecond offset from last unit timestamp or Unit Timestamp in this message if it is non-zero.
Symbol66Printable ASCIISix character, base 62 symbol.
Unit Timestamp124BinaryUnit timestamp expressed as number of whole seconds since the Epoch (Midnight, January 1, 1970 UTC).
Report Symbol166AlphanumericSymbol for product or underlying security.
Futures Flags221Bit FieldValue will always be zero indicating Standard Future.
Expiration Date234Binary DateExpiration Date of Instrument.
Contract Size272BinaryContract size of Instrument. Contract sizes less than 1 are represented with a 0 value; refer to the product specification for the contract size.
Listing State291Alphanumeric
  • A = Active
  • I = Inactive
  • T = Test
Price Increment308Binary PriceMinimum Price Increment.
Leg Count381BinaryValues greater than 0 indicate this is a spread instrument.
Leg Offset391Binary
  • Leg definitions, if any, begin at this offset from the beginning of the message. Possible values are 0 (no legs present) or 45 (spread instrument).
  • Cboe reserves the right to change these values without prior notice.
Reserved401BinaryReserved. Value will always be zero.
Contract Date414Binary Date
  • Populated for single leg instruments only. Zero-filled for spread instruments.
  • The date that should be used in describing the future's third party symbol and the measurement period of the contract.
  • Set to same value as Expiration Date for futures that have a Contract Date that does not differ from expire date.
The following fields repeat Leg Count times (maximum of 4) for spread instruments.
Leg Ratio
  • Leg Offset +
  • (10 * Leg Index)
4Signed BinaryLeg ratio (positive for buy, negative for sell).
Leg SymbolLeg Offset + 4 + (10 * Leg Index)6AlphanumericSymbol of leg.
Variable Total Length = 45 + (Leg Count * 10) bytes

Futures Variance Symbol Mapping Message Fields

The Futures Variance Symbol Mapping message is used to disseminate symbol reference data for S&P 500 Variance Futures (VA Futures) symbols. VA Futures symbol reference data are disseminated with both the Futures Instrument Definition and Futures Variance Symbol Mapping messages. The purpose of the Futures Variance Symbol message is to disseminate product-specific supplemental information for VA Futures symbols (i.e., Accrued Day Variance, Num Final Returns, and Num Elapsed Returns).

The Futures Variance Symbol Mapping message can be sent as a sequenced message or an un-sequenced message. It is sent as a sequenced message when the system starts up at the beginning of a trading session or if an instrument is created or modified during a trading day. A new sequenced message may be sent for a symbol that does not visibly change any attribute. One un-sequenced Futures Variance Symbol Mapping message for each symbol is also sent in a continuous loop, which completes approximately once every minute as part of the Periodic Refresh mechanism.

Futures Variance Symbol Mapping messages are included in a spin response.

Table 1. Futures Variance Symbol Mapping Message Fields
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110xFA Futures Variance Symbol Mapping message.
Time Offset24BinaryNanosecond offset from last unit timestamp or Unit Timestamp in this message if it is non-zero.
Unit Timestamp64BinaryUnit timestamp expressed as number of whole seconds since the Epoch (Midnight, January 1, 1970 UTC).
Feed Symbol106Printable ASCIISix character, base 62 symbol.
Futures Symbol1612AlphanumericTwelve character textual definition of the symbol where the first six characters contain the product symbol, left justified, and padded on the right with spaces, and the right most six characters are the expiration date in YYMMDD format.
Accrued Day Variance288Signed BinaryAccrued day variance as of the start of the trading day (signed 64-bit decimal with twelve implied decimal places).
Num Final Returns362BinaryNumber of S&P 500 Index returns used in the Final Settlement Value calculation.
Num Elapsed Returns382BinaryNumber of elapsed S&P 500 Index returns including the current day.
Total Length = 40 bytes

Price Limits Message Fields

The Price Limits message is sent out at the start of a session for products subject to price limits per the contract specifications. The Price Limits message does not signal whether price limits are in effect for that symbol; it simply provides those values for when they are in effect. If multiple Price Limits messages are received for the same Symbol, the most recent values will override the previous values.

Price Limits messages are included in a spin response.

Table 1. Price Limits
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110xBE Price Limits message.
Time Offset24BinaryNanosecond offset from last unit timestamp.
Symbol66Printable ASCIISix character, base 62 symbol.
Upper Price Limit128Binary PriceUpper price limit.
Lower Price Limit208Binary PriceLower price limit.
Total Length = 28 bytes

Add Order Message Fields

An Add Order message represents a newly accepted visible order on the CFE book. It includes a day-specific Order Id assigned by CFE to the order.

Table 1. Add Order (long)
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110x21 Add Order message (long).
Time Offset24BinaryNanosecond offset from last unit timestamp.
Order Id68BinaryDay-specific identifier assigned to this order.
Side Indicator141Alphanumeric
  • B = Buy Order
  • S = Sell Order
Quantity154BinaryNumber of contracts being added to the book (may be less than the number entered).
Symbol196Printable ASCIISix character, base 62 symbol.
Price258Binary PriceThe limit order price.
Total Length = 33 bytes
Table 2. Add Order (short)
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110x22 Add Order message (short).
Time Offset24BinaryNanosecond offset from last unit timestamp.
Order Id68BinaryDay-specific identifier assigned to this order.
Side Indicator141Alphanumeric
  • B = Buy Order
  • S = Sell Order
Quantity152BinaryNumber of contracts being added to the book (may be less than the number entered).
Symbol176Printable ASCIISix character, base 62 symbol.
Price232Binary Short PriceThe limit order price.
Total Length = 25 bytes

Order Modification Messages

Order Modification messages refer to an Order Id previously sent with an Add Order message. Multiple Order Modification messages may modify a single order and the effects are cumulative. Modify messages may update the size and/or the price of an order on the book. When the remaining size of an order reaches zero, the order is dead and should be removed from the book.

Order Executed Message Fields

Order Executed messages are sent when an order on the CFE book is executed in whole or in part. The execution price equals the limit order price found in the original Add Order message or the limit order price in the latest Modify Order message referencing the Order Id.

Table 1. Order Executed
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110x23 Order Executed message.
Time offset24BinaryNanosecond offset from last unit timestamp.
Order Id68BinaryOrder Id of a previously sent Add Order message that was executed.
Executed Quantity144BinaryNumber of contracts executed.
Execution Id188BinaryCFE generated day-unique execution identifier of this execution. Execution Id is also referenced in the Trade Break message.
Trade Condition261Alphanumeric
  • (Space)=Normal trade
  • O = Opening trade1
  • S = Spread trade1
  • 1Sent for simple (non-spread) symbols only.
Total Length = 27 bytes

Reduce Size Message Fields

Reduce Size messages are sent when a visible order on the CFE book is partially reduced.

Table 1. Reduce Size (long)
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110x25 Reduce Size message (long).
Time Offset24BinaryNanosecond offset from last unit timestamp.
Order Id68BinaryOrder Id of a previously sent Add Order message that has been reduced.
Canceled Quantity144BinaryNumber of contracts canceled.
Total Length = 18 bytes
Table 2. Reduce Size (short)
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110x26 Reduce Size message (short).
Time Offset24BinaryNanosecond offset from last unit timestamp.
Order Id68BinaryOrder Id of a previously sent Add Order message that has been reduced.
Canceled Quantity142BinaryNumber of contracts canceled.
Total Length = 16 bytes

Modify Order Message Fields

The Modify Order message is sent whenever an open order is visibly modified. The Order Id refers to the Order Id of the original Add Order message.

Note that Modify Order messages that appear to be "no ops" (i.e. they do not appear to modify any relevant fields) will still lose priority.

Table 1. Modify (long)
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110x27 Modify Order message (long).
Time Offset24BinaryNanosecond offset from last unit timestamp.
Order Id68BinaryOrder Id of a previously sent Add Order message that has been modified.
Quantity144BinaryNumber of contracts associated with this order after this modify (may be less than the number entered).
Price188Binary PriceThe limit order price after this modify.
Total Length = 26 bytes
Table 2. Modify (short)
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110x28 Modify Order message (short).
Time Offset24BinaryNanosecond offset from last unit timestamp.
Order Id68BinaryOrder Id of a previously sent Add Order message that has been modified.
Quantity142BinaryNumber of contracts associated with this order after this modify (may be less than the number entered).
Price162Binary Short PriceThe limit order price after this modify.
Total Length = 18 bytes

Delete Order Message Fields

The Delete Order message is sent whenever a booked order is cancelled or leaves the order book. The Order Id refers to the Order Id of the original Add Order message. An order that is deleted from the book may return to the book later under certain circumstances. Therefore, a Delete Order message does not indicate that a given Order Id will not be sent again on a subsequent Add Order message.

Table 1. Delete
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110x29 Delete Order message.
Time Offset24BinaryNanosecond offset from last unit timestamp.
Order Id68BinaryOrder Id of a previously sent Add Order message that has been removed from order book.
Total Length = 14 bytes

Trade Message Fields

The Trade message provides information about executions that occur off of the CFE book (such as ECRP/Block trades). Trade messages are necessary to calculate CFE execution data. Trade messages do not alter the book and can be ignored if messages are being used solely to build a book. The Order Id sent in a Trade message is obfuscated and will not tie back to any real Order Id sent back via a FIX or BOE order entry session.

Table 1. Trade (long)
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110x2A Trade message (long).
Time Offset24BinaryNanosecond offset from last unit timestamp.
Order Id68BinaryObfuscated Order ID or Order Id of the executed order.
Side Indicator141AlphanumericAlways B=Buy Order regardless of resting side.
Quantity154BinaryIncremental number of contracts executed.
Symbol196Printable ASCIISix character, base 62 symbol.
Price258Binary PriceThe execution price of the order.
Execution Id338BinaryCFE generated day-unique execution identifier of this trade. Execution Id is also referenced in the Trade Break message.
Trade Condition411Alphanumeric
  • (Space)=Normal trade
  • O = Opening trade1
  • S = Spread trade1
  • B = Block trade
  • E = ECRP trade
  • D = Derived
  • 1Sent for simple (non-spread) symbols only.
Total Length = 42 bytes
Table 2. Trade (short)
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110x2B Trade message (short).
Time Offset24BinaryNanosecond offset from last unit timestamp.
Order Id68BinaryObfuscated Order ID or Order Id of the executed order.
Side Indicator141AlphanumericAlways B=Buy Order regardless of resting side.
Quantity152BinaryIncremental Number of contracts executed.
Symbol176Printable ASCIISix character, base 62 symbol.
Price232Binary Short PriceThe execution price of the order.
Execution Id258BinaryCFE generated day-unique execution identifier of this trade. Execution Id is also referenced in the Trade Break message.
Trade Condition331Alphanumeric
  • (Space)=Normal trade
  • O = Opening trade1
  • S = Spread trade1
  • B = Block trade
  • D = Derived
  • 1Sent for simple (non-spread) symbols only.
Total Length = 34 bytes

Transaction Begin Message Fields

The Transaction Begin message indicates any subsequent messages, up to the accompanying Transaction End message, are all part of the same transaction block. One example of where this might be used is when a single aggressive order executes against several resting orders. All PITCH messages corresponding to such an event would be included between a Transaction Begin and Transaction End messages. It is important to note that any PITCH Message Type may be included in a transaction block and there is no guarantee that the messages apply to the same price level or even the same Symbol. Transaction Begin messages do not alter the book and can be ignored if messages are being used solely to build a book.

Feed processors can use a transaction block as a trigger to postpone publishing a quote update until the end of the transaction block. In the prior example of a single aggressive order executing against multiple resting orders, a top of book feed would be able to publish a single trade message and quote update resulting from multiple Order Executed messages once it finished processing all of the messages within the transaction block.

Table 1. Transaction Begin
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110xBC Transaction Begin message.
Time Offset24BinaryNanosecond offset from last unit timestamp.
Total Length = 6 bytes

Transaction End Message Fields

The Transaction End message indicates that a transaction indicated by a previous Transaction Begin message has completed. Transaction End messages do not alter the book and can be ignored if messages are being used solely to build a book.

Table 1. Transaction End
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110xBD Transaction End message.
Time Offset24BinaryNanosecond offset from last unit timestamp.
Total Length = 6 bytes

Trade Break Message Fields

The Trade Break message is sent whenever an execution on CFE is broken. Trade breaks are rare and only affect applications that rely upon CFE execution-based data. A Trade Break message followed immediately be a new Trade message with the same Execution Id indicates that a trade correction has occurred. Applications that simply build a CFE book can ignore Trade Break messages.

Table 1. Trade Break
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110x2C Trade Break message.
Time Offset24BinaryNanosecond offset from last unit timestamp.
Execution Id68BinaryCFE execution identifier of the execution that was broken. Execution Id refers to previously sent Order Executed or Trade message.
Total Length = 14 bytes

Settlement Message Fields

Settlement messages are used to provide information concerning indicative, approved, or corrected daily and final settlement prices for CFE products. An indicative daily settlement price (Issue=I) is calculated by the system and sent immediately after an instrument closes trading but before the settlement price is approved. An approved settlement price (Issue=S) is sent once the CFE Trade Desk approves a settlement price for an instrument. If there is an error in the approved settlement price, then it may be re-issued (Issue=R). For VX and VXM futures products, the system will begin disseminating an intermediate indicative price update (Issue=i) at 2:59:05 p.m. CT (following the first interval of the VWAP calculation) that will be sent every five seconds, leading up to the receipt of the indicative daily settlement price (Issue=I).

Table 1. Settlement
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110xB9 Settlement message.
Time Offset24BinaryNanosecond offset from last unit timestamp.
Symbol66Printable ASCIISix character, base 62 symbol.
Trade Date124Binary DateTrade Date for the settlement.
Settlement Price168Binary PriceSettlement Price.
Issue241Alphanumeric
  • i = Periodic Indicative Settlement
  • I = Indicative Settlement
  • S = Initial Settlement
  • R = Re-issued Settlement
Total Length = 25 bytes

Open Interest Message Fields

The Open Interest message is sent to communicate a symbol's open interest, usually for the prior trading date. This message will be sent when open interest information is made available to CFE and may be sent multiple times if there are changes to the open interest for a symbol. The open interest is also populated in the End of Day Summary message.

Table 1. Open Interest
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110xD3 Open Interest message.
Time Offset24BinaryNanosecond offset from last unit timestamp.
Symbol66Printable ASCIISix character, base 62 symbol.
Trade Date124Binary DateTrade Date for the Open Interest data.
Open Interest164BinaryOpen Interest for this symbol.
Total Length = 20 bytes

End of Day Summary Message Fields

The End of Day Summary message is sent immediately after trading ends for a symbol. No more Market Update messages will follow an End of Day Summary message for a particular symbol. A value of zero in the Total Volume field means that no volume traded on that symbol for the day. The Total Volume field reflects all contracts traded during the day. Block, ECRP, and Derived trades are included in the Total Volume field, but they are also reported separately to provide more detail.

The Summary Flags field provides additional information on how to interpret the High Price and Low Price fields, especially in instruments that had no volume for the day and/or where 0 is a valid price (e.g. Trade At Settlement products). There are flags that indicate whether or not the High Price and Low Price fields are valid. If they are not valid, then there was no High (and/or Low) Price for the day. There are also flags that indicate whether the High Price was set by the highest bid and the Low Price was set by the lowest offer rather than a trade.

All End of Day Summary message values will span the full trading day, including all extended hours trading and all trading segments.

Table 1. End of Day Summary
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110xBA End of Day Summary message.
Time Offset24BinaryNanosecond offset from last unit timestamp.
Symbol66Printable ASCIISix character, base 62 symbol.
Trade Date124Binary DateTrade Date for the message.
Open Interest164BinaryPrior Trade Date Open Interest for this symbol.
High Price208Binary PriceThe higher of highest bid price and highest trade price for the day. Block and ECRP trades (Trade Condition=Bor E) do not update High Price.
Low Price288Binary PriceThe lower of lowest offer price and lowest trade price for the day. Block and ECRP trades (Trade Condition=Bor E) do not update Low Price.
Open Price368Binary PriceThe first trade on the day (in any session) will set the Open Price for the day (valid only if Total Volume > 0). Block and ECRP trades (Trade Condition=Bor E) do not update Open Price.
Close Price448Binary PriceThe last trade on the day (in any session) will set the Close Price for the day (valid only if Total Volume > 0). Block and ECRP trades

(Trade Condition=Bor E)

do not update Close Price.
Total Volume524BinaryTotal number of contracts traded for the day, including block and ECRP trades.
Block Volume564BinaryTotal number of block and derived contracts traded for the day.
ECRP Volume604BinaryTotal number of contracts traded for the day.
Summary Flags641Bit Field
  • Bit 0 = High Price Valid - Set if High Price is a valid value.
  • Bit 1 = High Price is bid- Set if High Price was set by the highest bid (rather than a trade).
  • Bit 2 = Low Price Valid - Set if Low Price is a valid value.
  • Bit 3 = Low Price is offer - Set if Low Price was set by the lowest offer (rather than a trade).
  • Bit 4 = Open/Close Valid - Set if both Open Price and Close Price fields contain valid values.
  • Bit 5-7 = Reserved
Total Length = 65 bytes

Trading Status Message Fields

The Trading Status message is used to indicate the current trading status of a Futures contract. A Trading Status message will be sent whenever a security's trading status changes. If a Trading Status message has not been received for a symbol, then the Trading Status for the symbol should be assumed to be S=Suspended. The following summarizes the Trading Status values in the CFE system:

  • S = Suspended. A contract is in a suspended state when the associated product is closed and not accepting orders.
  • Q = Accepting orders for queuing. Queuing state is used during the Pre-Open for all products. It is also used for spread instruments that may not be tradeable due to Threshold Width.
  • T = Trading. Used for both Extended and Regular Hours trading.
  • H = Halt state. This state is used for Supervisory Halts initiated by the Trade Desk. Orders are not being accepted in this state.
Table 1. Trading Status
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110x31 Trading Status message.
Time Offset24BinaryNanosecond offset from last unit timestamp.
Symbol66Printable ASCIISix character, base 62 symbol.
Reserved1122AlphaReserved
Trading Status141Alpha
  • S = Suspended
  • Q = Queuing
  • T = Trading
  • H = Halted
Reserved2153AlphanumericReserved
Total Length = 18 bytes

End of Session Message Fields

The End of Session message is sent for each unit when the unit shuts down. No more sequenced messages will be delivered for this unit, but heartbeats from the unit may be received.

Table 1. End of Session
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110x2D End of Session message.
Timestamp24BinaryNanosecond offset from last unit timestamp.
Total Length = 6 bytes

Gap Request Proxy Messages

The following messages are used for initializing a TCP/IP connection to the Gap Request Proxy (GRP) and to request message retransmissions. Participants only need to implement the following messages if gap requests will be made. The following messages will not be delivered using multicast.

Login Message Fields

The Login message is the first message sent to the GRP by a user's process after the connection to the GRP is established. Failure to login before sending any other message type will result in the connection being dropped by the GRP.

Table 1. Login
FieldOffsetLengthValue/TypeDescription
Length01BinaryLength of this message including this field.
Message Type110x01 Login message.
SessionSubId24AlphanumericSessionSubId supplied by CFE.
Username64AlphanumericUsername supplied by CFE.
Filler102Alphanumeric(space filled)
Password1210AlphanumericPassword supplied by CFE.
Total Length = 22 bytes

Login Response Message Fields

The Login Response message is sent by the GRP to a user's process in response to a Login message. The status field is used to reflect an accepted login or the reason the session was not accepted. If login fails, the connection will be dropped after the Login Response message is sent.

Table 1. Login Response
FieldOffsetLengthValue/TypeDescription
Length01BinaryLength of this message including this field.
Message Type110x02 Login Response message.
Status21AlphanumericAccepted or reason for reject.
Total Length = 3 bytes
Table 2. Login Response - Status Codes
CodeDescription
‘A’Login Accepted
‘N’Not authorized (Invalid Username/Password)
‘B’Session in use
‘S’Invalid Session

Gap Request Message Fields

The Gap Request message is used by a user's process to request retransmission of a sequenced message (or messages) by one of CFE's gap servers.

Table 1. Gap Request
FieldOffsetLengthValue/TypeDescription
Length01BinaryLength of this message including this field.
Message Type110x03 Gap Request message.
Unit21BinaryUnit that the gap is requested for.
Sequence34Binary Sequence of first message (Lowest sequence in range).
Count72BinaryCount of messages requested.
Total Length = 9 bytes

Gap Response Message Fields

The Gap Response message is sent by the GRP in response to a Gap Request message. The Unit and Sequence fields will match the values supplied in the Gap Request message. A Gap Response message, with a Status of Accepted or reason for failure, will be sent for each Gap Request message received by the GRP.

Table 1. Gap Response
FieldOffsetLengthValue/TypeDescription
Length01BinaryLength of this message including this field.
Message Type110x04 Gap Response message.
Unit21BinaryUnit the gap was requested for.
Sequence34BinarySequence of first message in request.
Count72BinaryCount of messages requested.
Status91AlphanumericAccepted or reason for reject*.
Total Length = 10 bytes
Table 2. Gap Response - Status Codes
CodeDescription
'A'Accepted
'O'Out of range (ahead of sequence or too far behind)
'D'Daily gap request allocation exhausted
'M'Minute gap request allocation exhausted
'S'Second gap request allocation exhausted
'C'Count request limit for one gap request exceeded
'I'Invalid Unit specified in request
'U'Unit is currently unavailable

* All non-’A’ status codes should be interpreted as a reject.

Spin Messages

Login

The Login message is the first message sent to the Spin Server by a user's process after the connection to the Spin Server is established. Failure to login before sending any other message type will result in the connection being dropped by the Spin Server.

The format of the Login message for the Spin Server is identical to that of the GRP described previously in Login Message Fields.

Login Response

The Login Response message is sent by the Spin Server to a user's process in response to a Login message. The status field is used to reflect an accepted login or the reason the session was not accepted. If login fails, the connection will be dropped after the Login Response message is sent.

The format of the Login Response message for the Spin Server is identical to that of the GRP described previously in Login Response Message Fields.

Spin Image Available Message Fields

The Spin Image Available message is sent once per second and indicates through what sequence number a spin is available.

Table 1. Spin Image Available
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110x80 Spin Image Available Message.
Sequence24BinarySpin is available which is current through this sequence number.
Total Length = 6 bytes

Spin Request Message Fields

The Spin Request message is used by a user's process to request transmission of a spin of the unit's order book. Refer to Gap Request Proxy and Message Retransmission for more complete details regarding Sequence specification as well as buffering requirements.

Table 1. Spin Request
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110x81 Spin Request message.
Sequence24BinarySequence number from a Spin Image Available message received by the participant.
Total Length = 6 bytes

Spin Response Message Fields

The Spin Response message is sent in response to a user's Spin Request message indicating whether a spin will be sent.

Table 1. Spin Response
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110x82 Spin Response message.
Sequence24BinarySequence number from a Spin Image Available message received by the participant.
Order Count64BinaryNumber of Add Order messages which will be contained in this spin.
Status101AlphanumericAccepted or reason for reject*.
Total Length = 11 bytes
Table 2. Spin Response - Status Codes
CodeDescription
'A'Accepted
'O'Out of Range (Sequence requested is greater than Sequence available by the next spin)
'S'Spin already in progress (only one spin can be running at a time)

* All non-’A’ status codes should be interpreted as a reject.

Spin Finished Message Fields

The Spin Finished message is sent to indicate that all messages for the spin requested have been sent. A Spin Finished message is only sent if a Spin Request message was not rejected. Upon receipt of a Spin Finished message, any buffered multicast messages should be applied to the participant's copy of the book to make it current.

Table 1. Spin Finished
Field NameOffsetLengthType/(Value)Description
Length01BinaryLength of this message including this field.
Message Type110x83 Spin Finished message.
Sequence24BinarySequence number from the Spin Request message.
Total Length = 6 bytes

Spin Server Usage Example

The following diagram shows the exchange of messages over time between a participant and CFE's Multicast PITCH feed and Spin Server. Note that while the example alone may seem to imply Add Order messages only would be sent on a spin, this is not the case. Trading Status message may be sent at the beginning of the spin.

At time 1, the participant has no state of the book and desires to become current. The participant caches the received Multicast PITCH messages (sequences 310172 and 310173) for later use. Since the participant has no book, they cannot yet be applied.

At time 5, the participant has successfully logged into the Spin Server and has cached another message, sequence 310174.

At time 7, the participant receives a Spin Image Available message which indicates that the spin server is capable of giving them a spin of all open orders as of sequence 310169. The participant does not have all messages cached after 310169 (they are missing 310170 and 310171), so this spin is not useful to the participant.

At time 10, the participant receives a Spin Image Available message which is useful since it would be a spin of all orders up to and including sequence 310175 and the participant has all messages after 310175 cached.

At time 11, the participant sends a Spin Request for all messages up to and including 310175 and continues to cache Multicast PITCH messages received.

At time 14, the spin server acknowledges the spin request and indicates that three open orders will be sent.

At time 24, the spin server indicates that it has finished sending all open orders. The participant must then apply the cached messages from sequence number 310176 through current.

Note: Spin Servers are available for each unit. Participants may need to employ multiple Spin Servers depending upon their architecture.

Message Types

Gap Request Proxy Messages

Table 1. Gap Request Proxy Messages
Message TypeName
0x01Login
0x02Login Response
0x03Gap Request
0x04Gap Response

Spin Server Messages

Table 1. Spin Server Messages
Message TypeName
0x01Login
0x02Login Response
0x80Spin Image Available
0x81Spin Request
0x82Spin Response
0x83Spin Finished

PITCH Messages

Table 1. PITCH Messages
Message TypeName
0x20Time
0x21Add Order - Long
0x22Add Order - Short
0x23Order Executed
0x25Reduce Size - Long
0x26Reduce Size - Short
0x27Modify Order - Long
0x28Modify Order - Short
0x29Delete Order
0x2ATrade - Long
0x2BTrade - Short
0x2CTrade Break
0x2DEnd of Session
0x31Trading Status
0x97Unit Clear
0xB1Time Reference
0xB9Settlement
0xBAEnd of Day Summary
0xBBFutures Instrument Definition
0xBCTransaction Begin
0xBDTransaction End
0xBEPrice Limits
0xD3Open Interest
0xFAFutures Variance Symbol Mapping

Example Messages

Each of the following message types must be wrapped by a sequenced or unsequenced unit header as described in CFE Sequenced Unit Header Message Fields. Note that in the following examples, each byte is represented by two hexadecimal digits.

Login Message Example

Table 1. Login Message Example
FieldValueValue Description
Length1622 bytes
Type01Login
SessionSubId30 30 30 31"0001"
Username46 49 52 4D"FIRM"
Filler20 20" "
Password41 42 43 44 30 30 20 20 20 20"ABCD00"

Login Response Message Example

Table 1. Login Response Message Example
FieldValueValue Description
Length033 bytes
Type02Login Response
Status41Login accepted

Gap Request Message Example

Table 1. Gap Request Message Example
FieldValueValue Description
Length099 bytes
Type03Gap Request
Unit01Unit 1
Sequence3B 10 00 00First message: 4155
Count32 0050 messages

Gap Response Message Example

Table 1. Gap Response Message Example
FieldValueValue Description
Length088 bytes
Type04Gap Response
Unit01Unit 1
Sequence3B 10 00 00First message: 4155
Status41Accepted

Spin Image Available Message Example

Table 1. Spin Image Available Message Example
Field ValueValue Description
Length066 bytes
Type80Spin Image Available
Sequence3B 10 00 00Sequence: 4155

Spin Request Message Example

Table 1. Spin Request Message Example
FieldValueValue Description
Length066 bytes
Type81Spin Request
Sequence3B 10 00 00Sequence: 4155

Spin Response Message Example

Table 1. Spin Response Message Example
Field ValueValue Description
Length0B11 bytes
Type82Spin Request
Sequence3B 10 00 00Sequence: 4155
Order Count42 00 00 0066 orders
Status41Accepted

Spin Finished Message Example

Table 1. Spin Finished Message Example
FieldValueValue Description
Length066 bytes
Type83Spin Finished
Sequence3B 10 00 00Sequence: 4155

Time Message Example

Table 1. Time Message Example
FieldValueValue Description
Length0A10 bytes
Type20Time
Time98 85 00 0034,200 seconds = 09:30 AM Eastern
Epoch TimeF8 27 94 5A1519659000 = February 26, 20189:30:00 AM Central

Unit Clear Message Example

Table 1. Unit Clear Message Example
FieldValueValue Description
Length066 bytes
Type97Unit Clear
Time Offset18 D2 06 00447,000 ns since last Time Message

Time Reference Message Example

Table 1. Time Reference Message Example
FieldValueValue Description
Length1218 bytes
TypeB1Time Reference
Midnight ReferenceE0 50 92 5A2018-02-25 00:00:00 Central (1519538400 seconds since the Epoch)
Time00 E1 00 0016:00:00
Time Offset00 00 00 00Exactly 16:00:00
Trade Date02 ED 33 0120180226 February 26, 2018

Add Order - Long Message Example

Table 1. Add Order - Long Message Example
FieldValueValue Description
Length2133 bytes
Type21Add Order - Long
Time Offset08 5C 44 25625,237,000 ns since Last Time Message
Order ID96 95 94 93 92 91 00 00
Side Indicator42Buy
Quantity20 4E 00 0020,000 contracts
Symbol33 34 35 33 32 31345321
Price00 00 32 00 00 00 00 00$327.68

Add Order - Short Message Example

Table 1. Add Order - Short Message Example
FieldValueValue Description
Length1925 bytes
Type22Add Order - Short
Time Offset08 5C 44 25625,237,000 ns since Last Time Message
Order ID98 97 96 D3 22 5A 0E 0E
Side Indicator42Buy
Quantity20 4E20,000 contracts
Symbol33 34 35 33 32 31345321
PriceFF 7F$327.67

Order Executed Message Example

Table 1. Order Executed Message Example
FieldValueValue Description
Length1B27 bytes
Type23Order Executed
Time Offset08 5C 44 25625,237,000 ns since Last Time Message
Order Id96 95 94 93 92 91 00 00
Executed Quantity2C 01 00 00300 contracts
Execution ID56 55 54 53 52 51 00 00
Trade Condition53S - Spread Trade

Reduce Size - Long Message Example

Table 1. Reduce Size - Long Message Example
FieldValueValue Description
Length1218 bytes
Type25Reduce Size - Long
Time Offset08 5C 44 25625,237,000 ns since Last Time Message
Order Id05 40 5B 77 8F 56 1D 0B
Canceled Quantity00 00 01 0065,536 contracts

Reduce Size - Short Message Example

Table 1. Reduce Size - Short Message Example
FieldValueValue Description
Length1016 bytes
Type26Reduce Size - Short
Time Offset08 5C 44 25625,237,000 ns since Last Time Message
Order Id05 40 5B 77 8F 56 1D 0B
Canceled Quantity64 00100 contracts

Modify Order - Long Message Example

Table 1. Modify Order - Long Message Example
FieldValueValue Description
Length1A26 bytes
Type27Modify Order - Long
Time Offset08 5C 44 25625,237,000 ns since Last Time Message
Order Id05 40 5B 77 8F 56 1D 0B
QuantityFF FF 00 0065,535 contracts
Price2C 33 32 00 00 00 00 00$328.99

Modify Order - Short Message Example

Table 1. Modify Order - Short Message Example
FieldValueValue Description
Length1218 bytes
Type28Modify Order - Short
Time Offset08 5C 44 25625,237,000 ns since Last Time Message
Order Id05 40 5B 77 8F 56 1D 0B
QuantityFF FF65,535 contracts
Price0A 28$102.50

Delete Order Message Example

Table 1. Delete Order Message Example
FieldValueValue Description
Length0E14 bytes
Type29Delete Order
Time Offset08 5C 44 25625,237,000 ns since Last Time Message
Order Id05 40 5B 77 8F 56 1D 0B

Trade - Long Message Example

Table 1. Trade - Long Message Example
FieldValueValue Description
Length2A42 bytes
Type2ATrade - Long
Time Offset08 5C 44 25625,237,000 ns since Last Time Message
Order Id05 40 5B 77 8F 56 1D 0B
Side42Buy
QuantityF8 24 01 0075,000 contracts
Symbol33 34 35 33 32 31345321
PriceE8 A3 0F 00 00 00 00 00$102.50
Execution Id34 2B 46 E0 BB 00 00 000AAP09VEC
Trade Condition20(space) Normal

Trade - Short Message Example

Table 1. Trade - Short Message Example
FieldValueValue Description
Length2234 bytes
Type2BTrade - Long
Time Offset08 5C 44 25625,237,000 ns since Last Time Message
Order Id05 40 5B 77 8F 56 1D 0B
Side42Buy
Quantity64 00100 contracts
Symbol33 34 35 33 32 31345321
Price0A 28$102.50
Execution Id34 2B 46 E0 BB 00 00 000AAP09VEC
Trade Condition53S - Spread Trade

Trade Break Message Example

Table 1. Trade Break Message Example
FieldValueValue Description
Length0E14 bytes
Type2CTrade Break
Time Offset08 5C 44 25625,237,000 ns since Last Time Message
Execution Id34 2B 46 E0 BB 00 00 000AAP09VEC

End of Session Message Example

Table 1. End of Session Message Example
FieldValueValue Description
Length066 bytes
Type2DEnd of Session
Time Offset08 5C 44 25625,237,000 ns since Last Time Message

Transaction Begin Message Example

Table 1. Transaction Begin Message Example
FieldValueValue Description
Length066 bytes
TypeBCTransaction Begin
Time Offset08 5C 44 25625,237,000 ns since Last Time Message

Transaction End Message Example

Table 1. Transaction End Message Example
FieldValueValue Description
Length066 bytes
TypeBDTransaction End
Time Offset08 5C 44 25625,237,000 ns since Last Time Message

Futures Instrument Definition Message Example (Contract Date Different from Expiration Date)

Table 1. Futures Instrument Definition Message Example (Contract Date Different from Expiration Date)
FieldValueValue Description
Length2D45 bytes
TypeBBFutures Instrument Definition Message
Time OffsetE8 61 BF 23599,745,000 ns since Last Time Message
Symbol30 30 30 33 6C 4E0003lN
Unit Timestamp75 2D 40 5E2020-02-09 10:04:05 Central Time (1581264245 seconds since Epoch)
Report Symbol41 4D 42 33 20 20AMB3
Futures Flags000
Expiration DateD4 3D 34 0120200916 - September 16, 2020
Contract Size19 0025
Listing State41A - Active
Price IncrementC4 09 00 00 00 00 00 00$0.25
Leg Count000 legs
Leg Offset000 - No Legs
Reserved000 - Reserved
Contract DateA9 3C 34 0120200617 - June 17, 2020

Futures Instrument Definition Message Example (Contract Date Same as Expiration Date)

Table 1. Futures Instrument Definition Message Example (Contract Date Same as Expiration Date)
FieldValueValue Description
Length2D45 bytes
TypeBBFutures Instrument Definition Message
Time Offset80 A3 14 27655,664,000 ns since Last Time Message
Symbol30 30 30 33 69 340003i4
Unit Timestamp75 2D 40 5E2020-02-09 10:04:05 Central Time (1581264245 seconds since Epoch)
Report Symbol56 58 20 20 20 20VX
Futures Flags000
Expiration DateA9 3C 34 0120200617 – June 17, 2020
Contract SizeE8 031000
Listing State41A - Active
Price IncrementF4 01 00 00 00 00 00 00$0.05
Leg Count000 legs
Leg Offset000 – No Legs
Reserved000 – Reserved
Contract DateA9 3C 34 0120200617 – June 17, 2020

Futures Instrument Definition w/ 2 Legs Message Example (Contract Date Populated with Zero value)

Table 1. Futures Instrument Definition w/ 2 Legs Message Example (Contract Date Populated with Zero value)
FieldValueValue Description
Length4165 bytes
TypeBBFutures Instrument Definition Message
Time OffsetE8 61 BF 23599,745,000 ns since Last Time Message
Symbol30 30 30 33 6C 520003lR
Unit Timestamp75 2D 40 5E2020-02-09 10:04:05 Central Time (1581264245 seconds since Epoch)
Report Symbol41 4D 42 33 20 20AMB3
Futures Flags000
Expiration DateA9 3C 34 0120200617 – June 17, 2020
Contract Size19 0025
Listing State41A - Active
Price IncrementC4 09 00 00 00 00 00 00$0.25
Leg Count022 legs
Leg Offset2DLegs begin at byte 45
Reserved000 – Reserved
Offset
Contract Date00 00 00 000
Leg #1 RatioFF FF FF FF-1 (1 Sell)
Leg #1 Symbol30 30 30 33 67 750003gu
Leg #2 Ratio01 00 00 001 (1 Buy
Leg #2 Symbol30 30 30 33 6C 4E0003lN

Futures Variance Symbol Mapping Message Example

Table 1. Futures Variance Symbol Mapping Message Example
FieldValueValue Description
Length2840 bytes
TypeFAFutures Variance Symbol Mapping Message
Time OffsetE8 61 BF 23599,745,000 ns since Last Time Message
Unit TimestampE5 CE 44 662024-05-14 10:04:05 CT
Feed Symbol30 30 30 33 6C 520003lR
Futures Symbol56 41 20 20 20 20 32 34 30 35 31 37VA 240517
Accrued Day VarianceE0 3E 3F 56 32 87 00 00148.650265100000
Num Final Returns0F 01271
Num Elapsed Returns0D 01269

Trading Status Message Example

Table 1. Trading Status Message Example
Field ValueValue Description
Length1218 bytes
Type31Trading Status
Time offset18 D2 06 00447,000 ns since lastTime Message
Symbol5A 56 5A 5A 54 20 20 20ZVZZT
Trading Status54T = Trading
Reserved30 20 20

Price Limits Message Example

Table 1. Price Limits Message Example
FieldValueValue Description
Length1C28 bytes
TypeBEPrice Limits
Time Offset18 D2 06 00447,000 ns since last Time Message
Symbol31 32 33 34 35 2012345
Upper Price Limit08 E2 01 00 00 00 00 00$12.34
Lower Price Limit8C 81 01 00 00 00 00 00$9.87

End of Day Summary Message Example

Table 1. End of Day Summary Message Example
FieldValue Value Description
Length4165 bytes
TypeBAEnd of Day Summary
Time Offset18 D2 06 00447,000 ns since last Time Message
Symbol39 38 37 36 35 34987654
Open InterestB1 68 DE 3A987,654,321 contracts
High PriceDC FB 09 00 00 00 00 00$65.43
Low Price08 E2 01 00 00 00 00 00$12.34
Open PriceE0 49 08 00 00 00 00 00$54.32
Close PriceF8 A9 08 00 00 00 00 00$56.78
Total Volume15 CD 5B 07123,456,789 contracts
Block Volume88 13 00 005,000 block contracts
ECRP VolumeE8 03 00 001,000 ECRP contracts
Summary Flags15High Price Valid 0x01
Low Price Valid 0x04
Has Open/Close 0x10

Settlement Message Example

Table 1. Settlement Message Example
FieldValueValue Description
Length1925 bytes
TypeB9Settlement
Time Offset60 84 8E 009,340,000 ns since last Time Message
Symbol36 35 34 33 32 31654321
Trade Date03 ED 33 0120180227 February 27, 2018
Settlement Price4C F8 06 00 00 00 00 00$45.67
Issue53S - Initial Settlement

Open Interest Message Example

Table 1. Open Interest Message Example
FieldValueValue Description
Length1920 bytes
TypeD3Open Interest
Time Offset60 84 8E 009,340,000 ns since last Time Message
Symbol36 35 34 33 32 31654321
Trade DateA9 3C 34 0120200617 - June 17, 2020
Open InterestB1 68 DE 3A987,654,321 contracts

Sequenced Unit Header with 2 Messages

Table 1. Sequenced Unit Header with 2 Messages
FieldValueValue Description
Sequenced Unit Header Message Example
Hdr Length31 0049 bytes, including header
Hdr Count022 messages to follow
Hdr Unit01Unit 1
Hdr Sequence01 00 00 00First message has sequence number 1
Message 1: Add Order (Short) Message Example
Length1925 bytes
Type22Add Order - Short
Time Offset08 5C 44 25625,237,000 ns since Last Time Message
Order ID98 97 96 D3 22 5A 0E 0E
Side Indicator42Buy
Quantity20 4E20,000 contracts
Symbol33 34 35 33 32 31345321
PriceFF 7F$327.67
Message 2: Reduce Size (Short) Message Example
Length1016 bytes
Type26Reduce Size - Short
Time Offset08 5C 44 25625,237,000 ns since Last Time Message
Order Id98 97 96 D3 22 5A 0E 0E
Canceled Quantity64 00100 contracts

Multicast Configuration

Production Environment Configuration

Limitations/Configurations

The following table defines the configuration for network and gap request limitations. These limitations are session based. CFE reserves the right to adjust the gap request limitations to improve the effectiveness of the gap request infrastructure.

Table 1. Production Environment - Network and Gap Request Limitations/Configurations
Period/TypeLimit/SettingNotes
MTU1500CFE will send UDP messages up to 1500 bytes. Participants should ensure that their infrastructure is configured accordingly.
WAN-Shaped Throttle100 Mb/sThe real-time and gap multicast head ends are configured to shape their output to this level to minimize packet loss.
Gap Response Delay2 msThe Gap Server will delay resending sequenced messages via multicast for the specified limit in order to satisfy multiple GRP gap requests with one multicast response.
Count100Any single gap request may not be for more than this number of dropped messages.
1 Second320 RequestsThis is the maximum number of retransmission requests allowed per second for each session. This is renewed every clock second.
1 Minute1,500 RequestsThis is the maximum number of retransmission requests allowed per minute for each session. This is renewed every clock minute.
Day100,000 RequestsThis is the maximum number of retransmission requests allowed per day for each session.
Within Range1,000,000 MessagesUsers' retransmission requests must be within this many messages of the most recent sequence sent by the real-time feed per session.

CFE Unit/Product Distribution

The following table describes the CFE symbol distribution across units.

Table 1. CFE Production/Certification Environment - Unit/Product Distribution
Symbol Range Unit
UX, VX, VXT, VXM, VXMT1
IBHY, IBIG, IBGO, IBYO, IEMD, MGTN, VA, XBTF 2
FBT, FET, PBT, PET3
N/A4

Note - CFE reserves the right to add units and/or change symbol distribution with 48 hours of notice and no migration period. Notice will be given that the distribution will change on a certain date. Care should be taken to support mappings in these tables via software configuration.

Multicast Routing Parameters

Table 1. Production Environment - Multicast Routing Parameters
Data CenterRendezvous Point
Primary Data Center C feed74.115.128.164
Primary Data Center D feed74.115.128.165
Secondary Data Center E feed170.137.16.128

Address/Unit Distribution

The following tables describe the unit distribution across the CFE Multicast PITCH feeds.

Note - CFE reserves the right to add multicast addresses with prior notice, but no migration period. Notice will be given that the distribution will change on a certain date. Care should be taken to support mappings in these tables via software configuration.

Table 1. Production Environment - Address/Unit Distribution (Primary Datacenter)
Primary Datacenter
  • WAN-Shaped [FC]
  • 74.115.133.96/29
  • WAN-Shaped [FD]
  • 74.115.133.104/29
UnitIP PortReal-time MCGap Resp. MCReal-time MCGap Resp. MC
130001224.0.131.132224.0.131.133233.130.124.132233.130.124.133
230002224.0.131.164233.130.124.164
330003224.0.131.165233.130.124.165
430004224.0.131.166233.130.124.166
Table 2. Production Environment - Address/Unit Distribution (Secondary Datacenter)
Secondary Datacenter
  • WAN-Shaped [FE]
  • 170.137.16.80/29
UnitIP PortReal-time MCGap Resp. MC
131001233.182.199.0233.182.199.1
231002
331003
431004

US Futures Certification Environment Configuration

CFE Unit/Product Distribution

The following table describes the CFE symbol distribution across units.

Table 1. CFE Production/Certification Environment - Unit/Product Distribution
Symbol Range Unit
UX, VX, VXT, VXM, VXMT1
IBHY, IBIG, IBGO, IBYO, IEMD, MGTN, VA, XBTF 2
FBT, FET, PBT, PET3
N/A4

Note - CFE reserves the right to add units and/or change symbol distribution with 48 hours of notice and no migration period. Notice will be given that the distribution will change on a certain date. Care should be taken to support mappings in these tables via software configuration.

Certification Multicast Routing Parameters

Table 1. Certification Environment - Multicast Routing Parameters
Data CenterRendezvous Point
Primary Data Center74.115.128.130

Address/Unit Distribution

The following table describes the unit distribution across the certification CFE Multicast PITCH feeds.

Table 1. Certification Environment - Address/Unit Distribution
Primary Datacenter
  • WAN-Shaped [Cert]
  • 174.136.160.16/28
UnitIP PortReal-time MCGap Resp. MC
132001224.0.74.196224.0.74.197
232002
332003
432004

Note - CFE reserves the right to add multicast addresses with prior notice, but no migration period. Notice will be given that the distribution will change on a certain date. Care should be taken to support mappings in these tables via software configuration.

Connectivity

Supported Extranet Carriers

The WAN-Shaped feed will be made available to participants through extranet carriers that have completed their multicast implementation and registered with CFE for receipt of market data. CFE has certified a number of carriers defined in the Cboe Titanium Cboe Futures Exchange Connectivity Manual with respect to redistribution of CFE multicast data feeds. For more information on receiving Multicast PITCH through any of these providers, reach out to the vendor contact noted in the CFE Connectivity Manual under Extranet Providers.

Bandwidth Recommendation

The WAN-shaped feeds require 100Mbps of bandwidth. CFE will use 90% of these respective bandwidths for Multicast PITCH to allow participants to use the same physical connection for order entry if desired.

Canned Test Data

Customers are strongly encouraged to capture their own test data from the Certification environment to ensure that their systems can correctly decode the PITCH feed and all available message types. To assist firms with their own testing a PITCH sample (taken from the Certification environment) is made available at the link below. Cboe does not guarantee that all message types will appear in test data and cautions that canned test data will be updated infrequently and may not fully reflect the current specification.

CFE PITCH Test Data (last updated 04/02/2020)

Revision History

Document VersionDateDescription
1.0.005/01/17Initial version.
1.0.106/28/17
  • Updated description for Report Symbol, Leg Offset and Variance Block Offset fields in Futures Instrument Definition message.
  • Updated descriptions of Variance Futures fields in Futures Instrument Definition message.
  • Updated list of messages included in spin responses.
  • Added Price Limits message.
  • Corrected inconsistencies of field and messages lengths for Trade Long and Trade Short messages.
1.0.207/11/17Added Rendevous Points, Source IP addresses, and Multicast IP addresses.
1.0.308/08/17
  • Replaced Binary Long Price with Binary Price.
  • Updated Data Types to include definition of Binary Price.
1.0.409/21/17
  • Renamed Trade Date message to Time Reference.
  • Added Epoch Time field to Time message.
  • Fixed discrepancies between Spec and Example Messages.
1.0.509/26/17
  • Fixed discrepancies between available PITCH message types and those listed in section 5.3.
  • Corrected feed label references in section 7.
1.0.610/17/17
  • Added clarification on Trading Status messages for Complex Instruments going in and out of Queuing because of Threshold Width
  • Cboe branding/logo changes.
1.0.710/18/17Fixed discrepancy with the Secondary Data Center listed as CH4 instead of 400 S La Salle.
1.0.811/24/17
  • Removed LegOffset = 93 value as this value is not possible to be sent.
  • Added missing Price fields in example messages
  • Added clarification to handling of Order Executed at Price/Size message
  • Futures Instrument Definition messages are sent for all live symbols on a spin.
1.0.912/08/17Price limits may apply during any trading hours subject to contract specifications.
1.0.1012/29/17
  • Trading Status messages for Complex instruments transitioning in and out of Queuing on account of Threshold Width no longer surpressed. Removed associated commentary from Trading Status message section.
  • Added "I=Inactive" as possible Listing State.
  • Updated Realized Variance, Discount Factor, Previous ARMVM, and Fed Funds Rate to Signed Binary data type.
  • Corrected the offsets for Leg Ratio and Leg Symbol.
  • Added Canned Test Data section.
1.0.1101/17/18
  • Block and ECRP trades (Trade Condition = B or E) do not update High Price or Low Price.
  • Corrected length of Transaction End from 48 to 6 bytes.
1.0.1201/25/18
  • Updated field description of Symbol to remove "padding" language. The Symbol field is always six characters, base 62.
Price Limits are included in a spin.
  • Added Feed Hours and System Restart section.
  • Clarified cases where the Unit Clear message would be sent.
  • More specifics added to how End of Day Summary values are determined.
  • If no Trading Status has been received for a Symbol, then the Trading Status is "S= Suspended".
1.0.1302/01/18Added links to certification and production symbol mapping files.
1.0.1402/21/18
  • Fixed remaining discrepancy with the Secondary Data Center listed as CH4 instead of 400 S La Salle.
  • Updated Trade Condition field values to demonstrate that some values are only sent for simple instruments.
  • Described how trade corrections are modeled in the feed.
  • Additional clarifications added around daily restart based on customer feedback.
1.0.1502/27/18Fixed formatting of the Settlement message example.
1.1.003/01/18
  • Removed Executed at Price/Size message. This message is not used for CFE.
  • Updated description of High Price and Low Price in End of Day Summary message.
1.1.103/22/18The End of Day Summary message will be enhanced and expanded to 65 bytes.
  • Total Volume will be updated to include Block and ECRP volume.
  • Block Volume field will be added.
  • ECRP Volume field will be added.
  • Bit Fields field will be added.
End of Day Summary example was updated.
1.1.203/23/18Updated effective date of End of Day Summary message change from 1.1.1 to be effective 06/03/18.
1.1.305/10/18Clarified the cases when sequenced Futures Instrument Definition messages are sent.
1.1.407/16/18Removed ModifyBitField1 from Modify Order - Short example in section 6.18; not applicable to futures.
1.1.511/08/18
  • Updated Overview and and Multicast Routing Parameter sections with new Multicast Feed IDs (A to FC, B to FD, E to FE). Added note clarifying simple leg FID messages come before complex leg FID messages sent in Spin responses.
  • Updated multicast feed ids in section 1.3 to follow standard naming convention.
1.1.604/08/19Updated Multicast Routing Parameter Data Center feed names to align with references in unit distribution table.
1.1.701/16/20Clarified definition of Time message. Time messages are only sent when there is a new PITCH message in a given second.
1.1.802/14/20Added Contract Date field to Futures Instrument Definition message. Effective trade date 04/27/20.
1.1.902/24/20Variance Offset and Leg Offset values will be set at 45 as a result of the change to add Contract Date. Refer to Futures Instrument Definition message for more details.
1.1.1004/07/20
  • New Canned Data sample provided dated 04/02/20.
  • Corrected feed symbols from 'FA and FB' to 'FC and FD' in Feed Connectivity Requirements section.
1.1.1107/27/20Updated symbols listed in Unit/Product Distribution tables to include VXT, VXM, and VXMT.
1.1.1201/21/21Added new value of I=Indicative Settlement to the Issue field on the Settlement message (effective 03/22/21).
1.2.008/17/21
  • Added new value of i=Periodic Indicative Settlement to the Issue field on the Settlement message (effective 10/17/21).
  • Added new Open Interest message (effective 10/17/21).
1.2.110/26/21Added note indicating CFE will eliminate the 15 minute trading pause for VX, VXM, and AMERIBOR futures products (effective 12/06/21).
1.2.211/01/21Corrected hyperlinks to Production symbol files and Certification symbol files.
1.2.301/03/22Updated Delete Order message description.
1.2.410/09/23
  • Added new value of ‘D=Derived’ to Trade Condition field in the Trade message and updated section 2.19 to indicate derived trades will be included in the Total Volume field (effective 12/11/23).
  • Removed values ‘B=Block trade’ and ‘E=ECRP trade’ from Trade Condition field in the Order Executed message.
  • Removed ‘E=ECRP trade’ value from Trade Condition field in the Trade (short) message.
1.2.511/28/23Updated hyperlinks to symbol mappings in production and certification environments.
1.2.606/28/24Updated section 1.7 to include Future Variance Symbol Mapping, added message type Future Variance Symbol Mapping, added new message structure for Futures Instrument Definition (replacing the current message structure), updated Variance Block to Reserved in example messages in section 6.26, 6.27 and 6.28, and added Future Variance Symbol Mapping example message (effective 09/23/24).
1.2.707/15/24Noted the Futures Instrument Definition message contains general futures contract information and is sent for all futures products, including Variance Futures (effective 09/23/24).
1.2.808/09/24The Futures Variance Symbol Mapping message may be sent as a sequenced message intraday if a symbol is modified intraday. Clarified the reason for setting the Futures Flags field of the Futures Instrument Definition message to zero.
1.2.909/05/24With the implementation of the new 60 second window for VWAP, the system will begin disseminating an intermediate indicative price update (Issue = i) at 2:59:05 p.m. CT for VX and VXM futures products (effective 09/09/24).
1.2.1011/04/24Removed the deprecated Futures Instrument Definition message with sunset date 09/23/24. Removed the "effective 09/23/24" annotation on the updated Futures Instrument Definition message and the new Futures Variance Symbol Mapping message.
  • Added two new Matching Units, plus new port and IP information for Matching Units 2-4 (effective 02/03/25).
1.2.1101/15/25Updated Feed Hours and System Restart to indicate the PITCH feed will start up on Sunday at approximately 10:30 a.m. CT.

Updated with Cboe Titanium branding.

1.2.1201/27/25
1.2.1304/07/25
  • Noted in Spin Servers: a Time message will be sent as the last message in a Spin if the last Time message sent on a Spin is older than the last received time from the internal market data producers.
  • Added XBTF to Unit 2 CFE Unit/Product Distribution (effective 04/28/25).
1.2.1409/09/25Added PBT and PET to Unit 3 CFE Unit/Product Distribution (effective 12/15/25 TBD 11/10/25).
1.2.1510/20/25Updated CFE Unit/Product Distribution to include MGTN on Unit 2 (effective 12/08/25) (effective 11/17/25).
1.2.1610/30/25
  • Updated Spin Servers to include End of Day Summary in list of spin request messages.
  • Updated PBT and PET effective date to 12/15/25 TBD.
1.2.1711/17/25Updated PBT and PET effective date to 12/15/25.
1.2.1811/18/25Updated MGTN effective date to 12/08/25.
1.2.1901/05/26Updated Feed Hours and System Restart to reflect the new time that persisted orders are added back into the order book.
1.2.20x/x/26
  • Updated Time description in Time and Time Reference messages.
Cboe Titanium Cboe Futures Exchange Multicast Depth of Book (PITCH) Specification | Cboe