Direct Edge XPRS API Manual V 1.30
User Manual: Pdf
Open the PDF directly: View PDF .
Page Count: 49
Download | ![]() |
Open PDF In Browser | View PDF |
Edge XPRS Specifications (High Performance API) Version 1.30 June 10, 2013 Produced by: Direct Edge 545 Washington Blvd, Jersey City NJ 07310 www.directedge.com Direct Edge API Specifications for Equities 3 Table of contents Chapter 1 About this Document............................................................................................... 5 1.1 Summary of Changes ....................................................................................................... 5 Chapter 2. Overview ................................................................................................................... 9 2.1 Hours of Operation ........................................................................................................... 9 2.2. Contact Information ........................................................................................................... 9 2.3. Connectivity and Testing ................................................................................................... 9 Chapter 3. Message Exchange Protocol ................................................................................ 10 3.1 Packages......................................................................................................................... 10 3.2. Login................................................................................................................................ 10 3.3. Package Sequence ......................................................................................................... 10 3.4. Heartbeats ....................................................................................................................... 11 3.5. End of Session ................................................................................................................ 11 3.6. Data Types ...................................................................................................................... 11 3.7. Summary of MEP Messages........................................................................................... 11 3.8. MEP Message Formats................................................................................................... 12 Chapter 4. Order Types Supported by the API ...................................................................... 15 4.1. Enter Order –Short and Extended Format ...................................................................... 15 Chapter 5 Direct Edge Order API ........................................................................................... 17 5.1 API Architecture .............................................................................................................. 17 5.2 Data Types ...................................................................................................................... 17 5.3 Supported Messages ...................................................................................................... 17 5.4 Message Formats ........................................................................................................... 22 Chapter 6 Appendices ............................................................................................................. 49 6.1 Appendix A: Direct Edge Symbology .............................................................................. 49 6.2 Appendix B: Lock/Cross Re-Pricing Options .................................................................. 50 4 Direct Edge API Specifications for Equities Chapter 1 About this Document This document provides guidelines for accessing all of the Direct Edge Stock Exchange platforms. It contains information regarding API connectivity and provides formats for submitting orders to the EDGX Exchange and EDGA Exchange. 1.1 Summary of Changes A history of significant changes to this template is described in the table below. Issue Prepared By Date Changes 1.0 Bill Ciabattoni Sept 22, 2009 First Version 1.1 Bill Ciabattoni Oct 8, 2009 • Section 3.8: • Login Request – Increased Requested Sequence Number message length to 20 from 12. • Login Accepted - Increased Sequence Number message length to 20 from 12. • Section 5.4: • Reject reason code “P” added. • Added Super Aggressive and Aggressive options to Routing Instructions field. 1.2 Bill Ciabattoni Jan 22, 2010 Change made to End of Session message in Sections 3.5, 3.7, and 3.8. 1.3 Bill Ciabattoni Feb 12, 2010 Section 5.4: Corrected inaccurate offset values in “Replaced Message”. 1.4 Bill Ciabattoni March 25, 2010 Section 3.8: Removed “A message with zero length is a special end of session marker” from Sequenced and Un-Sequenced Data message descriptions. Section 5.4: Removed reference to fee schedule and added actual liquidity flags in the Liquidity Flag field for the Executed Order message description. 1.5 Bill Ciabattoni April 16, 2010 Section 3.2: Updated to state “Authentication of the Login Request message only requires Username. The password will be ignored at this time.” Section 4.1: Updated list of functionality supported and not supported by High Performance API. Section 5.4: Corrected Liquidity Flag field in Execution Message to Alpha-numeric. Added IOC to all Directed ISO strategy descriptions in Enter Order-Extended Format and Accepted Message- Extended Format. Direct Edge API Specifications for Equities 5 1.6 Bill Ciabattoni April 26, 2010 1.7 Bill Ciabattoni July 6, 2010 1.8 Bill Ciabattoni Sept 1, 2010 1.9 Bill Ciabattoni Oct 1, 2010 1.10 Bill Ciabattoni Jan 3, 2011 Section 5.4: Added “For all Directed ISO strategies Inter-market Sweep Eligibility must equal “Y” and Time in Force must equal “0” (IOC), or the order will be rejected” to Route Strategy description in Enter Order – Extended Format message. Section 5.4: Added new “Z” value to “Display” field in Accepted Message – Short and Extended Formats. • Auction process named Competition for Price SM Improvement (CPI) • Dark Ping process named Comprehensive SM Liquidity Check (CLC) • Section 5.4: o Updated description on Max Floor field to indicate the zero may be entered when not sending a Reserve Order. o Updated Discretionary Offset to indicate that sign will be ignored. Sell Short Exempt added. Effective upon launch of new SS Circuit Breakers on November 10, 2010. • Directed ISO Strategy (ISBY) added for BATS “Y” Exchange. Effective upon launch of BYX. Section 5.4: • • Added Anti-Internalization Modifier Message • Added AI Additional Info Message Please note that above changes will be live on EDGA on 1/10/2011 and EDGX on 1/18/2011. 1.11 1.12 1.13 Bill Ciabattoni Bill Ciabattoni Bill Ciabattoni Jan 20, 2011 Feb 1, 2011 Feb 3, 2011 1.14 Bill Ciabattoni Feb 24, 2011 1.15 Bill Ciabattoni Mar 29, 2011 Section 5.4: • Added SWPA, SWPB, IOCM, and ICMT strategies to Extended Order Enter Message and Accepted Extended Order Message. • Added “SW” Liquidity Flag to Executed Order Message. Section 5.4: • Added “RT” and “RX” Liquidity Flags to Executed Order Message. • Updated description of “K” Liquidity Flag in Executed Order Message. • Updated description of “Z” Liquidity Flag in Executed Order Message. Section 5.4: • Added ROOC and ROBY strategies to Extended Order Enter Message and Accepted Extended Order Message. • Added 8, 9, BY, CL, and DM Liquidity Flags to Executed Order Message. • Added “D” value to Special Order Type field in for Midpoint Discretionary Order Section 5.4: • 6 CPI removed from all routing strategies. Section 5.4: Direct Edge API Specifications for Equities • 1.16 Bill Ciabattoni May 9, 2011 ROUT, ROUD, ROUZ, ROUE, ROOC, and RDOT strategies updated to include Select CLCs and/or Low Cost venues as possible destinations. Section 5.4: • ROBB, ROCO, and SWPC strategies added to Extended Order Enter Message and Accepted Extended Order Message. 1.17 Bill Ciabattoni June 28, 2011 • Updated Route Out Eligibility field in Order Enter and Extended Order Enter message to state that Post Only orders marked HideNotSlide or Hidden may be executed as a Taker if price improved on EDGX; Post Only instructions may not be included on Hidden orders or Odd Lot orders on EDGA; Post Only Discretionary orders executed in their discretionary range will be charged the Hidden order rate on EDGA. Live date August 1, 2011. 1.18 Bill Ciabattoni July 12, 2011 • Updated Route Out Eligibility field in Order Enter and Extended Order Enter message descriptions to reflect changes for 15c3-5 compliance. 1.19 Bill Ciabattoni July 22, 2011 • Updated Route Out Eligibility field in Order Enter and Extended Order Enter messages to state that Post Only may not be included on Discretionary Orders on EDGA. Live date August 1, 2011. 1.20 Bill Ciabattoni Sept 29, 2011 • Added PI and RR Liquidity Flags in the Executed Order Message 1.21 Bill Ciabattoni Jan 30, 2012 • Reject Message can now be sent in response to a Cancel Message. • Added new value “b” (Post to EDGX for orders originating on EDGA) to Route Out Eligibility field in Enter Order Message. 1.22 Bill Ciabattoni Feb 29, 2012 • Added several new Liquidity Flags in the Executed Order Message 1.23 Bill Ciabattoni Mar 20, 2012 • Added RMPT Routing Strategy to Enter Order Messages. • Added Post to Away Destinations to Route Out Eligibility field in Enter Order Messages. 1.24 Bill Ciabattoni May 1, 2012 • Added BB Liquidity Flag in the Executed Order Message. 1.25 Bill Ciabattoni June 26, 2012 • Added new value in Special Order Type field for Midpoint Discretionary Order. • Added RQ, DM, and DT Liquidity Flags to the Executed Order Message. • Added new “Displayed with Attribution” value to Displayed field. Expected live date is Sept 2012. 1.26 Bill Ciabattoni June 28, 2012 • Added new Reject Reason Codes A, H, and I. 1.27 Bill Ciabattoni Sept 4, 2012 • Added value in Special Order Type field for Route Peg Order. • Added “RP” liquidity flag for Route Peg Orders to Executed Order Message. Direct Edge API Specifications for Equities 7 8 • Removed Post to CHX option from Route Out Eligibility field. • Removed “RM” liquidity flag from Executed Order Message. 1.28 Bill Ciabattoni Dec 6, 2012 • Added new Reject Reason Code R. 1.29 Bill Ciabattoni April 15, 2013 • Added optional Extended Reject Message format 1.30 Bill Ciabattoni June 10, 2013 • Added new value in Special Order Type field for NBBO Offset Peg (Market Maker Peg) • Updated “Replace Order” description to state that decrementing quantity will not generate a new timestamp. • Updated Liquidity Flag field to include ZA and ZR flags. Direct Edge API Specifications for Equities Chapter 2. Overview 2.1 Hours of Operation EDGX and EDGA Exchanges Session Start Time End Time Begin Order Acceptance – Pre-Market Orders 6:00 AM 8:00 AM 6:00 AM 9:30 AM Pre-Market Session 8:00 AM 9:30 AM Regular Trading Session 9:30 AM 4:00 PM Post Market Session 4:00 PM 8:00 PM Session Start Time End Time Begin Order Acceptance 6:00 AM 9:30 AM 9:30 AM 4:00 PM (Pre-Market orders will be accepted but will not begin trading until 8:00 AM.) Begin Order Acceptance – Regular Session Orders (Regular Session orders will be accepted but will not begin trading until 9:30 AM.) MidPoint Match Dark Pool (MidPoint Match orders will be accepted but will not begin trading until 9:30 AM.) Regular Trading Session 2.2. Contact Information Department Email Address Phone Market Operations/FIX Support decs@directedge.com 201-942-8220 Sales sales@directedge.com 866-472-5267 Finance and Billing billing@directedge.com 201-942-8247 2.3. Connectivity and Testing New order routing connections must pass certification testing before they are permitted to enter the production marketplace. Please call 201-942-8220 for more information. Direct Edge API Specifications for Equities 9 Chapter 3. Message Exchange Protocol Direct Edge has developed a lightweight point-to-point protocol, built on top of TCP/IP sockets. It is identified as the Message Exchange Protocol (MEP). The MEP is used in systems when a server needs to deliver a logical stream of sequenced messages to a client application. MEP also supports the sending of unsequenced messages. Sequenced messages are recoverable after a socket disruption but unsequenced messages are not. The MEP itself has no true business functionality. It is a session level protocol and transport built to carry higher-level application messages. The MEP client and server communicate by exchanging a series of logical packages. 3.1 Packages Each MEP logical package has: • • • Two byte big-endian length that indicates the length of the rest of the packet (meaning the length of the payload plus the length of the packet type – which is 1) Single byte header which indicates the package type. Variable length payload. 3.2. Login The MEP also includes a simple scheme that allows the server to authenticate the client upon login. Authentication of the Login Request message only requires Username. The password will be ignored at this time. 3.3. Package Sequence A MEP connection begins with the client opening a TCP/IP socket to the server and sending a Login Request Package. If the Login Request is valid, the server responds with a Login Accepted Package and begins sending Sequenced Data Packages. The connection continues until the TCP/IP socket is broken. Each Sequenced Data Package carries a single, higher-level protocol message. Sequenced Data Packages do not contain an explicit sequence number; instead both client and server compute the sequence number locally by counting messages as they go. The sequence number of the first sequenced message in each session is always 1. Typically, when initially logging into a server, the client will set the Requested Sequence Number field to 1 and leave the Requested Session field blank in the Login Request Package. The client will then inspect the Login Accepted Package to determine the currently active session. Starting at 1, the client begins incrementing its local sequence number each time a Sequenced Data Package is received. If the TCP/IP connection is ever broken, the client can then re-log into the server indicating the current session and its next expected sequence number. Clients send messages to the server using Unsequenced Data Packages. Messages may be sent at any time after the Login Accepted Package is received. These messages may be 10 Direct Edge API Specifications for Equities lost during TCP/IP socket connection failures. The higher level application protocol must handle this. 3.4. Heartbeats MEP uses logical heartbeat packages to quickly detect link failures. The server must send a Server Heartbeat Package anytime more than 1 second has passed since the server last sent any data. This ensures that the client will receive data on a regular basis. If the client does not receive anything (neither data nor heartbeats) for an extended period of time, it can assume that the link is down and attempt to reconnect using a new TCP/IP socket. Similarly, once logged in, the client must send a Client Heartbeat Package anytime more than 1 second has passed since the client last sent anything. If the server doesn't receive anything from the client for an extended period of time, it can close the existing socket and listen for a new connection. Direct Edge waits for 15 missed heartbeats (15 seconds) before it drops the connection. 3.5. End of Session The server indicates that the current session has terminated by sending the End of Session message. This indicates that there will be no more messages contained in this session. The client will have to reconnect and re-login with a new Session ID to begin receiving messages for the next available session. 3.6. Data Types The data types are: o Character and Alphanumeric data fields are standard ASCII bytes padded on the right with spaces. o Integer fields are binary in big-endian format. o Non applicable Alpha fields should be filled with spaces to match the proper field length. o Non applicable Integer fields should be filled with zeros to match the proper field length. 3.7. Summary of MEP Messages The table below shows the origin and sequence of packages. Message From Client From Server Login Request Login Accepted Notes The MEP client must send a Login Request Package immediately upon establishing a new TCP/IP socket connection to the server. The server can terminate an incoming TCP/IP socket if it does not receive a Login Request Package within a reasonable period of time (typically 30 seconds). The MEP server sends a Login Accepted Package in response to receiving a valid Login Request from the client. This package will always be the first non-debug package sent by the server after a successful Login Request. Direct Edge API Specifications for Equities 11 Login Reject The MEP server sends this package in response to an invalid Login Request Package from the client. The server closes the socket connection after sending the Login Reject Package. This is the only non-Debug Package sent by the server in the case of an unsuccessful login attempt. This package is a container that carries the higher level application messages from the client to the server. Up to 100 messages may be included in a single, unsequenced package. These messages are not sequenced and may be lost in the event of a socket failure. Unsequenced Data Sequenced Data Client Heartbeat Server Heartbeat Debug Debug Logout Request End of Session The higher-level protocol must be able to handle these lost messages in the case of a TCP/IP socket connection failure. This package is a container that carries the higher level application messages from the server to the client. The sequence number of each message is implied; the initial sequence number of the first Sequenced Data Package for a given TCP/IP connection is specified in the Login Accepted Package and the sequence number increments by 1 for each Sequenced Data Package transmitted. Since MEP logical packages are carried via TCP/IP sockets, the only way logical packages can be lost is in the event of a TCP/IP socket connection failure. In this case, the client can reconnect to the server and request the next expected sequence number and pick up where it left off. The client should send a Client Heartbeat Package anytime more than 1 second passes where no data has been sent to the server. The server can then assume that the link is lost if it does not receive anything for an extended period of time. The server should send a Server Heartbeat Package anytime more than 1 second passes where no data has been sent to the client. The client can then assume that the link is lost if it does not receive anything for an extended period of time. A Debug Package can be sent by either side of the MEP connection at anytime. Debug Packages should be ignored by both client and server application software. See above. The client may send a Logout Request Package to request the connection be terminated. Upon receiving a Logout Request Package, the server will immediately terminate the connection and close the associated TCP/IP socket. The server indicates that the current session has terminated by sending an End of Session message. This indicates that there will be no more messages contained in this session. 3.8. MEP Message Formats Message Login Request 12 Field Package Length Package Type Username Offset Length 0 2 2 1 3 6 Password Requested Session 9 10 19 10 Value Integer Notes Number of bytes after this field until the next package "L" Alphanumeric Username. Case insensitive. Alphanumeric Alphanumeric Password. Case insensitive. Specifies the session or all blanks for the currently active session. Direct Edge API Specifications for Equities Message Login Accepted Field Requested Sequence Number Package Length Package Type Session Offset Length 29 20 0 2 2 1 3 10 Sequence Number Login Rejected Package Length Package Type Reject Reason Code Unsequenced Data Server Heartbeat Client Heartbeat Package Length Package Type Message Package Length Package Type Message Package Length Package Type Package Length Package Type Integer 13 20 0 2 2 1 Alphanumeric Integer The session ID of the session that is now logged into. The sequence number of the next Sequenced Message to be sent. Note that this field is expressed in ASCII format. (Left padded with spaces) Number of bytes after this field until the next package "J" Alpha Login Reject Codes Reason codes: “A” = Not Authorized. Invalid username and password combination. 1 0 2 2 1 Integer 3 N 0 2 2 1 Integer N 0 2 2 1 0 2 2 1 Defined by a higher-level protocol. May contain a combination of ASCII and binary data. Number of bytes after this field until the next package "U" All 3 “S” = Session not available. The Requested Session in the Login Request Package was either invalid or not available. Number of bytes after this field until the next package "S" All Direct Edge API Specifications for Equities Notes Specifies the next sequence number in 0 to start receiving the most recently generated message. Note that this field is expressed in ASCII format. (Left padded with spaces) Number of bytes after this field until the next package "A" Numeric 3 Sequenced Data Value Numeric Integer Defined by a higher-level protocol. May contain a combination of ASCII and binary data. Number of bytes after this field until the next package "H" Integer Number of bytes after this field until the next package "R" 13 Message Logout Request Debug End of Session 14 Field Package Length Package Type Package Length Package Type Text Package Length Package Type Offset Length 0 2 2 1 0 2 0 1 1 N 0 2 2 1 Value Integer Notes Number of bytes after this field until the next package "O" Integer Number of bytes after this field until the next package "+" Alphanumeric Integer Free form human readable text. Number of bytes after this field until the next package “Z” Direct Edge API Specifications for Equities Chapter 4. Order Types Supported by the API 4.1. Enter Order –Short and Extended Format The table below describes the order types and instructions that are available on the Enter Order Short Format and the Enter Order – Extended Format messages. Order Type/Instruction Enter Order – Short Format Enter Order - Extended Format Market Orders No No Limit Orders Yes Yes Symbols with Suffixes No Yes Full Routing Capabilities No Yes IOC Yes Yes FOK Yes Yes Day Yes Yes Good Till Time (GTT) No Yes ISO Yes Yes ISO Post Only Yes Yes Hidden Orders Yes Yes MidPoint Match (EDGX only) Yes Yes Yes Yes Midpoint Pegged Orders (EDGA only) Yes Yes Midpoint Discretionary Orders Yes Yes Primary Pegged Orders No Yes Market Pegged Orders No Yes Pegged Discretionary Orders No Yes Absolute Limit on Pegged Discretionary Orders No No Minimum Execution Quantity – All Executions No Yes Minimum Execution Quantity – First Execution Only No No Re-Pricing Options: • Hide Not Slide • Price Adjust • Single Re-Price • Cancel Back Direct Edge API Specifications for Equities 15 Reserve Orders No Yes Random Replenish on Reserve Orders No No Discretionary Orders No Yes 16 Direct Edge API Specifications for Equities Chapter 5 Direct Edge Order API Direct Edge Order API is a simple protocol that allows Direct Edge participants to enter orders, cancel existing orders, and receive executions. 5.1 API Architecture The Direct Edge Order API protocol is composed of logical messages passed between the Direct Edge Order API host and the client application. The Message Exchange Protocol (MEP) is used for session management and transport. Each message type has a fixed message length. Messages may contain ASCII and binary data. All messages sent from the Direct Edge Order API host to the client are sequenced and their delivery is ensured by the MEP. Messages sent from the Direct Edge Order API client to the host are inherently nonguaranteed, even if they are carried by a lower level protocol that guarantees delivery (like TCP/IP sockets). Therefore, all host-bound messages are designed so that they can be resent for robust recovery from connection and application failures. Each physical Direct Edge Order API host port is bound to a Direct Edge assigned logical Direct Edge Order API Account. On a given day, every order entered on Direct Edge Order API is uniquely identified by the combination of the logical Direct Edge Order API Account and the participant created Token field. The Direct Edge Order API is designed to offer high performance under very demanding conditions. Performance can be increased further by batching multiple messages in a single, unsequenced MEP package. Up to 100 messages may be placed in a single unsequenced MEP package. 5.2 Data Types All integer fields are expressed in unsigned, big-endian binary format. All signed integer fields are expressed in two’s complement, big-endian binary format. Alpha fields are left-justified and padded on the right with spaces. Prices are 4 byte integer fields. Prices contain 5 whole number digits followed by 5 decimal digits. For example, a price of $21.57 expressed in the API integer format would be 2157000. The maximum price allowable is through the API is $42949.67296. Timestamp fields (8 bytes) are given in microseconds past midnight Eastern Time. 5.3 Supported Messages Message From Direct Edge From Member Direct Edge API Specifications for Equities Notes 17 Enter Order (Short Format) The Enter Order message lets you enter a new order into Direct Edge. Each new order must have a Token that is unique to the day and that logical Direct Edge API account. If you send a valid order, you should receive an Accepted Order message. If you send an Enter Order message with a previously used Token, the new order will be ignored. Enter Order (Extended Format) The Enter Order Extended message lets you enter a new order into Direct Edge for a symbol having a suffix. It also allows the use of additional order types and instructions that are not available in the short format message. Each new order must have a Token that is unique to the day and that logical Direct Edge API account. If you send a valid order, you should receive an Accepted Order message. If you send an Enter Order message with a previously used Token, the new order will be ignored. Suffixes are entered into the Stock Suffix field in the record that has been added as the last field in this message. Accepted Message (Short Format) An Accepted message acknowledges the receipt and acceptance of a valid Enter Order message. The data fields from the Enter Order message are echoed back in the Accepted message. Note that the accepted values may differ from the entered values for some fields. You will always receive an Accepted message for an order before you get any Canceled Order messages or Executed Order messages for the order. Accepted Message (Extended Format) An Extended Accepted message acknowledges the receipt and acceptance of a valid Enter Order Extended message. The data fields from the Enter Order Extended message are echoed back in the Extended Accepted message. Note that the accepted values may differ from the entered values for some fields. You will always receive an Extended Accepted message for an order before you get any Canceled Order messages or Executed Order messages for the order. Executed Order 18 An Executed Order message informs you that all or part of an order has been executed. Direct Edge API Specifications for Equities Rejected Message A Rejected message may be sent in response to an Enter Order, Cancel, or Replace message if it cannot be accepted at this time. The reason for the rejection is given. No further actions are permitted on this order. The Token of a rejected order cannot be re-used. Cancel Order The Cancel Order message is used to request that an order be canceled or reduced. In the Cancel Order message, you must specify the new "intended order size" for the order. The "intended order size" is the maximum number of shares that can be executed in total after any partial executions and the cancel are applied. To cancel the entire balance of an order, you would enter a Cancel Order message with a Shares field of zero. Note that the only acknowledgement to a Cancel Order message is the resulting Canceled Order message. Any superfluous Cancel Order messages will trigger a Reject Message with reason code = “I” (Order Not Found). This includes, non-active orders that have already been filled or canceled. Canceled Message A Canceled message informs you that an order has been reduced or canceled. This could be acknowledging a Cancel Order message or it could be the result of an order time out or automatic cancel. Note that a Canceled message does not necessarily mean the entire order is dead. Some portion of the order may still be alive. Cancel Pending A Cancel Pending message is sent in response to a Cancel Order request that cannot be immediately processed due to a route out. The cancel instructions will be applied to any unexecuted portion of the order when it returns from the away market destination. After receiving the Cancel Pending, you may still receive executions on the order. If the entire quantity is executed, you will not get a canceled message. If only part of the order is executed, you will receive a cancel message for the remaining balance. Direct Edge API Specifications for Equities 19 Replace Order The Replace Order message allows you to alter the quantity and price of an existing order in a single message. Replacing an order with a larger quantity or new price will create a new timestamp for the order. Orders that are decremented to a smaller quantity will retain their timestamp. Any superfluous Replace Order messages will trigger a Reject Message with reason code = “I” (Order Not Found). This includes, non-active orders that have already been filled or canceled. Replaced Message A Replaced message informs you that a Cancel Replace message has been processed. Replace Pending A Replace Pending message is sent in response to a Replace Order request that cannot be processed due to a route out. The replace instructions will be applied to any unexecuted portion of the order when it returns from the away market destination. Important Note: When a replace is pending, no other order modifications can be made until it has been replaced or executed. All subsequent replace requests will be rejected until the first request is completed. System Event System Event messages signal events that affect the entire Direct Edge system. Broken Trade A Broken Trade message informs you that an execution has been broken. The trade is no longer good and will not clear. The reason for the break is given. You will always get an Executed Order message prior to getting a Broken Trade message for a given order/execution. Price Correction A Price Correction message informs you that an execution has been price-corrected. You will always get an Executed Order message prior to getting a Price Correction message for a given order/execution. AntiInternalization Modifier 20 The Anti-Internalization Modifier can be included in the unsequenced data package if the user wants to control AI instructions at the Order Level. The orders processed in this envelope will use the supplied Anti-Internalization Modifier from the envelope. Within the same envelope, members can include more than one Anti-Internalization Modifier that will impact all subsequent orders. Direct Edge API Specifications for Equities AI Additional Info Message The AI Additional Information Message provides members with information about the order that was canceled due to Anti-Internalization instructions. This is an optional message that members can choose to receive or they can just receive the Canceled Message, or both messages. If the member chooses to receive both messages, the AI Additional Information Message will immediately follow the Canceled Message, there will be no messages sent in between. Direct Edge API Specifications for Equities 21 5.4 Message Formats Message Enter Order – Short Format Name Type Offset 0 Len 1 Value “O” Order Token 1 14 Alphanumeric Buy/Sell Indicator 15 1 Alpha Quantity Symbol Price 16 20 26 4 6 4 Integer Alpha Integer Time in Force 30 1 Integer Display 31 1 Alpha (from Member) Notes Identifies this message as an Enter Order – Short Format message type. The Short Format of this message allows for less order type features than the Extended Format message. This is a free-form, alphanumeric field. You can enter any information you like. Token must be day-unique for each Direct Edge API account. Token is case sensitive, but mixing uppercase and lower-case Tokens is not recommended. “B” = Buy order “S” = Sell order "T" = Sell Short – Client affirms ability to borrow securities. “E” = Sell Short Exempt – Client affirms ability to borrow. “X” = Sell Short/SS Exempt – Client does not affirm ability to borrow securities. (Results in rejection of the order.) Total number of shares Stock Symbol The limit price of the order. The price is a 5 digit whole number followed by a 5 decimal digits. The values for Time in Force are: 0 = Immediate or Cancel 1 = Day 2 = Fill or Kill “Y” = Displayed “N” = Hidden “A” = Displayed with Attribution* * Expected live date September 2012 22 Direct Edge API Specifications for Equities Message Name Offset Len Value Notes 32 1 Alpha “M”= MidPoint Match EDGX/ MidPoint Peg EDGA “D” = Midpoint Discretionary Order – EDGA Only* “U” = Route Peg Order Special Order Type “N” = NBBO Offset Peg (Market Maker Peg) Re-Pricing Options: “S” = Hide Not Slide “P” = Price Adjust “R” = Single Re-Price “C” = Cancel Back (See Appendix B for details on Re-Pricing options.) *Midpoint Discretionary Orders require a “Y” in the Display field. Extended Hrs Eligible 33 1 Alpha Capacity 34 1 Alpha Route out Eligibility 35 1 Alpha Enter a space for this field if not applicable. “R” = Regular Session Only “P” = Pre-Market and Regular Session Eligible “A” = Regular Session and Post-Market Eligible “B” = All Sessions Eligible “A” = Agency “P” = Principal “R” = Riskless Principal “Y” = Routable (ROUT strategy only)** “N” = Book Only*** “P” = Post-Only*&*** “S” = Super Aggressive Cross or Lock (Order will be removed from book and routed to any quote that is crossing or locking the order) “X” = Aggressive - Cross only (Order will be removed from book and routed to any quote that is crossing) a = Post to EDGA (for orders originating from EDGX, ROUT, ROUX, ROUE only) b = Post to EDGX for orders originating on EDGA (for ROUT, Direct Edge API Specifications for Equities 23 Message Name Offset Len Value Notes ROUD, ROUE, ROUX, ROUZ, ROUQ, RDOT, RDOX, ROPA, ROBA, ROBX, ROBY, ROBB, ROCO, ROLF, INET, IOCT, IOCX, IOCM, ICMT only) c = Post to NYSE Arca (ROUT, ROUX, ROUE only) d = Post to NYSE (ROUT, ROUX, ROUE only) e = Post to NASDAQ (ROUT, ROUX, ROUE only) f = Post to NASDAQ OMX BX (ROUT, ROUX, ROUE only) g = Post to NASDAQ OMX PSX (ROUT, ROUX, ROUE only) h = Post to BATS BYX (ROUT, ROUX, ROUE only) i = Post to BATS BZX (ROUT, ROUX, ROUE only) j = Post to LavaFlow (ROUT, ROUX, ROUE only) k = Post to CBSX (ROUT, ROUX, ROUE only) l = Post to AMEX (ROUT, ROUX, ROUE only) n = Post to NSX (ROUT, ROUX, ROUE only) (Use the Enter Order Extended Format to enter routing strategies other than ROUT) Enter a space for this field if not applicable. *Post Only orders marked HideNotSlide or Hidden may be executed as a Taker if price improved on EDGX. Post Only instructions may not be included on Hidden Orders, Discretionary Orders, or Odd Lot quantities on EDGA. **All routing strategies are subject to erroneous checks pursuant to 15c3-5 compliance. ***Book Only and Post Only orders are not subject to erroneous checks pursuant to 15c3-5 compliance. Inter-market 24 36 1 Alpha “Y” = ISO Eligible Direct Edge API Specifications for Equities Message Name Sweep (ISO) Eligibility Offset Len Value Notes “N” = Not ISO Eligible Enter Order – Extended Format Type 0 1 “N” 1 14 Alphanumeric Buy/Sell Indicator 15 1 Alpha Quantity 16 4 Integer Identifies this message as an Enter Order - Extended Format message type. This is an alternative to the Enter Order - Short Format message. It is to be used when additional order type functionality is needed that is not supported in the Short Format message. This is a free-form, alphanumeric field. You can enter any information you like. Token must be day- unique for each Direct Edge API account. Token is case sensitive, but mixing uppercase and lower-case Tokens is not recommended. “B” = Buy order “S” = Sell order "T" = Sell Short – Client affirms ability to borrow securities. “E” = Sell Short Exempt – Client affirms ability to borrow. “X” = Sell Short/SS Exempt – Client does not affirm ability to borrow securities. (Results in rejection of the order.) Total number of shares entered Order Token Symbol Price 20 26 6 4 Alpha Integer Time in Force 30 1 Integer (from Member) Stock Symbol The limit price of the order. The price is a 5 digit whole number followed by a 5 decimal digits. The values for Time in Force are: 0 = Immediate or Cancel 1 = Day 2 = Fill or Kill 3 = Good Till Time For Good Till Time, Expire Time must also be populated. Direct Edge API Specifications for Equities 25 Message Name Display Offset 31 Len 1 Value Alpha Notes “Y” = Displayed “N” = Hidden “A” = Displayed with Attribution* * Expected live date September 2012 Special Order Type 32 1 Alpha “M”= MidPoint Match EDGX/ MidPoint Peg EDGA “D” = Midpoint Discretionary Order – EDGA Only* “U” = Route Peg Order “N” = NBBO Offset Peg (Market Maker Peg) “X” = Primary Peg “Y” = Market Peg Re-Pricing Options: “S” = Hide Not Slide “P” = Price Adjust “R” = Single Re-Price “C” = Cancel Back (See Appendix B for details on Re-Pricing options.) *Midpoint Discretionary Orders require a “Y” in the Display field. Ignored for routable orders. Enter a space for this field if not applicable. 26 Extended Hrs Eligible 33 1 Alpha Capacity 34 1 Alpha Route out Eligibility 35 1 Alpha “R” = Regular Session Only “P” = Pre-Market and Regular Session Eligible “A” = Regular Session and Post-Market Eligible “B” = All Sessions Eligible “A” = Agency “P” = Principal “R” = Riskless Principal “Y” = Routable** “N” = Book Only*** “P” = Post Only*&*** “S” = Super Aggressive Cross or Lock (Order will be removed from book and routed to any quote that is crossing or locking the order) Direct Edge API Specifications for Equities Message Name Offset Len Value Notes “X” = Aggressive - Cross only (Order will be removed from book and routed to any quote that is crossing) a = Post to EDGA (for orders originating from EDGX, ROUT, ROUX, ROUE only) b = Post to EDGX for orders originating on EDGA (for ROUT, ROUD, ROUE, ROUX, ROUZ, ROUQ, RDOT, RDOX, ROPA, ROBA, ROBX, ROBY, ROBB, ROCO, ROLF, INET, IOCT, IOCX, IOCM, ICMT only) c = Post to NYSE Arca (ROUT, ROUX, ROUE only) d = Post to NYSE (ROUT, ROUX, ROUE only) e = Post to NASDAQ (ROUT, ROUX, ROUE only) f = Post to NASDAQ OMX BX (ROUT, ROUX, ROUE only) g = Post to NASDAQ OMX PSX (ROUT, ROUX, ROUE only) h = Post to BATS BYX (ROUT, ROUX, ROUE only) i = Post to BATS BZX (ROUT, ROUX, ROUE only) j = Post to LavaFlow (ROUT, ROUX, ROUE only) k = Post to CBSX (ROUT, ROUX, ROUE only) l = Post to AMEX (ROUT, ROUX, ROUE only) n = Post to NSX (ROUT, ROUX, ROUE only) Enter a space for this field if not applicable. *Post Only orders marked HideNotSlide or Hidden may be executed as a Taker if price improved on EDGX. Post Only instructions may not be included on Hidden Orders, Discretionary Orders, or Odd Lot quantities on EDGA. **All routing strategies are subject to erroneous checks pursuant to 15c3-5 compliance. Direct Edge API Specifications for Equities 27 Message Name Offset Len Value Notes ***Book Only and Post Only orders are not subject to erroneous checks pursuant to 15c3-5 compliance. Inter-market Sweep (ISO) Eligibility 36 1 Alpha “Y” = ISO Eligible “N” = Not ISO Eligible Routing Delivery Method 37 1 Alpha “I” = Route to Improve “F” = Route to Fill “C” = Route to Comply Route to Improve: Ability to receive price improvement will take priority over speed of execution. Route to Fill: Speed of execution will take priority over potential price improvement. Route to Comply: If quantity showing at away markets are not enough to fill order in its entirety, ISO orders will be sent to clear better priced quotations and the balance of the order will be posted on the Direct Edge book. Ignored for non-routable orders. Enter a space for this field if not applicable. Route Strategy 28 38 2 Integer 1 = ROUT (Book + Low Cost/CLC + Street (Default if not specified)) 2 = ROUD (Book + Select CLC) 3 = ROUE (Book + Low Cost/Select CLC + Street) 4 = ROUX (Book + Street) 5 = ROUZ (Book + Low Cost/CLC) 6 = ROUQ (Book +Select Fast CLCs) 7= RDOT (Book + Low Cost/CLC + DOT) 8 = RDOX (Book + DOT) 9 = ROPA (Book + IOC ARCA) Direct Edge API Specifications for Equities Message Name Offset Len Value Notes 10 = ROBA (Book + IOC BATS) 11 = ROBX (Book + IOC Nasdaq BX) 12 = INET (Book + Nasdaq) 13 = IOCT (EDGA/X Book + CLC+ Other EDGA/X Book) 14 = IOCX (EDGA/X Book + Other EDGA/X Book) 15 = ISAM (Directed IOC ISO routed to AMEX) 16 = ISPA (Directed IOC ISO routed to ARCA) 17 = ISBA (Directed IOC ISO routed to BATS) 18 = ISBX (Directed IOC ISO routed to Nasdaq BX) 19 = ISCB (Directed IOC ISO routed to CBSX) 20 = ISCX (Directed IOC ISO routed to CHSX) 21 = ISCN (Directed IOC ISO routed to NSX) 22 = ISGA (Directed IOC ISO routed to EDGA) 23 = ISGX (Directed IOC ISO routed to EDGX) 24 = ISLF (Directed IOC ISO routed to LavaFlow) 25 = ISNQ (Directed IOC ISO routed to Nasdaq) 26 = ISNY (Directed IOC ISO routed to NYSE) 27 = ISPX (Directed IOC ISO routed to PHLX) 29 = ROUC (Book + CLC + Nasdaq BX + DOT + Posted to EDGX) 30 = ROLF (Book + LavaFlow) 31 = ISBY (Directed IOC ISO routed to BYX) 32 = SWPA (IOC ISO Sweep of All Protected Mkts) 33= SWPB (IOC ISO Sweep of All Protected Mkts)* 34 = IOCM (EDGA Book + IOC MPM to EDGX) Direct Edge API Specifications for Equities 29 Message Name Offset Len Value Notes 35 = ICMT (EDGA Book + CLC+ IOC MPM to EDGX) 36= ROOC (Listing Mkt Open + Book + Low Cost/CLC + Street + Listing Mkt Close)** 37 = ROBY (Book + IOC BYX) 38 = ROBB (EDGA Book + IOC Nasdaq BX + IOC BYX)*** 39 = ROCO (EDGA Book + IOC Nasdaq BX + IOC BYX + CLC + EDGX MPM)*** 40 = SWPC (IOC ISO Sweep of All Protected Markets and Post Remainder) 42 = RMPT (Book + EDGX MPM + CLC Midpoint + Street Midpoint)**** Please note: CLC = Comprehensive Liquidity Check For all Directed ISO strategies Intermarket Sweep Eligibility must equal “Y” and Time in Force must equal “0” (IOC), or the order will be rejected. * SWPB orders will be canceled immediately if the order quantity is not enough to clear all protected quotes at or better than the specified price on the order. ** Book Only version of ROOC will not access CLC and Street. ***Available on EDGA Only. ****RMPT is for EDGA only and must be used in conjunction with Midpoint Peg Order type. Minimum Quantity 40 4 Integer Max Floor 44 4 Integer Minimum execution quantity on hidden or IOC order. (Applies to all executions.) Displayed quantity of a reserve order. This field is optional. Use 0 (zero) when not sending a Reserve Order. 30 Direct Edge API Specifications for Equities Message Name Offset Len Value Notes Please note: MaxFloor=0 does NOT indicate a Hidden Order in the High Performance API as it does in the Direct Edge FIX API. Peg Difference 48 1 Discretionary Offset 49 1 Signed Integer Signed Integer Valid Values -99 thru +99 cents Valid Values -99 thru 99 cents Sign may be entered but will be ignored. Regardless of sign, offset will always be added to Buys and subtracted from Sells in relation to the limit price of the order. Accepted Message Short Format (from Direct Edge) Expire Time 50 8 Integer Symbol Suffix 58 6 Alpha Message Type 0 1 “A” Timestamp Token 1 9 8 14 Buy/Sell Indicator 23 1 Integer Alphanumeric Alpha Quantity 24 4 Integer Symbol Price 28 34 6 4 Alpha Integer Direct Edge API Specifications for Equities Expire time for GTT orders represented in Timestamp format. See Appendix A for Symbology details. Accepted Message – Short Format identifier. Timestamp The order Token field as entered. Buy/sell indicator as entered: “B” = Buy order “S” = Sell order "T" = Sell Short – Client affirms ability to borrow securities. “E” = Sell Short Exempt – Client affirms ability to borrow. “X” = Sell Short/SS Exempt – Client does not affirm ability to borrow securities. (Results in rejection of the order.) Total number of shares accepted. Stock symbol as entered. The accepted limit price of the order. Note that the accepted price could potentially be different than the entered price if the order was re-priced by Direct Edge on entry. The accepted price 31 Message Name Offset Len Value Time in Force 38 1 Integer Display 39 1 Alpha Notes will always be better than or equal to the entered. The values for Time in Force are: 0 = Immediate or Cancel 1 = Day 2 = Fill or Kill “Y” = Displayed “N” = Hidden “A” = Displayed with Attribution* “Z” = Initial Display Price Differs from Original Order Price (“Z” value applies to Hide not Slide and Price Adjust orders only.) * Expected live date September 2012 Special Order Type 40 1 Alpha “M”= MidPoint Match EDGX/ MidPoint Peg EDGA “D” = Midpoint Discretionary Order – EDGA Only “U” = Route Peg Order “N” = NBBO Offset Peg Re-Pricing Options: “S” = Hide Not Slide “P” = Price Adjust “R” = Single Re-Price “C” = Cancel Back (See Appendix B for details on Re-Pricing options.) 32 Extended Hrs Eligible 41 1 Alpha Order Reference Number 42 8 Integer Capacity 50 1 Alpha Ignored for routable orders. “R” = Regular Session Only “P” = Pre-Market and Regular Session Eligible “A” = Regular Session and Post-Market Eligible “B” = All Sessions Eligible The day-unique Order Reference Number assigned by Direct Edge to this order. The capacity specified on the order: “A” = Agency Direct Edge API Specifications for Equities Message Name Offset Len Value Route out Eligibility 51 1 Alpha Inter-market Sweep (ISO) Eligibility 52 1 Alpha “Y” = ISO Eligible “N” = Not ISO Eligible Accept Order Message Extended Format identifier. Timestamp The order Token field as entered. Buy/sell indicator as entered: “B” = Buy order “S” = Sell order "T" = Sell Short – Client affirms ability to borrow securities. “E” = Sell Short Exempt – Client affirms ability to borrow. “X” = Sell Short/SS Exempt – Client does not affirm ability to borrow securities. (Results in rejection of the order.) Total number of shares accepted. Stock symbol as entered. The accepted limit price of the order. Note that the accepted price could potentially be different than the entered price if the order was re-priced by Direct Edge on entry. The accepted price will always be better than or equal to the entered. The values for Time in Force are: 0 = Immediate or Cancel 1 = Day 2 = Fill or Kill 3 = Good Till Time Accepted Message Extended Format Message Type 0 1 “P” Timestamp Token 1 9 8 14 (from Direct Edge) Buy/Sell Indicator 23 1 Integer Alphanumeric Alpha Quantity 24 4 Integer Symbol Price 28 34 6 4 Alpha Integer Time in Force 38 1 Integer Direct Edge API Specifications for Equities Notes “P” = Principal “R” = Riskless Principal “Y” = Routable “N” = Book Only “P” = Post-Only “S” = Super Aggressive Cross or Lock “X” = Aggressive - Cross only “b”=Post to EDGX for orders originating on EDGA 33 Message Name Display Offset 39 Len 1 Value Alpha Notes “Y” = Displayed “N” = Hidden “A” = Displayed with Attribution* “Z” = Initial Display Price Differs from Original Order Price (“Z” value applies to Hide not Slide and Price Adjust orders only.) * Expected live date September 2012 Special Order Type 40 1 Alpha “M”= MidPoint Match EDGX/ MidPoint Peg EDGA “D” = Midpoint Discretionary Order – EDGA Only “N” = NBBO Offset Peg “U” = Route Peg Order “X” = Primary Peg “Y” = Market Peg Re-Pricing Options: “S” = Hide Not Slide “P” = Price Adjust “R” = Single Re-Price “C” = Cancel Back (See Appendix B for details on Re-Pricing options.) 34 Extended Hrs Eligible 41 1 Alpha Order Reference Number 42 8 Integer Capacity 50 1 Alpha Route out Eligibility 51 1 Alpha Ignored for routable orders. “R” = Regular Session Only “P” = Pre-Market and Regular Session Eligible “A” = Regular Session and Post-Market Eligible “B” = All Sessions Eligible The day-unique Order Reference Number assigned by Direct Edge to this order. The capacity specified on the order: “A” = Agency “P” = Principal “R” = Riskless Principal “Y” = Eligible “N” = Book Only “P” = Post-Only “S” = Super Aggressive - Direct Edge API Specifications for Equities Message Name Offset Len Value Notes Cross or Lock “X” = Aggressive - Cross only a = Post to EDGA (for orders originating from EDGX, ROUT, ROUX, ROUE only) b = Post to EDGX for orders originating on EDGA (for ROUT, ROUD, ROUE, ROUX, ROUZ, ROUQ, RDOT, RDOX, ROPA, ROBA, ROBX, ROBY, ROBB, ROCO, ROLF, INET, IOCT, IOCX, IOCM, ICMT only) c = Post to NYSE Arca (ROUT, ROUX, ROUE only) d = Post to NYSE (ROUT, ROUX, ROUE only) e = Post to NASDAQ (ROUT, ROUX, ROUE only) f = Post to NASDAQ OMX BX (ROUT, ROUX, ROUE only) g = Post to NASDAQ OMX PSX (ROUT, ROUX, ROUE only) h = Post to BATS BYX (ROUT, ROUX, ROUE only) i = Post to BATS BZX (ROUT, ROUX, ROUE only) j = Post to LavaFlow (ROUT, ROUX, ROUE only) k = Post to CBSX (ROUT, ROUX, ROUE only) l = Post to AMEX (ROUT, ROUX, ROUE only) n = Post to NSX (ROUT, ROUX, ROUE only) Inter-market Sweep (ISO) Eligibility 52 1 Alpha “Y” = ISO Eligible “N” = Not ISO Eligible Routing Delivery Method 53 1 Alpha “I” = Route to Improve “F” = Route to Fill “C” = Route to Comply Route Strategy 54 2 Integer 1 = ROUT (Book + Low Cost/CLC + Street (Default if not specified)) 2 = ROUD (Book + Select CLC) 3 = ROUE (Book + Low Cost/Select CLC + Street) Direct Edge API Specifications for Equities 35 Message Name Offset Len Value Notes 4 = ROUX (Book + Street) 5 = ROUZ (Book + Low Cost/CLC) 6 = ROUQ (Book +Select Fast CLCs) 7= RDOT (Book + Low Cost/CLC + DOT) 8 = RDOX (Book + DOT) 9 = ROPA (Book + IOC ARCA) 10 = ROBA (Book + IOC BATS) 11 = ROBX (Book + IOC Nasdaq BX) 12 = INET (Book + Nasdaq) 13 = IOCT (EDGA/X Book + CLC+ Other EDGA/X Book) 14 = IOCX (EDGA/X Book + Other EDGA/X Book) 15 = ISAM (Directed IOC ISO routed to AMEX) 16 = ISPA (Directed IOC ISO routed to ARCA) 17 = ISBA (Directed IOC ISO routed to BATS) 18 = ISBX (Directed IOC ISO routed to Nasdaq BX) 19 = ISCB (Directed IOC ISO routed to CBSX) 20 = ISCX (Directed IOC ISO routed to CHSX) 21 = ISCN (Directed IOC ISO routed to NSX) 22 = ISGA (Directed IOC ISO routed to EDGA) 23 = ISGX (Directed IOC ISO routed to EDGX) 24 = ISLF (Directed IOC ISO routed to LavaFlow) 25 = ISNQ (Directed IOC ISO routed to Nasdaq) 26 = ISNY (Directed IOC ISO routed to NYSE) 27 = ISPX (Directed IOC ISO routed to PHLX) 28 = ISTR (Directed IOC ISO routed to TRAC) 29 = ROUC (Book + CLC + 36 Direct Edge API Specifications for Equities Message Name Offset Len Value Notes Nasdaq BX + DOT + Posted to EDGX) 30 = ROLF (Book + LavaFlow) 31 = ISBY (Directed IOC ISO routed to BYX) 32 = SWPA (IOC ISO Sweep of All Protected Mkts) 33= SWPB (IOC ISO Sweep of All Protected Mkts)* 34 = IOCM (EDGA Book + IOC MPM to EDGX) 35 = ICMT (EDGA Book + CLC+ IOC MPM to EDGX) 36= ROOC (Listing Mkt Open + Book + Low Cost/CLC + Street + Listing Mkt Close)** 37 = ROBY (Book + IOC BYX) 38 = ROBB (EDGA Book + IOC Nasdaq BX + IOC BYX)*** 39 = ROCO (EDGA Book + IOC Nasdaq BX + IOC BYX + CLC + EDGX MPM)*** 40 = SWPC (IOC ISO Sweep of All Protected Markets and Post Remainder) 42 = RMPT (Book + EDGX MPM + CLC Midpoint + Street Midpoint)**** Please note: CLC = Comprehensive Liquidity Check For all Directed ISO strategies Intermarket Sweep Eligibility must equal “Y” and Time in Force must equal “0” (IOC), or the order will be rejected. * SWPB orders will be canceled immediately if the order quantity is not enough to clear all protected quotes at or better than the specified price on the order. ** Book Only version of ROOC will not access CLC and Street. ***Available on EDGA Only. ****RMPT is for EDGA only and Direct Edge API Specifications for Equities 37 Message Name Offset Len Value Notes must be used in conjunction with Midpoint Peg Order type. Executed Order (from Direct Edge) 38 Minimum Quantity 56 4 Integer Max Floor 60 4 Integer Peg Difference 64 1 Discretionary Offset 65 1 Signed Integer Signed Integer Expire Time 66 8 Integer Symbol Suffix 74 6 Alpha Message Type Timestamp Order Token 0 1 9 1 8 14 Executed Quantity Execution Price 23 4 “E” Integer Alphanumeric Integer 27 4 Integer Liquidity Flag 31 5 Alphanumeric Minimum execution quantity on hidden or IOC order. (Applies to all executions.) Displayed quantity of a reserve order. Valid Values -99 thru +99 cents Valid Values -99 thru +99 cents Offset will always be in relation to the limit price of the order. Expire time for GTT orders represented in Timestamp format. See Appendix A for Direct Edge Symbology details. Order Executed message. Timestamp The Order Token as entered. Incremental number of shares executed. The price at which these shares were executed. Liquidity Flag from Execution Liquidity flags can be from one to five characters in length. This field will be left justified and padded with spaces. Flag Description A Routed to Nasdaq, Adds Liquidity B Add liquidity to our Book (Tape B) C Routed to Nasdaq BX (Tapes A & C), Removes Liquidity D Routed or Re-routed to NYSE, Removes Liquidity EA Customer Internalization – Added Liquidity ER Customer Internalization – Removed Liquidity Direct Edge API Specifications for Equities Message Name Offset Direct Edge API Specifications for Equities Len Value Notes F Routed to NYSE, Adds Liquidity G Routed to ARCA (Tapes A & C), Removes Liquidity HA Hidden Order Adds Liquidity HR Hidden Order Removes Liquidity (EDGA only) I Routed to EDGA (for EDGX orders) or to EDGX (for EDGA orders) J Routed to Nasdaq, Removes Liquidity K Routed to BATS using ROBA Order Type (EDGA + BATS) or Routed to Nasdaq PSX using ROUC Order Type L Routed to Nasdaq using INET Order Type, Removes Liquidity (Tapes A & C) M Add Liquidity on LavaFlow N Remove Liquidity from our Book (Tape C) O Listing Market Opening Cross P Add Liquidity on EDGX via an EDGA originated ROUC Order Type Q Routed using ROUQ or ROUC Order Types R Re-routed by Exchange S Directed ISO Order T Routed using ROUD/ROUE Order Type U Remove Liquidity from LavaFlow V Add Liquidity to our Book (Tape A) W Remove Liquidity from our Book (Tape A) X Routed Y Add Liquidity to our Book (Tape C) Z Routed using ROUZ Order Type or Executed in CLC process using ICMT Order Type 2 Routed to Nasdaq using INET Order Type, Removes Liquidity (Tape B) 3 Add Liquidity – Pre & Post Market (Tapes A & 39 Message Name Offset Len Value Notes C) 40 4 Add Liquidity – Pre & Post Market (Tape B) 5 Customer Internalization – Pre & Post Market 6 Remove Liquidity – Pre & Post Market (All Tapes) 7 Routed – Pre & Post Market 8 Routed to AMEX, Adds Liquidity 9 Routed to ARCA, Adds Liquidity (Tapes A & C) 10 Routed to ARCA , Adds Liquidity (Tape B) AA Midpoint Match Cross (same MPID) BB Remove Liquidity from our Book (Tape B) BY Routed to BYX using ROBY or ROUC Order Type CL Listing Market Close, excluding NYSE ARCA CR Liquidity Remover via CLC Eligible Routing Strategy (EDGA only) DM Non-Displayed Orders – Adds Liquidity using MDO DT Non-Displayed Orders – Removes Liquidity using MDO MM Midpoint Match Maker MT Midpoint Match Taker OO Direct Edge Opening PA Midpoint Routing Strategy (RMPT), Adds Liquidity PI Removed Liquidity from Midpoint Match on EDGX PR Liquidity Remover via CLC Only Routing Strategy (EDGA only) PT Midpoint Routing Strategy (RMPT), Removes Liquidity PX Midpoint Routing Strategy (RMPT), Routed Out RB Routed to Nasdaq BX, Adds Liquidity RC Routed to NSX, Adds Liquidity RP Added Liquidity using Route PegOrder RQ Routed using ROUQ RR Routed to EDGA (for Direct Edge API Specifications for Equities Message Name Offset Len Value Notes EDGX orders) or to EDGX (for EDGA orders) using IOCT or IOCX Rejected Message (from Direct Edge) RS Routed to Nasdaq PSX, Adds Liquidity RT Routed using ROUT Order Type (EDGA Only) RW Routed to CBSX, Adds Liquidity RX Routed using ROUX Order Type (EDGA Only) RY Routed to BATS BYX, Adds Liquidity RZ Routed to BATS BZX, Adds Liquidity SW Routed using SWPA/SWPB (All mkts except NYSE) XR Liquidity Remover via Non -CLC Eligible Routing Strategy (EDGA only) ZA Retail Order, Adds Liquidity ZR Retail Order, Removes Liquidity Match Number 36 8 Integer Assigned by Direct Edge to each match executed. Each match consists of one buy and one sell. The matching buy and sell executions do not share the same match number. Message Type 0 1 “J” Timestamp Order Token 1 9 8 14 Integer Alphanumeric Reason 23 1 Alpha Rejected Order, Cancel or Replace message. Timestamp This is the order Token field as transmitted with the order when entered. This is the reason the message was rejected. Clients should anticipate additions to this list and thus support all capital letters of the English alphabet. “A” = Order characteristics not supported in current trading session "B" = Number of orders in the bulk order message exceeded threshold “C” = Exchange closed “D” = Invalid Display Type Direct Edge API Specifications for Equities 41 Message Name Offset Len Extended Rejected Message* Value Notes "E" = Exchange option “F” = Halted “H” = Cannot execute in current trading state “I” = Order Not Found “L” = Firm not authorized for clearing (invalid firm) "O" = Other “P” = Order already in a pending cancel or replace state "Q" = Invalid quantity “R” = Risk Control Reject “S” = Invalid stock “T” = Test Mode "U" = Order has an invalid or unsupported characteristic “V” = Order is rejected because maximum order rate is exceeded. “X” = Invalid price Message Type 0 1 “L” 1 9 8 14 Integer Alphanumeric 23 1 Alpha Rejected Order, Cancel or Replace message. Timestamp This is the order Token field as transmitted with the order when entered. This is the reason the message was rejected. Clients should anticipate additions to this list and thus support all capital letters of the English alphabet. Timestamp Order Token Reason (from Direct Edge) *Optional - Please contact DE FIX Support to activate Extended Rejected Msg in place of standard Rejected Msg “A” = Order characteristics not supported in current trading session "B" = Number of orders in the bulk order message exceeded threshold “C” = Exchange closed “D” = Invalid Display Type "E" = Exchange option “F” = Halted “H” = Cannot execute in current trading state “I” = Order Not Found “L” = Firm not authorized for clearing (invalid firm) "O" = Other “P” = Order already in a pending cancel or 42 Direct Edge API Specifications for Equities Message Name Offset Len Value Notes replace state "Q" = Invalid quantity “R” = Risk Control Reject “S” = Invalid stock “T” = Test Mode "U" = Order has an invalid or unsupported characteristic “V” = Order is rejected because maximum order rate is exceeded. “X” = Invalid price Cancel Order InResponseTo 24 1 Alpha “O” = New Order “X” = Cancel “U” = Replace Type Order Token 0 1 1 14 “X” Alphanumeric Quantity 15 4 Integer Cancel Order message. The Order Token as originally transmitted in an Enter Order message. This is the new intended order size. This limits the maximum number of shares that can potentially be executed in total after the cancel is applied. Entering a zero here will cancel any remaining open shares on this order. Message Type Timestamp Order Token 0 1 9 1 8 14 Decremented Quantity 23 4 “C” Integer Alphanumeric Integer Reason 27 1 Alpha (from Member) Canceled Message (from Direct Edge) Direct Edge API Specifications for Equities Canceled Order message. Timestamp The order Token field as entered. The number of shares just decremented from the order. This number is incremental, not cumulative. The reason the order was reduced or canceled. Clients should anticipate additions to this list and thus support all capital letters of the English alphabet. “U”= User requested cancel. Sent in response to a Cancel Request message. “I” = Immediate or Cancel order. This order was originally sent with a timeout of zero and no further matches were 43 Message Name Offset Len Value Notes available on the book so the remaining unexecuted shares were immediately canceled. “T”=Timeout. The Time In Force for this order has expired. “S”=This order was manually canceled or reduced by Direct Edge. This is usually in response to a participant request via telephone. “D”=This order cannot be executed because of a regulatory restriction (e.g. short sale or trade through restrictions). “A” =This order cannot be posted because it will result in a locked or crossed market. “B” = Order was canceled due to AntiInternalization settings. Cancel Pending Message Type Timestamp Order Token 0 1 9 1 8 14 “I” Integer Alphanumeric Cancel Pending message See Data Types above. Order Token for the order that is cancel pending. Message Type Existing Order Token 0 1 1 14 “U” Alphanumeric Replacement Order Token 15 14 Alphanumeric Quantity 29 4 Integer Price 33 4 Integer Replace Order message This must be filled out with the exact Order Token sent on the Enter Order Message or last Replace Order Message. Client ID for the order. Token should be day-unique for each API account. Total quantity of order including any previously executed shares. Price of replacement order. The price is a 5 digit whole number followed by a 5 decimal digits. Message Type Timestamp Replacement Order Token 0 1 9 1 8 14 “R” Integer Alphanumeric (from Direct Edge) Replace Order (from Member) Replaced Message (from Direct 44 Replaced Message Identifier Timestamp The Replacement Order Token field as entered. Direct Edge API Specifications for Equities Message Edge) Name Buy/Sell Indicator Offset 23 Len 1 Value Alpha Quantity 24 4 Integer Symbol 28 6 Alpha Price 34 4 Integer Order Reference Number 38 8 Integer Capacity Previous Order Token 46 47 1 14 Alpha Alphanumeric Notes Buy/Sell indicator as entered on the original order in the chain. Total number of shares outstanding. Stock symbol as entered on the original. The accepted price of the replacement order. Please note that the accepted price could potentially be different than the entered price if the order was re-priced by Direct Edge on entry. The accepted price will always be better than or equal to the entered price. The day-unique Order Reference Number assigned by Direct Edge. Capacity of original order. The Order Token of the order that was replaced. Message Type Timestamp Order Token 0 1 9 1 8 14 “D” Integer Alphanumeric Pending Replace message Timestamp Order Token for the order that is Pending Replace. System Event Message Type 0 1 “S” (from Direct Edge) Timestamp Event Code 1 9 8 1 Integer Alpha System Event message identifier. Timestamp Event Codes “S” = Start of Day. This is always the first message each day. It indicates that Direct Edge is open and ready to start accepting orders. “E” = End of Day. This indicates that Direct Edge is now closed and will not accept any new orders in this session. There will not be any more executions during this session; however it is still possible to receive Broken Trade messages and Canceled Order Pending Replace (from Direct Edge) Direct Edge API Specifications for Equities 45 Message Name Broken Trade (from Direct Edge) Price Correction (from Direct Edge) AntiInternalization Modifier Offset Len Value Notes messages. Message Type Timestamp Order Token 0 1 9 1 8 14 8 “B” Integer Alphanumeric Integer 31 1 Alpha Broken Trade message. Timestamp. The order Token field as entered. Match Number as transmitted in a preceding Executed Order message. The reason the trade was broken. Clients should anticipate additions to this list and thus support all capital letters of the English alphabet. “S”=The trade was manually broken by Direct Edge. Match Number 23 Reason Message Type Timestamp Order Token 0 1 9 1 8 14 Match Number 23 8 “K” Integer Alphanumeric Integer New Execution Price Reason 31 4 Integer 35 1 Alpha Type 0 1 “F” AI Method 1 1 Alpha (from Member) 46 AI Identifier 2 1 Alpha AI Group ID 3 2 Alpha- Price Correction message. Timestamp. The order Token field as entered. Match Number as transmitted in a preceding Executed Order message. The corrected price of the execution. The reason the trade was corrected. “S”=The trade was manually price-corrected by Direct Edge. Identifies this message as an Anti-Internalization Modifier. “A” = Cancel Newest “B” = Cancel Oldest “C” = Cancel Both “D” = Cancel Smallest “E” = Decrement Larger and Cancel Smaller (Order Qty and Leaves reduced)* “F” = Decrement Larger and Cancel Smaller (Leaves reduced)* *If the larger order has a Minimum Execution Qty specified, both orders will be fully canceled. “A” = MPID “B” = Member ID “C” = MPID and AI Group ID Two Character ID Chosen by Direct Edge API Specifications for Equities Message Name Offset Len Value numeric Notes Member. Orders must match on both MPID and AI Group ID to be prevented from trading. Enter spaces in this field if not applicable. AI Additional Info Message (from Direct Edge) Message Type Timestamp Order Token 0 1 9 1 8 14 Quantity 23 4 “G” Integer Alphanumeric Integer Price 27 4 Integer Canceled Order State 31 1 Alpha Contra Member ID 32 6 Alphanumeric Contra Token/ClOrderID 38 20 Alphanumeric AI Method 58 1 Alpha AI Identifier AI Group ID 59 60 1 2 Alpha Alphanumeric AI Additional Info Message Timestamp The Order Token as entered. Number of shares prevented from trading. The price at which these shares would have executed. “I” = Inbound “P” = Posted Shows if the canceled order was incoming or resting on book at time of cancellation. Member ID on the contra order that caused the cancellation. Token or ClOrderID of contra order that caused the cancellation. “A” = Cancel Newest “B” = Cancel Oldest “C” = Cancel Both “D” = Cancel Smallest “E” = Decrement Larger and Cancel Smaller (Order Qty and Leaves Qty reduced) “F” = Decrement Larger and Cancel Smaller (Leaves Qty reduced only) AI Method used to cancel the order. This may be different from the AI Method specified on the order being canceled. “A” = MPID “B” = Member ID “C” = MPID and AI Group ID AI Identifier used to match on. Two Character ID Chosen by Member. Spaces will be entered in this Direct Edge API Specifications for Equities 47 Message 48 Name Offset Len Value Notes field if not applicable. Direct Edge API Specifications for Equities Chapter 6 6.1 Appendices Appendix A: Direct Edge Symbology For Tape A and B securities, Direct Edge supports the use of CMS symbol suffixes. To enter an order for a symbol with a suffix, API users must use the Enter Order - Extended Format. Tape C securities do not require use of suffixes. The table below describes all Direct Edge supported suffixes for Tape A and B securities. Symbol Type SIAC Suffix Comstock Suffix (Not Supported) (Not Supported) /A .A A Class A When Issued /Aw .A* AWI Preferred p - PR Preferred Class A pA -A PRA Preferred Class A When Issued pAw -A* PRAWI Preferred When Distributed p/WD -W or WD PRWD Preferred When Issued pw -* PRWI Rights r .R or .RT RT Rights When Issued rw .R* or .RT* RTWI Units /U .U U Warrants /WS .WS or + WS Warrants Class A /WS/A .WS.A or +A WSA Warrant When Issued /WSw .WS* or +* WSWI When Distributed /WD .W or .WD WD When Issued w * WI Class A CMS / Direct Edge Supported Suffix (Class B-T and V-Z also allowed) Direct Edge API Specifications for Equities 49 6.2 Appendix B: Lock/Cross Re-Pricing Options Under Reg NMS, exchanges must avoid posting orders that intentionally lock or cross other protected market center quotes. To comply with this provision of the rule, Direct Edge offers four alternatives for non-routable orders: 50 • Hide not Slide – If at the time of entry an order locks or crosses an away market quotation, the order will be hidden and ranked at the locking price, but will be displayed one penny away from the locking price. The displayed price will be adjusted to the ranked price as soon as market conditions permit. • Price Adjust – If at the time of entry an order locks or crosses an away market quotation, the order will be displayed and ranked one penny away from the locking price. If market conditions allow the order to be displayed at the original locking price, it will be moved to that price. • Single Re-Price – If at the time of entry an order locks or crosses an away market quotation, the order will be displayed and ranked one penny away from the locking price. This is a onetime re-pricing of the order. • Cancel Back – If at the time of entry an order locks or crosses an away market quotation, the order will be immediately canceled back to the member. Direct Edge API Specifications for Equities
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.4 Linearized : No Page Count : 49 Producer : GPL Ghostscript 8.15 Create Date : 2013:07:10 11:30:57 Modify Date : 2013:07:10 11:30:57 Title : Microsoft Word - Direct Edge XPRS API Manual V 1.30.doc Creator : PScript5.dll Version 5.2.2 Author : wciabattoniEXIF Metadata provided by EXIF.tools