Record Type 2 Messages

Specifications for Digital Data Feed: Record Type 2 Messages
Contact Us
Record Type 2 Messages
September 1, 2017 - Download as .txt file
Sub-Record 0: PriceTop
<soh>2<symbol>,<sub-record><stx><base><exchange ID><delay time><price>,<element><modifier><day/session><etx>
  • soh:1 = start of header
  • symbol:v = exchange symbol; v indicates variable length field;
  • stx:1 = start of text
  • base:1 = base code for quote
  • exchange ID:1 = exchange identifier
  • delay time:2 = exchange requirement for delayed data
  • price:v = live (or delayed) price; v indicates variable length field;
  • element:1 = price bate code (bid, ask, trade, etc.)
  • modifier:1 = price bate code modifier for open/high/low/last/close etc. Used to identify prices derived from bid or ask.
  • day/session:2 = message day and session identifier
  • etx:1 = end of text
Session is also used to indicate sale condition for stocks trades, and quote condition for stock bid/ask messages. For additional information please refer to Appendix A and Appendix B respectively.

- live price message
Sub-Record 5: Insert Message Last PriceTop
Exactly the same as Sub-Record 0, except generated by exchange insert message, and will normally be followed by a sub-record type 1 exchange refresh message.
Sub-Record 7: Trade Price, Trade Price SizeTop
<soh>2<symbol>,<sub-record><stx><base><exchange ID><delay time><price>, <size>,<day/session><etx>
Same as sub-record 0, except:
trade price:v,size:v = trade price, trade price size.

- live price message, comma delimited element and modifier are not required.
See Appendix A for special processing rules for stocks.
Sub-Record Z: Trade Price, Trade Price SizeTop
<soh>2<symbol>,<sub-record><stx><base><exchange ID><delay time><price>, <size>,<day/session><etx>  
Same as Sub-Record 0, except:
trade price:v,size:v = trade price, trade price size.

- live price message, comma delimited element and modifier are not required.
See Appendix A for special processing rules for stocks.
Sub-Record Z is the same as Sub-Record 7 but should not to be processed as a price record. Sub-Record Z is used to pass down volume on sale conditions (session) not intended to update the high, low or last values.
Futures:
OffMarketTradeType - session code 'U'
System priced leg - session code 'X'
Implied spread at open - session code 'V'
Block Trades - session code 'Z'
Sub-Record 8: Bid, BidSize, Ask, AskSizeTop
<soh>2<symbol>,<sub-record><stx><base><exchange ID><delay time><bid>, <size>,<ask>,<size>,<day/session><etx>
Same as sub-record 0, except:
bid:v,size:v,ask:v,size:v = live bid price, bid size, ask price, ask size.
- live price message, comma delimited element and modifier are not required.
See Appendix B for special processing rules for stocks.
Sub-Record 8 for stocks only applies to the best available bids and asks at the national level.
Sub-Record E: Bid, BidSize, Ask, AskSize (stocks only)Top
<soh>2<symbol>,<sub-record><stx><base><exchange ID><delay time><bid>, <size>,<ask>,<size>,<bbo><marketid><bidid><askid><day/session><etx>
Same as sub-record 0, except:
bid:v,size:v,ask:v,size:v = live bid price, bid size, ask price, ask size.
- live price message, comma delimited element and modifier are not required.
  • bbo:1 = national best bid offer indicator
  • marketid:1 = market center ID of the message
  • bidid:1 = market center ID of the national best bid
  • askid:1 = market center ID of the national best ask
Should this message have any effect on the national best bid or ask, it will automatically be preceding by a Sub-Record 8 message. This is reflected by the national best bid offer indicator.
See Appendix C for special processing rules for stocks.
Sub-Record A: Bid, BidSize, Ask, AskSize, Trade, TradeSize, CumulativeVolume Top
<soh>2<symbol>,<sub-record><stx><base><exchange ID><delay time><bid>, <size>,<ask>,<size>,<price>,<size>,<cumulative vol>,<day/session><etx>
Same as sub-record 0, except:
bid:v,size:v,ask:v,size:v,price:v,size:v,cumulative vol:v = live bid price, bid size, ask price, ask size, trade price, trade price size, cumulative volume.
- live price message, comma delimited element and modifier are not required.
Sub-Record 1: Exchange Generated Refresh Message Top
<soh>2<symbol>,<sub-record><stx><base><exchange ID><delay time>, <open>,<high>,<low>,<last>,<bid>,<ask>,<open2>,<prev>,<close>, <close2>,<settle>,<prev volume>,<prev open int>,<cur volume>,<day/session><etx>
Sub-Record 2-4: ddfplus Generated Refresh Messages Top
ddfplus generated refresh messages: record type 2, Sub-Record 2 - 4
Sub-Record 2: Updates additional data elements changed by live message.
Sub-Record 3: Cyclical database refresh for current active session(s).
Sub-Record 4: Cyclical database refresh for previous closed session(s).
<soh>2<symbol>,<sub-record><stx><base><exchange ID><delay time>,
<open>,<high>,<low>,<last>,<bid>,<ask>,<open2>,<prev>,<close>,
<close2>,<settle>,<prev volume>,<prev open int>,<cur volume>,<day/session><etx>
Cyclical database refresh messages are sent at least once every two hours for every contract inside our database that has traded that day.
Please refer to the commodities session codes and refresh messages sections for additional information on processing of refresh messages.
Sub-Record 6: Open, High, Low, Last MessageTop
<soh>2<symbol>,<sub-record><stx><base><exchange ID><delay time>,
<open>,<high>,<low>,<last>,<bid>,<ask>,<open2>,<prev>,<close>,
<close2>,<settle>,<prev volume>,<prev open int>,<cur volume>,<day/session><etx>
Sub-Record messages 1, 2, 3, 4 and 6 all use the same message structure. All price fields are variable length fields, and all prices should be treated as current live prices, but whereas Sub-Record 1, 2, 3 and 4 are true refresh messages, Sub-Record 6 messages should be treated and processed as live trade price messages.
  • cur volume:v = current volume for contract
  • prev volume:v = previous trading session volume for contract
  • prev open int:v = previous trading session open interest for contract
