1) Volume 3.2 OneChicago, LLC. Application Program Interface OCXdelta1® OneChicago Ticker Plant (OCTP)
2) PROGRAMMERS DEVELOPMENT SPECIFICATIONS Programmer’s Guide to Messages and Content for Real-time OneChicago Market Data  OneChicago LLC. 311 South Wacker Drive, Suite 1700 Chicago, Illinois 60606 Phone 312 883 3410 2
3) Disclaimer Copyright 2015 by OneChicago, LLC as an unpublished work. This document is provided “AS IS” with all faults and without warranty of any kind, either express or implied. Support and Questions Regarding This Document Questions regarding this document can be directed to OneChicago at 312.883.3410 or via e-mail at operations@OneChicago.com 3
4) Change Notice Date Version Description of Change October 22, 2014 V1.4 Updated table 2.1 IP addresses added. November 6, 2014 V1.5 Added EntryLegPrice near and far description for EFP transactions. November 10, 2014 V1.6 Updated MPSecID breakdown, and removed 7am dissemination of product catalog. November 20, 2014 V1.7 Removed static data from update messages. Added Trading Status to Instrument group to be disseminated in product catalog message. January 23, 2015 V1.8 Added heartbeat message for line integrity. March 13, 2015 V1.9 Added clarity for Notification time and TransactTime. March 23, 2015 V2.0 Updated heartbeat message type. April 2, 2015 V2.1 Updated sample messages and format, added clarity on restart protocol. Specified header is little endian encoded. April 27, 2015 V2.2 Provided ASCII message type values. Moved sample packet captures to section 6.0. May 6, 2015 V2.3 Updated title and description. Verified price precision on all prices in specification. May 12, 2015 V2.4 On May, 18th 2015 OCTP will start new broadcasting for the following: Channel configurations: A Feed => Instrument Definition Refresh 51009 233.158.244.19 B Feed => Instrument Definition Refresh 52009 233.158.244.29 DR A Feed => Instrument Definition Refresh 53009 233.158.244.119 DR B Feed => Instrument Definition Refresh 54009 233.158.244.129 Content: OCXMD:: ProductCatalog Bandwidth: Default loop configuration Current Product list ~ packet rate Current Product list ~ data rate : 120 sec : 580 packets/s : 0.5440 Mb/s June 9, 2015 V2.5 Added clarity for repeating group tags. June 29, 2015 V2.6 Added Sequence numbers for Level 1 feed update and refresh messages. Added samples feed stream data for order lifecycle. Added sample corporate event Packet Capture. July 21, 2015 V2.7 Added clarity for GoodMorning message sequence reset. July 23, 2015 V2.8 Changed Good Morning dissemination time to 5:10 CT. August 3, 2015 V2.9 Updated channel configurations tables. August 18, 2015 V3.0 Decommissioned EFP refresh channels. Added Sample level 2 Market Data refresh message. November 23, 2015 V3.1 Added Position Accountability. Spread orders will now Have EntryLegPriceNear and EntryLegPriceFar for both Market Data Refresh and Market Data Update messages). Added UAT C feed configurations. January 11, 2015 V3.2 On January 11th, OCTP will introduce Instrument Group Trading Session Open/Close Time changed from HHmmss to HH:mm:ss 4
5) Table of Contents 1.0 Introduction .................................................................................................................................................................................................................................... 6 1.1 Message Cycles................................................................................................................................................................................................................................ 6 2.0 Connectivity .................................................................................................................................................................................................................................... 6 2.1 Network Configuration - Production and DR: ........................................................................................................................................................................... 6 3.0 Channels/Feeds .............................................................................................................................................................................................................................. 7 3.1 Channel Descriptions ..................................................................................................................................................................................................................... 7 3.1.1 Main Channel ............................................................................................................................................................................................................................... 7 3.1.2 Level 1- SSF Refresh Channel.................................................................................................................................................................................................... 7 3.1.3 Level 2- SSF Refresh Channel.................................................................................................................................................................................................... 8 3.1.4 Level 1- Spread Refresh Channel............................................................................................................................................................................................... 8 3.1.5 Level 2- Spread Refresh Channel............................................................................................................................................................................................... 8 3.1.6 Level 1- Incremental Update Channel ...................................................................................................................................................................................... 8 3.1.7 Level 2- Incremental Update Channel ...................................................................................................................................................................................... 8 3.1.8 Instrument Definition Refresh Channel ................................................................................................................................................................................... 8 3.2 Channel Groups.............................................................................................................................................................................................................................. 9 4.0 Message Overview ........................................................................................................................................................................................................................ 11 4.1 Repeating Groups ......................................................................................................................................................................................................................... 11 4.2 Message Header ............................................................................................................................................................................................................................ 11 4.3 Message Types .............................................................................................................................................................................................................................. 11 4.4 Message Body................................................................................................................................................................................................................................ 11 4.5 Message Descriptions ................................................................................................................................................................................................................... 12 4.5.1 Good Morning ........................................................................................................................................................................................................................... 12 4.5.2 Product Catalog ......................................................................................................................................................................................................................... 12 4.5.2.1 Corporate Events ................................................................................................................................................................................................................... 14 4.5.3 Exchange Summary ................................................................................................................................................................................................................... 14 4.5.4 Market Data Refresh ................................................................................................................................................................................................................. 16 4.5.5 Market Data Update .................................................................................................................................................................................................................. 18 4.5.6 Market State Notifications ........................................................................................................................................................................................................ 20 4.5.7 Heartbeats................................................................................................................................................................................................................................... 21 4.5.8 Restarts ....................................................................................................................................................................................................................................... 21 5.0 Sample Packet Captures ............................................................................................................................................................................................................... 22 6.0 GPB Templates............................................................................................................................................................................................................................. 41 6.1 Good Morning .............................................................................................................................................................................................................................. 41 6.2 Product Catalog ............................................................................................................................................................................................................................ 41 6.3 Exchange Summary ...................................................................................................................................................................................................................... 41 6.4 Market Data Refresh .................................................................................................................................................................................................................... 42 6.5 Market Data Update ..................................................................................................................................................................................................................... 42 6.6 Market State Notification ............................................................................................................................................................................................................ 42 7.0 issecting the OCXdelta1 MPSecID ............................................................................................................................................................................................ 43 7.1 Breakdown..................................................................................................................................................................................................................................... 43 7.2 Sample MPSecID breakdown ..................................................................................................................................................................................................... 43 5
6) 1.0 Introduction The OneChicago Ticker Plant (OCTP) publishes trade and quote data using the following message format explained in this document. All data will be transmitted using a multicast network protocol. The OCTP is a redundant dissemination system for parties interested in market data, and exists as two feeds on distinct servers, systematically disseminating real time OCXdelta1 market data. Consumers are required to join groups for both Primary (A) and Secondary (B) feeds to provide reliability. OneChicago utilizes extranet providers in addition to leased lines from the interested participants. Visit our website for a complete list of extranet providers. OCTP serializes messages using Google Protocol Buffers (GPB). For information on how to work with Google Protocol Buffers, visit https://developers.google.com/protocolbuffers/docs/overview 1.1 Message Cycles It is advised the users log on before message cycles begin. Table 1.1 Messages Good Morning Product Catalog Exchange Summary -SOD Exchange Summary -EOD Market State Notification Market Data Refresh Channels Market Data Updates Time 05:10 CT 06:00 CT 06:15 CT 16:45 CT See Trading Hours. 07:00 CT (refresh intervals begin) Event driven. 2.0 Connectivity Two connections are required to receive the A and B feeds. It is not permitted to receive both feeds over the same physical connection. 2.1 Network Configuration - Production and DR: Direct connections require the use of PIM Sparse mode with static Rendezvous Points (RPs). Firms need to setup routes and allow traffic from the matching multicast group and source address. Routing is currently provided statically, BGP is done only by request. Configurations with an extranet service will differ. 6
7) Table 2.1 Data Center NJ2 CH1 CH1 (UAT) A Feed Groups Source Network Rendezvous 10.38.66.131/32 10.38.66.254/32 10.38.65.131/32 10.38.65.254/32 10.38.65.90/32 10.38.65.254/32 B Feed Groups Source Network Rendezvous 10.38.66.132/32 10.38.66.254/32 10.38.65.132/32 10.38.65.254/32 N/A N/A Ticker Plant customers must choose between extranet providers or leased line connection. Our production environment is located at NJ2, and Disaster Recovery at CH1. Consumers are encouraged to establish connectivity to our UAT environment to ensure OCTP upgrades can be adequately tested prior to release. Firms who choose to use direct connections are responsible for ordering and managing their own WAN circuits and routers to connect to the OneChicago Ticker Plant. In the event of a disaster, data will be disseminated from OneChicago’s disaster recovery site in Chicago. Direct connect firms are required to have a circuit and router in the DR site. 3.0 Channels/Feeds A channel is broken into two groups (primary and secondary) where information is identical across the twin feeds. OCTP feeds are allocated across 9 channels, resulting in the 18 individual feeds. 3.1 Channel Descriptions OCTP supports three types of channels, main channels, level 1 market data, and level 2 market data. Level 1 feeds distribute top of book quote and trade data aggregating size at best bid and best ask price level. Level 2 feeds distribute updates from respective markets on an individual order basis, in addition to trade data. 3.1.1 Main Channel Message Type(s): Good Morning, Product Catalog, Exchange Summary, and Market State Notification. 3.1.2 Level 1- SSF Refresh Channel Disseminates top of book quote and trade data for OCXdelta1 Single Stock Futures (SSF) and Block markets. Channel refresh interval TBD. Products will cycle alphabetically Message Type(s): Market Data Refresh 7
8) 3.1.3 Level 2- SSF Refresh Channel Disseminates full book depth (by order) quote and trade data for OCXdelta1 Single Stock Futures (SSF) and Block markets. Channel refresh interval TBD. Products will cycle alphabetically Message Type(s): Market Data Refresh 3.1.4 Level 1- Spread Refresh Channel Disseminates top of book quote and trade data for OCXdelta1 Single Stock Futures (SSF) and Block intra-market/calendar spread markets. Channel refresh interval TBD. Products will cycle alphabetically Message Type(s): Market Data Refresh 3.1.5 Level 2- Spread Refresh Channel Disseminates full book depth (by order) quote and trade data for OCXdelta1 Single Stock Futures (SSF) and Block intra-market/calendar spread markets. Channel refresh interval TBD. Products will cycle alphabetically Message Type(s): Market Data Refresh 3.1.6 Level 1- Incremental Update Channel Disseminates event driven (real time) top of book quote and trade data for all OCXdelta1 markets. Message Type(s): Market Data Update 3.1.7 Level 2- Incremental Update Channel Disseminates event driven (real time) order based quote and trade data for all OCXdelta1 markets. Message Type(s): Market Data Update 3.1.8 Instrument Definition Refresh Channel Disseminates product catalog messages on a refresh throughout the trading day. Message Type(s): Product Catalog. 8
9) 3.2 Channel Groups Table 3.2 Primary Channels Channel port 51000 233.158.244.10 B Feed => Main 52000 233.158.244.20 A Feed => Level 2- SSF Refresh 51001 233.158.244.11 B Feed => Level 2- SSF Refresh 52001 233.158.244.21 A Feed => Level 2 - Spread Refresh 51003 233.158.244.13 B Feed => Level 2 - Spread Refresh 52003 233.158.244.23 A Feed => Level 2 – Incremental Update 51004 233.158.244.14 B Feed => Level 2 – Incremental Update 52004 233.158.244.24 A Feed => Level 1- SSF Refresh 51005 233.158.244.15 B Feed => Level 1- SSF Refresh 52005 233.158.244.25 A Feed => Level 1 - Spread Refresh 51007 233.158.244.17 B Feed => Level 1 - Spread Refresh 52007 233.158.244.27 A Feed => Level 1 – Incremental Update 51008 233.158.244.18 B Feed => Level 1 – Incremental Update 52008 233.158.244.28 A Feed => Instrument Definition Refresh 51009 233.158.244.19 B Feed => Instrument Definition Refresh 52009 233.158.244.29 Groups A Feed => Main Channel IP 9
10) Table 3.3 DR Channels Groups DR A Feed => Main Channel Channel IP port 53000 233.158.244.110 DR B Feed => Main 54000 233.158.244.120 DR A Feed => Level 2- SSF Refresh 53001 233.158.244.111 DR B Feed => Level 2- SSF Refresh 54001 233.158.244.121 DR A Feed => Level 2 - Spread Refresh 53003 233.158.244.113 DR B Feed => Level 2 - Spread Refresh 54003 233.158.244.123 DR A Feed => Level 2 – Incremental Update 53004 233.158.244.114 DR B Feed => Level 2 – Incremental Update 54004 233.158.244.124 DR A Feed => Level 1- SSF Refresh 53005 233.158.244.115 DR B Feed => Level 1- SSF Refresh 54005 233.158.244.125 DR A Feed => Level 1 - Spread Refresh 53007 233.158.244.117 DR B Feed => Level 1 - Spread Refresh 54007 233.158.244.127 DR A Feed => Level 1 – Incremental Update 53008 233.158.244.118 DR B Feed => Level 1 – Incremental Update 54008 233.158.244.128 DR A Feed => Instrument Definition Refresh 53009 233.158.244.119 DR B Feed => Instrument Definition Refresh 54009 233.158.244.129 Table 3.4 UAT Channels Groups C UAT Feed => Main Channel Channel IP port 55000 233.158.244.130 C UAT Feed => Level 2- SSF Refresh 55001 233.158.244.131 C UAT Feed => Level 2 - Spread Refresh 55003 233.158.244.133 C UAT Feed => Level 2 – Incremental Update 55004 233.158.244.134 C UAT Feed => Level 1- SSF Refresh 55005 233.158.244.135 C UAT Feed => Level 1 - Spread Refresh 55007 233.158.244.137 C UAT Feed => Level 1 – Incremental Update 55008 233.158.244.138 C UAT Feed => Instrument Definition Refresh 55009 233.158.244.139 10
11) 4.0 Message Overview Message packets contain header and body. 4.1 Repeating Groups Repeating group tags are denoted with a ‘ïƒ ’ value preceding the field name. These may appear more than once per message, indicating all components. 4.2 Message Header Message Header is binary encoded. The header is little endian. Table 4.2 Field Name Message Type Sequence Number Sending Time Protobuf Size Field Type char uint32_t uint64_t uint32_t Byte Length 1 4 8 2 Notes See table 4.3 for valid message types. Sequenced by channel. Millisecond UTC timestamp Byte size of serialized protobuf message 4.3 Message Types Valid message types are listed below with subsequent char values. Table 4.3 Message Type Exchange Summary Good Morning Market Data Refresh Market Data Update Market State Notification Product Catalog Heartbeat Value ASCII c b 2 1 a d Null 99 98 50 49 97 100 00 4.4 Message Body Message body is a serialized GPB. See GPB Templates 5.0. 11
12) 4.5 Message Descriptions 4.5.1 Good Morning OneChicago starts each trading day by pushing out a start of day message. This is an opportunity for each consumer to confirm connectivity. The Good Morning message will be disseminated only on the main channel and will indicate a sequence reset message for all OCTP channels. In the event of a technology issue, OneChicago may reset sequence numbers intra-day. The receipt of a Good Morning serves as notice that the sequence numbers for all channels on the corresponding feed have been reset. See Message Cycles Table 1.1. Table 4.5.1.1 Good Morning Structure Field ID GPB Type TradeDate 190 string Text 186 string Comments YYYY-MM-ddTHH:MM:SS UTC timestamp “OCX.TP MAIN CH, READY” or other notification text. 4.5.2 Product Catalog Product catalog describes an OCXdelta1 market’s instrument configuration by a unique security identifier (MPSecID). In the event of technology issues, OneChicago may distribute the product catalog outside of predetermined message cycle times. See Message Cycle table 1.1. The Product Catalog message is also available over the Instrument Refresh Channel. Table 4.5.2.1 Product Catalog Structure Field ID GPB Type Instrument 1029 InstrumentGroup 183 string ïƒ Symbol 112 fixed64 ïƒ MPSecID 459 string ïƒ ïƒ Underlying 147 int32 ïƒ ProductType ïƒ MaturityDate ïƒ MaturityDateBack 96 97 string string ïƒ SecuritySubType 173 int32 Notes SSF symbol e.g. AAPL1C OneChicago assigned SecurityID Underlying stock ticker 14 =SSF 15 =EFP 16 =Spread YYYYMMdd YYYYMMdd – For calendar spreads will be populated with expiration date of back contract month. e.g. AAPL1C calendar spread Sep v Oct back month will have October expiration YYYYMMdd S = SSF 12
13) ïƒ ProductSubType 146 int32 ïƒ OpenTime 509 string ïƒ CloseTime 464 string 454 ïƒ StrikePrice ïƒ ContractMultiplier 61 ïƒ PositionLimit 458 double double int32 B = Block E = EFP BS = Block Spread SS = SSF Spread 0 =SSF 1 = Block 2 = EFP 3 = Block Spread 4 = SSF Spread UTC timestamp HH:mm:ss – Close time for appropriate product type. Times vary across product types. UTC timestamp HH:mm:ss – Close time for appropriate product type. Times vary across product types. Option strike price OneChicago assigned contract multiplier – number of stock deliverables per futures contract. OneChicago assigned position limit – represents the maximum number of contracts that anyone can carry in one instrument at any given time. -1 = Position Accountability ïƒ TradingStatus 195 int32 LastMessage 701 int32 Position Accountability: Traders who hold net positions greater than 22,500 in a contract subject to Position Accountability must provide information to the exchange and consent to halt increasing their positions when so ordered by the exchange 2=Halted 17=Open 18=Closed 21=Pre-open When LastMessage field is populated with 1, it signifies the end of the Product Catalogue stream. 13
14) 4.5.2.1 Corporate Events When an underlying experiences a corporate event the underlying repeating group may appear more than once per message, indicating all underlying components. For more information regarding corporate events visit our website at: See 5.9 for sample Product catalog corporate event packet capture. http://www.onechicago.com/wpcontent/uploads/content2011/SSF%20Corporate%20Events%20Ver%202%204.pdf 4.5.3 Exchange Summary Exchange summary describes the OCXdelta1 trading activity for given trading day. This message will be distributed at two distinct times each day. The first distribution of exchange summary contains the previous trading day’s market information, including the official open interest for each respective market as reported by the OCC. The second distribution contains end of day summaries of the current trading day’s activity, note open interest is not included in this distribution. See Message Cycle table 1.1. Summary content is distributed by Single Stock Future (SSF) contracts, rather than tradable instrument. EFP, Block, Spread, and SSF markets are summarized within each message entry. Table 4.5.3.1 Exchange Summary Structure Field ID GPB Type InstrumentSummary 1026 InstrumentSumm aryGroup 183 string ïƒ Symbol 96 string ïƒ MaturityDate 173 string ïƒ SecurityType 442 double ïƒ HighPx 519 int32 ïƒ HighPxIndicator Notes SSF symbol e.g. AAPL1C YYYYMMdd FUT High price. Across all OCX markets. Indicator for value associated with high price. Possible indicators: 9 = No Value 0 = Trade 49 = Bid Initially ‘no value’; Trade Events: EFP Trade, Price of transacted SSF leg SPREAD Trade, Price of either transacted SSF legs SSF/BLOCK Trade, price of transacted 14
15) Bid: SSF/BLOCK, price of entered bid ïƒ LowPx ïƒ LowPxIndicator 444 520 double int32 Low price. Across all OCX markets. Indicator for value associated with low price. Possible indicators: 9 = No Value 0 = Trade 50 = Offer Initially ‘no value’; Trade Events: EFP Trade, Price of transacted SSF leg SPREAD Trade, Price of either transacted SSF legs SSF/BLOCK Trade, price of transacted Offer: SSF/BLOCK, price of entered offer ïƒ ClosePx 445 double ïƒ ClosePxindicator 521 int32 Closing price. Across all OCX markets. Last trade, that was within 60 seconds of the market close. If no trade within 60 seconds of close we use reference price. 0 = Trade 1 = Reference Price Initially ‘no value’; Trade Events: EFP Trade, Price of transacted SSF leg SPREAD Trade, Price of either transacted SSF legs SSF/BLOCK Trade, price of transacted Reference Price: Theoretical price calculation at the time of close ïƒ OpenPx 443 double ïƒ OpenPxIndicator 522 int32 Opening price. Across all OCX markets. First trade, that was within 60 seconds of the market open. If no trade within 60 seconds of open we use reference price. 0 = Trade 1 = Reference Price Initially ‘no value’; Trade Events: 15
16) leg EFP Trade, Price of transacted SSF SPREAD Trade, Price of either transacted SSF legs SSF/BLOCK Trade, price of transacted Reference Price: Theoretical price calculation at the time of the open ïƒ SettlePx ïƒ NetChangePx ïƒ BlockVolume 446 448 451 double double int32 ïƒ EFPVolume 450 int32 ïƒ SSFVolume 523 int32 ïƒ TotalVolume 449 int32 ïƒ OpenInterest 452 int32 TradeDate LastMessage 190 701 string int32 Official exchange assigned settlement price. Day to day difference in settle Price Total block volume - sum of all volume for block transactions on the corresponding SSF. Total EFP volume - sum of all volume for EFP transactions on the corresponding SSF. Total SSF volume - sum of all volume for SSF transactions on the corresponding SSF. Total volume- sum of all volume that settle to the corresponding SSF. Open interest for the previous trading day will come in the morning exchange summary, as it is a summation of yesterday’s trading day. Summation of today’s trading day shows no open interest. YYYYMMdd – always todays trade date. When LastMessage field is populated with 1, it signifies the end of the Exchange Summary Message stream. 4.5.4 Market Data Refresh Market data refresh describes quote and trade data for a given OCXdelta1 market. See Message Cycle table 1.1. Table 4.5.4.1 Market Data Refresh Structure Field ID GPB Type Notes Instrument 1029 InstrumentGroup 112 fixed64 OneChicago assigned SecurityID ïƒ MPSecID MDEntry 1027 MDEntryGroup 16
17) ïƒ EntryPrice 511 double ïƒ EntrySize 512 double ïƒ EntrySide 513 int32 ïƒ EntryLegPriceNear 514 double ïƒ EntryLegPriceFar 515 double ïƒ SequenceNo 516 int32 Level 1: With entry side bid, entry price will represent the current best bid. Additionally entry price with entry side of offer will represent the current best offer. Level 2: Price of corresponding order or trade event. Level 1: With entry side bid, entry size will represent the current best bid. Additionally entry size with entry side of offer will represent the current best offer. Level 2: size of corresponding order or trade event. 49 = Bid 50 = Offer For Calendar spreads, entry leg price near is the fair market price of the SFF associated with front leg for the spread. For EFP transactions Entry Leg price will represent the stock price. For Calendar spreads, entry leg price far is the fair market price of the SFF associated with back leg for the spread. For EFP transactions Entry Leg price will represent the future price. For LEVEL 1 order events: Incremented on each market event affecting TOB aggregated at price level by Side Example: Refresh ( Bid TOB, NO Ask TOB ) SequenceNo = 1 - > Bid entered at best price SequenceNo = 2 -> Bid updated ( px/qty) or another bid entered at the same price ( +/- to qty ) SequenceNo = 3 -> Bid canceled/filled resulting in 0 best bid qty ( indicating no bid ) For LEVEL 2 order events: Incremented on each market event for the corresponding order. Example: SequenceNo = 1 -> order enters market SequenceNo = 2 -> order is updated ( px/qty) SequenceNo = 3 -> order is filled 17
18) Order is cancel replaced SequenceNo = 2, Order is filled SequenceNo = 3. See example 5.8 Market Data Order Life Cycle Sample ïƒ ReferenceID 517 fixed64 ïƒ EntryRate 518 double ïƒ TransactTime 196 string ïƒ NetChangePx 448 double LastPx LastQty LastMessage 84 85 701 double double int32 The persistent ID of an individual order for the lifetime of the order. Level 2 only. For trade events, indicates the exchange assigned Trade Match ID, and will be referenced for trade bust events. Implied rate for calendar spread orders and trades, and will be desseminated both for level 1 and level 2 order entry and trade events. HH:mm:ss.SSS – For level 1 and level 2 order and trade events will indicate the time in which the trade or order event occurs on the OCXdelta1 match platform out to millisecond resolution. – milliseconds UTC timestamp Change in price on day, off of yesterday’s settlement price. Only disseminated on trade events and block and SSF product subtypes. Last traded price. Last traded quantity. When LastMessage field is populated with 1, it signifies the end of the Exchange Summary Message stream. 4.5.5 Market Data Update Market data update describes event driven (real-time) quote and trade data for a given OCXdelta1 market. See Message Cycle table 1.1. Table 4.5.5.1 Market Data Update Structure Field ID GPB Type Notes Instrument 1029 InstrumentGroup 112 fixed64 OneChicago assigned SecurityID ïƒ MPSecID MDEntry 1027 MDEntryGroup 510 int32 Relevant for level 2 refresh and only trade ïƒ EntryType events on level 1 refresh 1 = New 2 = Update 3 = Delete 18
19) ïƒ EntryPrice 511 double ïƒ EntrySize 512 double ïƒ EntrySide 513 int32 ïƒ EntryLegPriceNear 514 double ïƒ EntryLegPriceFar 515 double ïƒ SequenceNo 516 int32 4 = Trade 5 = Trade bust For level 2 order events you can receive new, update, delete. For trade events you will receive trade and trade bust, both on level 1 and level 2 refresh channels. Dissemination of top of book order events will not include an entry type, and should be identified via entry side. Level 1: With entry side bid, entry price will represent the current best bid. Additionally entry price with entry side of offer will represent the current best offer. Level 2: Price of corresponding order or trade event. Level 1: With entry side bid, entry size will represent the current best bid. Additionally entry size with entry side of offer will represent the current best offer. Level 2: size of corresponding order or trade event. 49 = Bid 50 = Offer For Calendar spreads, entry leg price near is the fair market price of the SFF associated with front leg for the spread. For EFP transactions Entry Leg price will represent the stock price. For Calendar spreads, entry leg price far is the fair market price of the SFF associated with back leg for the spread. For EFP transactions Entry Leg price will represent the future price. For LEVEL 1 order events: Incremented on each market event affecting TOB aggregated at price level by Side Example: Refresh ( Bid TOB, NO Ask TOB ) SequenceNo = 1 - > Bid entered at best price SequenceNo = 2 -> Bid updated ( px/qty) or another bid entered at the same price ( +/- to qty ) SequenceNo = 3 -> Bid canceled/filled resulting in 0 best bid qty ( indicating no bid ) 19
20) For LEVEL 2 order events: Incremented on each market event for the corresponding order. Example: SequenceNo = 1 -> order enters market SequenceNo = 2 -> order is updated ( px/qty) SequenceNo = 3 -> order is filled Order is cancel replaced SequenceNo = 2, Order is filled SequenceNo = 3. See example 5.8 Market Data Order Life Cycle Sample ïƒ ReferenceID 517 fixed64 ïƒ EntryRate 518 double ïƒ TransactTime 196 string ïƒ NetChangePx 448 double The persistent ID of an individual order for the lifetime of the order, level 2 only. For trade events, indicates the exchange assigned Trade Match ID, and will be referenced for trade bust events. Implied rate for calendar spreads orders and trades, and will be disseminated both for level 1 and level 2 order entry and trade events. HH:mm:ss.SSS – For level 1 and level 2 order and trade events will indicate the time in which the trade or order event occurs on the OCXdelta1 match platform out to millisecond resolution. Change in price on day, off of yesterday’s settlement price. Only disseminated on trade events and block and SSF product subtypes. 4.5.6 Market State Notifications Market state notifications are event driven and distributed in two fashions, by OCXdelta1 product type and security identifier (MPSecID). Typical start of day and end of day market cycles notify market states by product type. Halt and resumption market states are typically notified by security identifier. Table 4.5.6.1 Market State Notification Structure Field ID GPB Type UpdateType 524 int32 NotificationTime 801 Fixed64 Notes 0 = Product Type 1 = Product Sub Type 2 = MPSecID Microsecond UTC timestamp from epoch 20
21) TradingStatus 195 int32 2=Halted 17=Open 18=Closed 21=Pre-open Optional Relevant message. Reason for security halt. HaltReason_REGULATORY = 1 Text HaltReason 186 700 string int32 Instrument ïƒ MPSecID 1029 112 InstrumentGroup fixed64 OneChicago assigned SecurityID Table 4.5.5.1 Trading Sessions Trading Status Description Pre-Open For all supported OCXdelta1tradable instruments this trading session allows bilateral trade reporting only. Open This trading session allows day limit order entry, order replace, order cancel, bilateral trade reporting, and price time priority order matching. Close This trading session prohibits any trading activity including order cancel, and bilateral trade reporting. Halt This trading session allows order cancel only. 4.5.7 Heartbeats Heartbeat messages will be transmitted every 5 seconds of inactivity to every channel including main channels as a line integrity test. They will be a simple message header with Message Type 00. 4.5.8 Restarts In the unlikely event OneChicago must restart a Ticker Plant intraday, all connected users will be notified. Working order and trade messages will be replayed in the order in which they were previously disseminated. The data transmitted in these messages will be identical to the message sent prior to the restart event. 21
22) 5.0 Sample Packet Captures 5.1 Good Morning Packet Capture -------------------------------------------------10:45:00.863576 : PCAP: 233.158.244.10:51000 -------------------------------------------------GOOD_MORNING Packet Length : 61 62010000 003ed748 6a4c0100 0b154f43 582e5450 204d4149 2c205245 414459f2 0b133230 332d3330 5431303a 34353a30 Header Length SndTm MsgType SequenceNo Size 002e00d2 4e204348 31352d30 30 : 15 1427712300862 98 1 46 Payload Length : 46 Text: "OCX.TP MAIN CH, READY" TradeDate: "2015-03-30T10:45:00" -------------------------------------------------- 22
23) 5.2 Product Catalog Packet Capture -------------------------------------------------15:22:17.599415 : PCAP: 233.158.244.200:58200 -------------------------------------------------PRODUCT_CATALOG Packet Length : 117 64417504 007f0af1 cd500100 2b00aa40 60e90300 00000000 06083230 31353132 31388a06 8080ba88 037b078b 90090098 0153ba0b 05504550 3143980c ffffffff ffffffff 01da1c03 1d083230 3a30303a 3030ea1f 30303a30 30 Header Length SndTm MsgType SequenceNo Size 006600e8 00594082 01308107 090eea0a 11d01cff 50455082 0831323a : 15 1446564137599 100 292161 102 Payload Length : 102 LastMessage: 0 Instrument { ContractMultiplier: 100 MaturityDate: "20151218" MaturityDateBack: "0" MPSecID: 10018111151218000000 ProductSubType: 0 ProductType: 14 SecuritySubType: "S" Symbol: "PEP1C" TradingStatus: 17 PositionLimit: -1 Underlying: "PEP" CloseTime: "20:00:00" OpenTime: "12:00:00" } -------------------------------------------------15:58:16.468826 : PCAP: 233.158.244.200:58200 -------------------------------------------------PRODUCT_CATALOG Packet Length : 109 64f40600 0094fb11 ce500100 2b00aa40 58e90300 00000000 06083230 31353132 31388a06 8060d230 4480128b 90090298 0145ba0b 05535449 3143980c 69da1c03 53544982 1d083230 3030ea1f 0831323a 30303a30 Header Length SndTm MsgType SequenceNo Size 005e00e8 00594082 01308107 090fea0a 11d01cbc 3a30303a 30 : 15 1446566296468 100 1780 94 23
24) Payload Length : 94 LastMessage: 0 Instrument { ContractMultiplier: 100 MaturityDate: "20151218" MaturityDateBack: "0" MPSecID: 10021213151218000000 ProductSubType: 2 ProductType: 15 SecuritySubType: "E" Symbol: "STI1C" TradingStatus: 17 PositionLimit: 13500 Underlying: "STI" CloseTime: "20:00:00" OpenTime: "12:00:00" } -------------------------------------------------13:02:59.598279 : PCAP: 233.158.244.200:58200 -------------------------------------------------PRODUCT_CATALOG Packet Length : 125 64e10402 000e8271 cd500100 2b00aa40 68e90300 00000000 06083230 31353038 32318a06 35303931 388107c6 7053be8a 09049809 10ea0a02 5353ba0b 3143980c 15d01cff ffffffff 01da1c03 53544982 1d083230 3030ea1f 0831323a 30303a30 Header Length SndTm MsgType SequenceNo Size 006e00e8 00594082 08323031 87128b90 05535449 ffffffff 3a30303a 30 : 15 1446555779598 100 132321 110 Payload Length : 110 LastMessage: 0 Instrument { ContractMultiplier: 100 MaturityDate: "20150821" MaturityDateBack: "20150918" MPSecID: 10021221150821150918 ProductSubType: 4 ProductType: 16 SecuritySubType: "SS" Symbol: "STI1C" TradingStatus: 21 PositionLimit: -1 Underlying: "STI" CloseTime: "20:00:00" OpenTime: "12:00:00" } -------------------------------------------------- 24
25) 5.3 Exchange Summary Packet Capturs -------------------------------------------------11:15:08.750209 : PCAP: 233.158.244.10:51000 -------------------------------------------------EXCHANGE_SUMMARY Packet Length : 147 63310901 004e3d2a e04f0100 0b083230 31353039 3138e82b 82060832 30313531 303136ea 54ba0b05 4a4f4531 44d11b7b fa3140d9 1bec51b8 1e85ab31 703d0ad7 a33140e9 1b5c8fc2 40f11b5c 8fc2f528 dc314081 999999a9 3f881ce8 07901c00 -TradeDate: "20150918" LastMessage: 0 InstrumentSummary { MaturityDate: "20151016" SecurityType: "FUT" Symbol: "JOE1D" HighPx: 17.98 OpenPx: 17.67 LowPx: 17.64 ClosePx: 17.86 SettlePx: 17.86 NetChangePx: 0.05 TotalVolume: 1000 EFPVolume: 0 BlockVolume: 0 OpenInterest: 3000 HighPxIndicator: 49 LowPxIndicator: 50 ClosePxindicator: 1 OpenPxIndicator: 0 SSFVolume: 1000 } 008400f2 00924073 0a034655 14ae47e1 40e11ba4 f528dc31 1c9a9999 981c00a0 -------------------------------------------------- 25
26) 5.4 Market Data Refresh Level 1 Packet Capture -------------------------------------------------19:27:59.056887 : PCAP: 233.158.244.117:53007 -------------------------------------------------MARKET_DATA_REFRESH Packet Length : 171 32f3a800 00ae4274 764c0100 05000000 00000000 00a90500 000000e8 2b009a40 39a20c15 30343031 2d31393a 32353a35 32f91f00 00000000 00000081 00000000 00882031 b1200000 00009a40 39a20c15 32303135 2d31393a 32353a35 312e3030 00000000 00000081 20000000 00882032 b1200000 00000000 0a81079b 72749b82 7f8392 Header Length SndTm MsgType SequenceNo Size 009c00a1 00000000 32303135 312e3030 20000000 00000000 30343031 32f91f00 00000000 0000aa40 : 15 1427916473006 50 43251 156 Payload Length : 156 LastPx: 10.23 LastQty: 180 LastMessage: 0 MDEntry { TransactTime: "20150401-19:25:51.002" EntryPrice: 10 EntrySize: 5 EntrySide: 49 EntryRate: 0 } MDEntry { TransactTime: "20150401-19:25:51.002" EntryPrice: 10.5 EntrySize: 10 EntrySide: 50 EntryRate: 0 } Instrument { MPSecID: 10557422150417150619 } -------------------------------------------------19:27:59.056887 : PCAP: 233.158.244.117:53007 -------------------------------------------------MARKET_DATA_REFRESH Packet Length : 202 324a710f 006d6099 cd500100 05000000 00000000 00a90500 000000e8 2b009a40 50a20c15 31313033 2d31333a 34303a31 32f91f9a 99999999 99c93f81 00000024 40882031 91208a8e 00ca00a1 00000000 32303135 302e3430 20000000 e4f21f4a 26
27) 5e409920 20daab8f 30313531 2e383635 00000000 f21f4a5e 2001b120 07c6f00a 575bb1bf 87bebb95 3130332d f91f4725 00002440 409920b0 9b38b9df 3a27ecc7 Header Length SndTm MsgType Seq Sz ec565e40 3f9a4050 31333a34 75029a08 88203291 03e78c28 a128a03f 8a : 15 : : : : a02008b1 a20c1532 313a3331 d33f8120 208a8ee4 5d5e40a0 aa400a81 1446558392429 50 1012042 202 LastPx: 0 LastQty: 0 LastMessage: 0 MDEntry { TransactTime: "20151103-13:40:10.402" EntryPrice: 0.2 EntrySize: 10 EntrySide: 49 EntryLegPriceNear: 121.1582 EntryLegPriceFar: 121.3582 SequenceNo: 8 EntryRate: 0.021224 } MDEntry { TransactTime: "20151103-13:41:31.865" EntryPrice: 0.29740000000000005 EntrySize: 10 EntrySide: 50 EntryLegPriceNear: 121.1582 EntryLegPriceFar: 121.4556 SequenceNo: 1 EntryRate: 0.03156 } Instrument { MPSecID: 10000221150821150918 } 27
28) 5.4 Market Data Refresh Level 2 Packet Capture -------------------------------------------------19:27:59.056887 : PCAP: 233.158.244.113:53003 -------------------------------------------------MARKET_DATA_REFRESH Packet Length : 3242985c 008a637a 05000000 00000000 000000e8 2b009a40 30383139 2d31393a 33f91f29 5c8fc2f5 00000014 40882032 e5c038be 8eb12001 4046a20c 15323031 3a33363a 34332e34 f528cc3f 81200000 32a02001 a920057a 018750a5 660f943f 31353038 31392d31 353033f9 1f295c8f 00000000 00144088 7af9e5c0 38be8eb1 3f9a4046 a20c1532 31393a33 363a3235 14ae47e1 ca3f8120 882032a0 2001a920 b12012a5 bdc11726 32303135 30383139 352e3734 35f91fb1 20000000 00000014 20027af9 e5c038be 6e863f9a 4046a20c 392d3139 3a33363a b1726891 ed7cbf3f 14408820 31a02001 be8eb120 853e58c6 0765c637 f7e338be Header Length SndTm MsgType SequenceNo Size 474 474f0100 00a90500 46a20c15 33363a35 28cc3f81 a02001a9 8750a566 35303831 3039f91f 00000000 f9e5c038 9a4046a2 393a3336 c2f528cc 2032a020 20018750 30313530 2e333939 00000000 037af9e5 933f9a40 2d31393a 726891ed 40882031 8eb12085 15323031 31322e36 81200000 a920017a 866e863f 8e 00da01a1 00000000 32303135 392e3337 20000000 20067af9 0f943f9a 392d3139 295c8fc2 14408820 be8eb120 0c153230 3a33332e 3f812000 01a92004 a5660f94 3831392d f91fe27a 00002440 c038be8e 46a20c15 33363a31 7cbf3f81 a02001a9 3e58c686 35303831 3030f91f 00000000 f9e5c038 aa400a81 : 15 1427916473006 50 43251 156 Payload Length : 459 LastPx: 0 LastQty: 0 LastMessage: 0 MDEntry { TransactTime: "20150819-19:36:59.373" EntryPrice: 0.22 EntrySize: 5 EntrySide: 50 SequenceNo: 1 ReferenceID: 10285721000104000006 EntryRate: 0.01959 } MDEntry { TransactTime: "20150819-19:36:43.409" 28
29) EntryPrice: 0.22 EntrySize: 5 EntrySide: 50 SequenceNo: 1 ReferenceID: 10285721000104000005 EntryRate: 0.01959 } MDEntry { TransactTime: "20150819-19:36:33.503" EntryPrice: 0.22 EntrySize: 5 EntrySide: 50 SequenceNo: 1 ReferenceID: 10285721000104000004 EntryRate: 0.01959 } MDEntry { TransactTime: "20150819-19:36:25.399" EntryPrice: 0.21000000000000002 EntrySize: 10 EntrySide: 50 SequenceNo: 1 ReferenceID: 10285721000104000003 EntryRate: 0.0187 } MDEntry { TransactTime: "20150819-19:36:15.745" EntryPrice: 0.12300000000000001 EntrySize: 5 EntrySide: 49 SequenceNo: 1 ReferenceID: 10285721000104000002 EntryRate: 0.010953 } MDEntry { TransactTime: "20150819-19:36:12.600" EntryPrice: 0.12300000000000001 EntrySize: 5 EntrySide: 49 SequenceNo: 1 ReferenceID: 10285721000104000001 EntryRate: 0.010953 } Instrument { MPSecID: 10285721150717150821 } -------------------------------------------------19:27:59.056887 : PCAP: 233.158.244.113:53003 -------------------------------------------------MARKET_DATA_REFRESH Packet Length : 32b6db0e 00b1ae95 05000000 00000000 000000e8 2b009a40 31313033 2d31333a 35f91f47 2575029a 00000024 40882032 5e409920 af03e78c 2047ea2e 2204ecc7 28a03f9a 405aa20c 315 cd500100 00a90500 5aa20c15 34313a33 08d33f81 91208a8e 285d5e40 8ab1209b 15323031 003b01a1 00000000 32303135 312e3836 20000000 e4f21f4a a02001a9 38b9dfa1 35313130 29
30) 332d3133 b1726891 14408820 20a7e848 2e2204ec 9a405aa2 333a3430 999999c9 20319120 b1bfec56 ecc78ab1 8107c6f0 3a34313a ed7cbf3f 3191208a 2eff515e c78ab120 0c153230 3a31302e 3f812000 8a8ee4f2 5e40a020 20daab8f 0a3a27ec Header Length SndTm MsgType MsgType Seq Sz : : : : : : 32322e32 81200000 8ee4f21f 40a02001 8be1ea00 31353131 343032f9 00000000 1f4a5e40 01a92045 87bebb95 c78a 3431f91f 00000000 4a5e4099 a92046ea 88bb8a3f 30332d31 1f9a9999 00244088 9920575b ea2e2204 3faa400a 15 1446558089817 50 50 973750 315 LastPx: 0 LastQty: 0 LastMessage: 0 MDEntry { TransactTime: "20151103-13:41:31.865" EntryPrice: 0.29740000000000005 EntrySize: 10 EntrySide: 50 EntryLegPriceNear: 121.1582 EntryLegPriceFar: 121.45559999999999 SequenceNo: 1 ReferenceID: 10000221000097000007 EntryRate: 0.03156 } MDEntry { TransactTime: "20151103-13:41:22.241" EntryPrice: 0.12300000000000001 EntrySize: 5 EntrySide: 49 EntryLegPriceNear: 121.1582 EntryLegPriceFar: 121.2812 SequenceNo: 1 ReferenceID: 10000221000097000006 EntryRate: 0.013053 } MDEntry { TransactTime: "20151103-13:40:10.402" EntryPrice: 0.2 EntrySize: 10 EntrySide: 49 EntryLegPriceNear: 121.1582 EntryLegPriceFar: 121.3582 SequenceNo: 1 ReferenceID: 10000221000097000005 EntryRate: 0.021224 } Instrument { MPSecID: 10000221150821150918 } ----------------------------------------------- 30
31) 5.5 Market Data Update Packet Capture -------------------------------------------------13:07:26.031569 : PCAP: 233.158.244.204:58204 -------------------------------------------------MARKET_DATA_UPDATE Packet Length : 104 31ad0600 00cf9275 cd500100 4049a20c 15323031 35313130 3a30373a 32362e30 3331f01f 00000000 405e4081 20000000 40882031 a02001a9 2041d7e7 8ab12000 00000000 000000aa 40133bc0 f7e3c78a Header Length SndTm MsgType SequenceNo Size 0059009a 332d3133 01f91f00 00000014 73e7e3c7 400a8107 : 15 1446556046031 49 1709 89 Payload Length : 89 MDEntry { TransactTime: "20151103-13:07:26.031" EntryType: 1 EntryPrice: 121 EntrySize: 5 EntrySide: 49 SequenceNo: 1 ReferenceID: 10000212080821000001 EntryRate: 0 } Instrument { MPSecID: 10000212150821000000 } -------------------------------------------------13:06:32.841574 : PCAP: 233.158.244.204:58204 -------------------------------------------------MARKET_DATA_UPDATE Packet Length : 124 31a20600 0009c374 cd500100 405da20c 15323031 35313130 3a30363a 33322e38 3430f01f f1d24d62 10d03f81 20000000 40882031 91208a8e e4f21f4a 7c613255 305a5e40 a02001a9 2204ecc7 8ab12022 c495b377 400a8107 c6f00a3a 27ecc78a Header Length SndTm MsgType SequenceNo Size 006d009a 332d3133 01f91faa 00000024 5e409920 2041ea2e 469b3faa : 15 1446555992841 49 1698 109 31
32) Payload Length : 109 MDEntry { TransactTime: "20151103-13:06:32.840" EntryType: 1 EntryPrice: 0.251 EntrySize: 10 EntrySide: 49 EntryLegPriceNear: 121.1582 EntryLegPriceFar: 121.4092 SequenceNo: 1 ReferenceID: 10000221000097000001 EntryRate: 0.026636 } Instrument { MPSecID: 10000221150821150918 } -------------------------------------------------- 32
33) 5.6 Market State Notification Packet Capture -------------------------------------------------13:30:04.960517 : PCAP: 233.158.244.10:51000 -------------------------------------------------MARKET_STATE_NOTIFICATION Packet Length : 41 61fa4103 00bfe9df 6a4c0100 0c118932 94d9a67a 81120500 07408652 dda215e3 90 Header Length SndTm MsgType SequenceNo Size 001a0098 aa400a81 : 15 1427722201535 97 213498 26 Payload Length : 26 TradingStatus: 17 NotificationTime: 1427722201389460 Instrument { MPSecID: 10440212150417000000 } -------------------------------------------------- 5.7 Heartbeat Packet Capture -------------------------------------------------19:27:25.884133 : PCAP: 233.158.244.110:53000 -------------------------------------------------HEARTBEAT Packet Length : 15 00140000 00bcd873 764c0100 Header Length SndTm MsgType SequenceNo Size : 15 1427916445884 0 20 0 Payload Length 000000 : 0 -------------------------------------------------- 33
34) 5.8 Market Data Order Life Cycle Sample ############################################### (1) 1 Bid event (enter 10 @ $128.50) ( incr not shown ) (2) 1 Bid event (enter 10 @ $128.50) ( incr not shown ) (3) 1 Bid event (enter 10 @ $128.50) ############################################### LEVEL 1 Incremental ----------------------------------------------SndTm =1435072298112 MsgType =49 Seq =32 Sz =76 MDEntry { TransactTime: "20150623-15:11:38.113" EntryPrice: 128.5 EntrySize: 30 EntrySide: 49 SequenceNo: 3 EntryRate: 0.021931 } Instrument { MPSecID: 10000211151218000000 } 31 20 00 00 00 80 7c f9 20 4e 01 00 00 4c 00 9a 40 3c a2 0c 15 32 30 31 35 30 36 32 33 2d 31 35 3a 31 31 3a 33 38 2e 31 31 33 f9 1f 00 00 00 00 00 10 60 40 81 20 00 00 00 00 00 00 3e 40 88 20 31 a0 20 03 b1 20 96 05 13 7f 14 75 96 3f aa 40 0a 81 07 80 c0 3f 03 0f e3 c7 8a ----------------------------------------------LEVEL 1 SSF Refresh ----------------------------------------------SndTm =1435072331017 MsgType =50 Seq =1697361 Sz =162 LastPx: 0 LastQty: 0 LastMessage: 0 MDEntry { TransactTime: "20150623-15:11:38.113" EntryPrice: 128.5 EntrySize: 30 EntrySide: 49 SequenceNo: 3 EntryRate: 0.021931 } MDEntry { TransactTime: "20150623-12:00:00.000" EntryPrice: 0 EntrySize: 0 EntrySide: 50 SequenceNo: 0 EntryRate: 0 } Instrument { MPSecID: 10000211151218000000 } 34
35) 32 51 e6 19 00 09 fd f9 20 4e 01 00 00 a2 00 a1 05 00 00 00 00 00 00 00 00 a9 05 00 00 00 00 00 00 00 00 e8 2b 00 9a 40 3c a2 0c 15 32 30 31 35 30 36 32 33 2d 31 35 3a 31 31 3a 33 38 2e 31 31 33 f9 1f 00 00 00 00 00 10 60 40 81 20 00 00 00 00 00 00 3e 40 88 20 31 a0 20 03 b1 20 96 05 13 7f 14 75 96 3f 9a 40 3c a2 0c 15 32 30 31 35 30 36 32 33 2d 31 32 3a 30 30 3a 30 30 2e 30 30 30 f9 1f 00 00 00 00 00 00 00 00 81 20 00 00 00 00 00 00 00 00 88 20 32 a0 20 00 b1 20 00 00 00 00 00 00 00 00 aa 40 0a 81 07 80 c0 3f 03 0f e3 c7 8a ----------------------------------------------############################################### (1) 1 Ask event (enter 10 @ $128.51) ############################################### LEVEL 1 Incremental ----------------------------------------------SndTm =1435072584896 MsgType =49 Seq =89 Sz =76 MDEntry { TransactTime: "20150623-15:16:24.896" EntryPrice: 128.51 EntrySize: 10 EntrySide: 50 SequenceNo: 1 EntryRate: 0.02209 } Instrument { MPSecID: 10000211151218000000 } 31 59 00 00 00 c0 dc fd 20 4e 01 00 00 4c 00 9a 40 3c a2 0c 15 32 30 31 35 30 36 32 33 2d 31 35 3a 31 36 3a 32 34 2e 38 39 36 f9 1f b8 1e 85 eb 51 10 60 40 81 20 00 00 00 00 00 00 24 40 88 20 32 a0 20 01 b1 20 90 49 46 ce c2 9e 96 3f aa 40 0a 81 07 80 c0 3f 03 0f e3 c7 8a ----------------------------------------------LEVEL 1 SSF Refresh ----------------------------------------------SndTm =1435072693183 MsgType =50 Seq =5334345 Sz =162 LastPx: 0 LastQty: 0 LastMessage: 0 MDEntry { TransactTime: "20150623-15:11:38.113" EntryPrice: 128.5 EntrySize: 30 EntrySide: 49 SequenceNo: 3 EntryRate: 0.021931 } MDEntry { 35
36) TransactTime: "20150623-15:16:24.896" EntryPrice: 128.51 EntrySize: 10 EntrySide: 50 SequenceNo: 1 EntryRate: 0.02209 } Instrument { MPSecID: 10000211151218000000 } 32 49 65 51 00 bf 83 ff 20 4e 01 00 00 a2 00 a1 05 00 00 00 00 00 00 00 00 a9 05 00 00 00 00 00 00 00 00 e8 2b 00 9a 40 3c a2 0c 15 32 30 31 35 30 36 32 33 2d 31 35 3a 31 31 3a 33 38 2e 31 31 33 f9 1f 00 00 00 00 00 10 60 40 81 20 00 00 00 00 00 00 3e 40 88 20 31 a0 20 03 b1 20 96 05 13 7f 14 75 96 3f 9a 40 3c a2 0c 15 32 30 31 35 30 36 32 33 2d 31 35 3a 31 36 3a 32 34 2e 38 39 36 f9 1f b8 1e 85 eb 51 10 60 40 81 20 00 00 00 00 00 00 24 40 88 20 32 a0 20 01 b1 20 90 49 46 ce c2 9e 96 3f aa 40 0a 81 07 80 c0 3f 03 0f e3 c7 8a ----------------------------------------------############################################### (4) 1 Bid event (cancel 10 @ $128.50) ############################################### LEVEL 1 Incremental ----------------------------------------------SndTm =1435072786765 MsgType =49 Seq =129 Sz =76 MDEntry { TransactTime: "20150623-15:11:38.113" EntryPrice: 128.5 EntrySize: 20 EntrySide: 49 SequenceNo: 4 EntryRate: 0.021931 } Instrument { MPSecID: 10000211151218000000 } 31 81 00 00 00 4d f1 00 21 4e 01 00 00 4c 00 9a 40 3c a2 0c 15 32 30 31 35 30 36 32 33 2d 31 35 3a 31 31 3a 33 38 2e 31 31 33 f9 1f 00 00 00 00 00 10 60 40 81 20 00 00 00 00 00 00 34 40 88 20 31 a0 20 04 b1 20 96 05 13 7f 14 75 96 3f aa 40 0a 81 07 80 c0 3f 03 0f e3 c7 8a ----------------------------------------------LEVEL 1 SSF Refresh ----------------------------------------------SndTm =1435072981078 MsgType =50 Seq =8225281 Sz =162 LastPx: 0 LastQty: 0 36
37) LastMessage: 0 MDEntry { TransactTime: "20150623-15:11:38.113" EntryPrice: 128.5 EntrySize: 20 EntrySide: 49 SequenceNo: 4 EntryRate: 0.021931 } MDEntry { TransactTime: "20150623-15:16:24.896" EntryPrice: 128.51 EntrySize: 10 EntrySide: 50 SequenceNo: 1 EntryRate: 0.02209 } Instrument { MPSecID: 10000211151218000000 } 32 01 82 7d 00 56 e8 03 21 4e 01 00 00 a2 00 a1 05 00 00 00 00 00 00 00 00 a9 05 00 00 00 00 00 00 00 00 e8 2b 00 9a 40 3c a2 0c 15 32 30 31 35 30 36 32 33 2d 31 35 3a 31 31 3a 33 38 2e 31 31 33 f9 1f 00 00 00 00 00 10 60 40 81 20 00 00 00 00 00 00 34 40 88 20 31 a0 20 04 b1 20 96 05 13 7f 14 75 96 3f 9a 40 3c a2 0c 15 32 30 31 35 30 36 32 33 2d 31 35 3a 31 36 3a 32 34 2e 38 39 36 f9 1f b8 1e 85 eb 51 10 60 40 81 20 00 00 00 00 00 00 24 40 88 20 32 a0 20 01 b1 20 90 49 46 ce c2 9e 96 3f aa 40 0a 81 07 80 c0 3f 03 0f e3 c7 8a ----------------------------------------------############################################### (5) 1 Bid event (cancel 10 @ $128.50) ( incr not shown ) (6) 1 Bid event (cancel 10 @ $128.50) ############################################### LEVEL 1 Incremental ----------------------------------------------SndTm =1435073053319 MsgType =49 Seq =183 Sz =76 MDEntry { TransactTime: "20150623-15:24:13.320" EntryPrice: 0 EntrySize: 0 EntrySide: 49 SequenceNo: 6 EntryRate: 0 } Instrument { MPSecID: 10000211151218000000 } 31 40 3a 00 31 b7 3c 32 00 a0 00 a2 34 00 20 00 0c 3a 00 06 00 15 31 81 b1 87 32 33 20 20 02 30 2e 00 00 05 31 33 00 00 21 35 32 00 00 4e 30 30 00 00 01 36 f9 00 00 00 32 1f 00 00 00 33 00 00 00 4c 2d 00 00 00 00 31 00 88 aa 9a 35 00 20 40 37
38) 0a 81 07 80 c0 3f 03 0f e3 c7 8a ----------------------------------------------LEVEL 1 SSF Refresh ----------------------------------------------SndTm =1435073106465 MsgType =50 Seq =9484237 Sz =162 LastPx: 0 LastQty: 0 LastMessage: 0 MDEntry { TransactTime: "20150623-15:24:13.320" EntryPrice: 0 EntrySize: 0 EntrySide: 49 SequenceNo: 6 EntryRate: 0 } MDEntry { TransactTime: "20150623-15:16:24.896" EntryPrice: 128.51 EntrySize: 10 EntrySide: 50 SequenceNo: 1 EntryRate: 0.02209 } Instrument { MPSecID: 10000211151218000000 } 32 cd b7 90 00 21 d2 05 21 4e 01 00 00 a2 00 a1 05 00 00 00 00 00 00 00 00 a9 05 00 00 00 00 00 00 00 00 e8 2b 00 9a 40 3c a2 0c 15 32 30 31 35 30 36 32 33 2d 31 35 3a 32 34 3a 31 33 2e 33 32 30 f9 1f 00 00 00 00 00 00 00 00 81 20 00 00 00 00 00 00 00 00 88 20 31 a0 20 06 b1 20 00 00 00 00 00 00 00 00 9a 40 3c a2 0c 15 32 30 31 35 30 36 32 33 2d 31 35 3a 31 36 3a 32 34 2e 38 39 36 f9 1f b8 1e 85 eb 51 10 60 40 81 20 00 00 00 00 00 00 24 40 88 20 32 a0 20 01 b1 20 90 49 46 ce c2 9e 96 3f aa 40 0a 81 07 80 c0 3f 03 0f e3 c7 8a ----------------------------------------------############################################### (2) 1 Ask event (cancel 10 @ $128.51) ############################################### LEVEL 1 Incremental ----------------------------------------------[2015-06-23 15:25:44.144067] : channel =233.158.244.188:58008 SndTm =1435073144142 MsgType =49 Seq =201 Sz =76 MDEntry { TransactTime: "20150623-15:25:44.143" EntryPrice: 0 EntrySize: 0 EntrySide: 50 38
39) SequenceNo: 2 EntryRate: 0 } Instrument { MPSecID: 10000211151218000000 } 31 c9 00 00 00 4e 65 06 21 4e 01 00 00 4c 00 9a 40 3c a2 0c 15 32 30 31 35 30 36 32 33 2d 31 35 3a 32 35 3a 34 34 2e 31 34 33 f9 1f 00 00 00 00 00 00 00 00 81 20 00 00 00 00 00 00 00 00 88 20 32 a0 20 02 b1 20 00 00 00 00 00 00 00 00 aa 40 0a 81 07 80 c0 3f 03 0f e3 c7 8a ----------------------------------------------LEVEL 1 SSF Refresh ----------------------------------------------SndTm =1435073201658 MsgType =50 Seq =10440111 Sz =162 LastPx: 0 LastQty: 0 LastMessage: 0 MDEntry { TransactTime: "20150623-15:24:13.320" EntryPrice: 0 EntrySize: 0 EntrySide: 49 SequenceNo: 6 EntryRate: 0 } MDEntry { TransactTime: "20150623-15:25:44.143" EntryPrice: 0 EntrySize: 0 EntrySide: 50 SequenceNo: 2 EntryRate: 0 } Instrument { MPSecID: 10000211151218000000 } 32 af 4d 9f 00 fa 45 07 21 4e 01 00 00 a2 00 a1 05 00 00 00 00 00 00 00 00 a9 05 00 00 00 00 00 00 00 00 e8 2b 00 9a 40 3c a2 0c 15 32 30 31 35 30 36 32 33 2d 31 35 3a 32 34 3a 31 33 2e 33 32 30 f9 1f 00 00 00 00 00 00 00 00 81 20 00 00 00 00 00 00 00 00 88 20 31 a0 20 06 b1 20 00 00 00 00 00 00 00 00 9a 40 3c a2 0c 15 32 30 31 35 30 36 32 33 2d 31 35 3a 32 35 3a 34 34 2e 31 34 33 f9 1f 00 00 00 00 00 00 00 00 81 20 00 00 00 00 00 00 00 00 88 20 32 a0 20 02 b1 20 00 00 00 00 00 00 00 00 aa 40 0a 81 07 80 c0 3f 03 0f e3 c7 8a ----------------------------------------------- 39
40) 5.9 Corporate Event Packet Capture -------------------------------------------------11:01:00.648984 : PCAP: 233.158.244.10:51000 -------------------------------------------------PRODUCT_CATALOG Packet Length : 116 640ef000 006830fa 3e4e0100 2b00aa40 5fe90300 00000000 06083230 31353132 31388a06 80905f32 45db809d 90090198 0142ba0b 06474f4f 47324398 bc69da1c 06555343 415348da 4f47821d 06323130 303030ea 30303030 Header Length SndTm MsgType SequenceNo Size 006500e8 00594082 01308107 090eea0a 0c12d01c 1c04474f 1f063132 : 15 1435575660648 100 61454 101 Payload Length : 101 LastMessage: 0 Instrument { ContractMultiplier: 100 MaturityDate: "20151218" MaturityDateBack: "0" MPSecID: 11349312151218000000 ProductSubType: 1 ProductType: 14 SecuritySubType: "B" Symbol: "GOOG2C" TradingStatus: 18 PositionLimit: 13500 Underlying: "USCASH" Underlying: "GOOG" CloseTime: "210000" OpenTime: "120000" } -------------------------------------------------- 40
41) 6.0 GPB Templates Visit ftp://www.onechicago.com for relevant proto file template 6.1 Good Morning message GoodMorning { optional string TradeDate = 190; optional string Text = 186; } 6.2 Product Catalog message ProductCatalog { optional InstrumentGroup Instrument = 1029; optional string Symbol = 183; optional fixed64 MPSecID = 112; repeated string Underlying = 459; optional int32 ProductType = 147; optional string MaturityDate = 96; optional string MaturityDateBack = 97; optional string SecuritySubType = 173; optional int32 ProductSubType = 146; optional string OpenTime = 509; optional string CloseTime = 464; optional double StrikePrice = 454; optional double ContractMultiplier = 61; optional int32 PositionLimit = 458; optional int32 TradingStatus = 195; optional int32 LastMessage = 701; } 6.3 Exchange Summary message ExchangeSummary { optional InstrumentSummaryGroup InstrumentSummary = 1026; optional string Symbol = 183; optional string MaturityDate = 96; optional string SecurityType = 173; optional double HighPx = 442; optional int32 HighPxIndicator = 519; optional double LowPx = 444; optional int32 LowPxIndicator = 520; optional double ClosePx = 445; optional int32 ClosePxindicator = 521; optional double OpenPx = 443; optional int32 OpenPxIndicator = 522; optional double SettlePx = 446; optional double NetChangePx = 448; optional int32 BlockVolume = 451; optional int32 EFPVolume = 450; optional int32 SSFVolume = 523; optional int32 TotalVolume = 449; optional int32 OpenInterest = 452;optional string TradeDate = 190; optional int32 LastMessage = 701; } 41
42) 6.4 Market Data Refresh message MarketDataRefresh { optional InstrumentGroup Instrument = 1029; optional fixed64 MPSecID = 112; repeated MDEntryGroup MDEntry = 1026; optional int32 EntryType = 510; optional double EntryPrice = 511; optional double EntrySize = 512; optional int32 EntrySide = 513;; optional double EntryLegPriceNear = 514; optional double EntryLegPriceFar = 515; optional int32 SequenceNo = 516; optional fixed64 ReferenceID = 517; optional double EntryRate = 518; optional string TransactTime = 196; optional double NetChangePx = 448; optional double LastPx = 84; optional double LastQty = 85; optional int32 LastMessage = 701; } 6.5 Market Data Update message MarketDataUpdate { optional InstrumentGroup Instrument = 1029;6 optional fixed64 MPSecID = 112; repeated MDEntryGroup MDEntry = 1026; optional int32 EntryType = 510; optional double EntryPrice = 511; optional double EntrySize = 512; optional int32 EntrySide = 513;; optional double EntryLegPriceNear = 514; optional double EntryLegPriceFar = 515; optional int32 SequenceNo = 516; optional fixed64 ReferenceID = 517; optional double EntryRate = 518; optional string TransactTime = 196; optional double NetChangePx = 448; } 6.6 Market State Notification message MarketStateNotification { optional int32 UpdateType = 524; optional fixed64 NotificationTime = 801; optional int32 TradingStatus = 195; optional string Text = 186; optional int32 HaltReason = 700; optional InstrumentGroup Instrument = 1029; optional fixed64 MPSecID = 112; optional double ContractMultiplier } 42
43) 7.0 Dissecting the OCXdelta1 MPSecID OCXdelta1 utilizes proprietary Market Place Security ID’s (MPSecID) to identify tradable instruments. MPSecID’s are used in all trading, and market data on OCXdelta1. The construction of a MPSecID can be seen below. 7.1 Breakdown ID (max 83,999) | | Group ID | | | | Front Month Exp—(yymmdd) | | | | | | Back Month Exp—(yymmdd) | | | | v v v v 1xxxxx|xx|xxxxxx|xxxxxx ( 20 long ) Id values would correspond to product type ( i.e. AAPL1C/AAPL1D/ AAPL3H). Group id will distinguish the product subtype. Valid values: 11 = SSF 12 = Block 13 = EFP 21 = SSF spread 22 = block spread 7.2 Sample MPSecID breakdown MPSecID – 10000211140815000000 Id = 100002 – AAPL1C Group ID = 11 – SSF Front Month Exp = 140815 – August 15th, 2014 Back Month Exp = 000000 – No back month, not spread 43