The ITCH binary protocol is used for disseminating detailed full-depth, order-level market data messages with ultra-low latency.

ITCH includes messages that cover the following areas:

  • order lifecycle events (added, executed, canceled, deleted, replaced)
  • trades (provide execution details for match events involving non-displayable order types)
  • security definitions and statuses
  • market events
  • data feed events

ITCH Protocol usually defines the business-level message formats only and does not include a transport-level protocol. Messages are delivered using a lower-level transport protocol that takes care of sequencing, re-transmission, and
delivery guarantees (e.g., SoupBinTCP or MoldUDP64).

There are many ITCH Protocol variations because exchanges use different business-level messages depending on the business context of the data feed.

ITCH Protocol logical stream is a series of sequenced binary messages.

Each ITCH message has a fixed length. Fields lengths and positions are also fixed. The message type field is the first field of the message.

ITCH Protocols uses the following binary data types:

  • Integers - big-endian (network byte order) binary encoded numbers
  • Alphanumeric strings – fixed-length ASCII coded strings, padded with white spaces
  • Prices - integers with an associated implied precision
  • Timestamps - nanoseconds since midnight
  • Bitmasks - every set bit represents a particular value

ITCH Message Example

Binary message (in hexadecimal format):

0x410000000000000000000003ea00000000000500cd4200000001000000000000000100000000

The Decoded ITCH message:

 
Field name Offset Length Format Binary Decoded Notes
Message Type

0

1

Alphanumeric

 0x41

`A`

Add Order message

Timestamp

1

8

Numeric

 0x0000000000000000

0

Nanoseconds

Order Reference Number

9

4

Numeric

 0x000003EA

1002

 
Transaction ID

13

4

Numeric

 0x00000000

0

 
Order book ID

17

4

Numeric

 0x000500CD

327885

 
Side

21

1

Alphanumeric

 0x42

B

“B” = Buy order
“S” = Sell order

Quantity

22

4

Numeric

 0x00000001

1

 
Price

26

8

Price

 0x0000000000000001

1

 
Yield

34

4

Price

 0x00000000

0

 

 

See also

More information

If you have any technical questions on the ITCH Protocol or our ITCH Market Data Handler SDK, please contact Support@onixs.biz.

If you would like more information about OnixS financial protocol SDKs, then please get in touch with us here:

Contact Us