Previous volume and open interest records contain the previous trading days volume and open interest. Final volume and open interest for commodities is only available with the next trading day.
Current volume contains the current volume as published by the exchange when available.
Sub-Record 9: Market Condition MessageTop
<soh>2<symbol>,<sub-record><stx><base><exchange ID><delay time> <market condition>,<space><space><day/session><etx>
  • soh:1 = start of header
  • symbol:v =exchange symbol; v indicates variable length field;
  • stx:1 = start of text
  • base:1 = base code for quote
  • exchange ID:1 = exchange identifier
  • delay time:2 = exchange requirement for delayed data
  • market condition:1=market condition indicator
  • day/session:2 = message day and session identifier
  • etx:1 = end of text
The base code is set to '*' for Market Condition Message for all securities.
Note: symbol can be for specific stock or commodity or specific contract month, indicating that the condition applies to a stock, a commodity or a specific commodity contract. If the symbol applies for all contracts within a commodity, ddf will append an '*' to the end of the symbol.
Example:

CN8 - Corn July 2008
C* - Corn All contracts
C - CitiGroup, Inc
Market condition indicator
  • A = trading halt;
  • B = trading resumption;
  • C = quotation resumption; (1)
  • E = end fast market; (2)
  • F = fast market; (2)
  • L = late market; (2)
  • M = end late market; (2)
  • P = post suspension/close/settle session; (2)
  • Q = end post suspension/close/settle session; (2)
  • 1 = opening delay (3)
  • 4 = no open/no resume (3)
  • 0 = No reg SHO Short Sale Price Restriction (4)
  • 9 = Reg SHO Short Sale Price Restriction is in effect (4)
  • 2 = Reg SHO Short Sale Price Restriction remains in effect (4)
(1) - Nasdaq only
(2) - Futures only
(3) - Nyse/Amex only
(4) - Nasdaq only
Currently ddf does not transmit the reason code for the market condition, however we have left the 2 bytes <space><space>deliberately empty so we can add this information to the feed at a later date, without disruption to our current users.
Sub-Record F: Market Symbol Message Top
<soh>2<symbol>,<sub-record><stx><base><exchange ID><delay time>,<security name>,<exc><fsi><space><space><day/session><etx>
  • soh:1 = start of header
  • symbol:v =exchange symbol; v indicates variable length field;
  • stx:1 = start of text
  • base:1 = base code for quote
  • exchange ID:1 = exchange identifier
  • delay time:2 = exchange requirement for delayed data
  • security name:v = "security name as passed down by exchange"
  • exc:1 = q - Nasdaq Global Select Market, g - Nasdaq Global Market, s - Nasdaq Capital Market
  • fsi:1 = financial status indicator
  • day/session:2 = message day and session identifier
  • etx:1 = end of text
The base code is set to '*' for Market Symbol Message for all securities.
Currently this message is only utilized for Nasdaq Securities. The exc identifier is the only notification of whether a security is a Nasdaq capital market issue.
The financial status indicator.
For Nasdaq securities the allowable values will be as follows: (Code and Description)
  • C: Creations and/or Redemptions Suspended for Exchange Traded Product
  • D Deficient: Issuer Failed to Meet NASDAQ Continued Listing Requirements
  • E Delinquent: Issuer Missed Regulatory Filing Deadline
  • Q Bankrupt: Issuer Has Filed for Bankruptcy
  • N Normal (Default): Issue is not currently deficient, delinquent, or bankrupt.
  • G: Deficient and Bankrupt
  • H: Deficient and Delinquent
  • J: Delinquent and Bankrupt
  • K: Deficient, Delinquent, and Bankrupt
For NYSE/AMEX securities the allowable values will be as follows:

1: Bankrupt
2: Below continuing listing standards
3: Bankrupt & below continuing listing standards
4: Late filing
5: Bankrupt & late filing
6: Below continuing listing standards & late filing
7: Bankrupt, below continuing listing standards & late filing
8: Creations and/or Redemptions Suspended for Exchange Traded Product

If the code is blank then the message contains no information on the financial status of the security.