ISE Stock Exchange

API Access to the ISE Stock Exchange Issue 3.1

Issue date: June 2009

Produced by: International Securities Exchange, Inc. 60 Broad Street, New York NY 10004 www.isestock.com

June 2009

Table of Contents About this document ..................................................................................................................... 4 Users of this document ................................................................................................................ 4 Related documents ...................................................................................................................... 4 Summary of changes ................................................................................................................... 4 Acronyms ..................................................................................................................................... 5 Chapter 1.

ISE Stock Exchange Introduction .......................................................................... 6

Chapter 2. Using the ISE TCP Protocol .................................................................................... 7 2.1 Packages ............................................................................................................................. 7 2.2 Login .................................................................................................................................... 7 2.3 Package Sequence .............................................................................................................. 7 2.4 Heartbeats ........................................................................................................................... 8 2.5 End of Session ..................................................................................................................... 8 2.6 Data Types ........................................................................................................................... 8 2.7 Summary of ISE TCP Messages ......................................................................................... 8 2.8 ISE TCP Message Formats ................................................................................................. 9 Chapter 3. Order Types Supported by the API ...................................................................... 11 3.1 MidPoint Match Orders ...................................................................................................... 11 3.1.1 MidPoint Match Order (MPM): ................................................................................. 11 3.1.2 Solicitation of Interest Order (SOI):.......................................................................... 11 3.2 Displayed Market Orders ................................................................................................... 11 3.2.1 Regular Order .......................................................................................................... 12 3.2.2 Intermarket Sweep Order (ISO) ............................................................................... 12 3.2.3 Other Displayed Market Order Types ...................................................................... 12 Chapter 4. Pre-Market and Post Market Orders..................................................................... 13 4.1 Order Entry ...................................................................................................................... 13 4.1.1 Pre-Market and Post-Market Order Entry ................................................................ 13 4.2 Pre-Market and Post-Market Quotes and Trades ........................................................... 14 4.3 Entering Orders between 8:00 AM and 9:30 AM ............................................................ 14 4.4 Entering Orders between 9:30 AM and the MidPoint Opening ....................................... 15 4.5 After the ISE MidPoint Opening ...................................................................................... 15 4.6 ISE Daily Timeline ........................................................................................................... 16 Chapter 5. Re-price or Re-Price to Post ................................................................................. 17 5.1 Re-Price and Post Only/Re-Price Order Qualifiers ............................................................ 17 5.1.1 How to Enter Orders to be Re-Priced ...................................................................... 17 5.1.2 Understanding Order Behavior ................................................................................ 17 Chapter 6 ISE Stock Order API............................................................................................... 19 6.1 API Architecture .............................................................................................................. 19 6.2 Maximizing Performance: Transaction Batching............................................................ 19 6.3 Data Types ...................................................................................................................... 19 6.4 Service Bureau Configuration ......................................................................................... 20 6.5 Supported Messages ...................................................................................................... 20 6.6 Message Formats ........................................................................................................... 22 Chapter 7 ISE Data Feed API .................................................................................................. 32 7.1 Architecture ..................................................................................................................... 32 7.2 Data Types ...................................................................................................................... 32 7.3 Message Flow ................................................................................................................. 33 7.4 Supported Messages ...................................................................................................... 33 7.5 Message Formats ........................................................................................................... 33

2

API Access to the ISE Stock Exchange

June 2009

Chapter 8 Delivery Orders ...................................................................................................... 35 8.1 Supported Messages ...................................................................................................... 35 8.2 Message Formats ........................................................................................................... 35 Chapter 9 Preparing to Trade on the ISE Stock Exchange ................................................. 38 9.1 Conformance Testing ...................................................................................................... 38 9.2 ISE Production Trading Sessions ................................................................................... 39 Appendix A. Other Displayed Market Order Types .............................................................. 40 Reserve Order ........................................................................................................................ 40 Discretionary Order ................................................................................................................ 40 Pegged Order ......................................................................................................................... 40 Pegged Discretionary Order ................................................................................................... 40 Stop Order .............................................................................................................................. 40 Appendix B.

Routing Eligibility ............................................................................................... 41

Appendix C. Miscellaneous ..................................................................................................... 42 OATS Reporting ......................................................................................................................... 42 Clearance and Settlement ......................................................................................................... 42 Viewing ISE Quotes and Trades ................................................................................................ 42 Reg NMS Compliant Route Out Services .................................................................................. 43 Other Questions ......................................................................................................................... 43

API Access to the ISE Stock Exchange

3

June 2009

About this document This document provides guidelines for ISE Stock Exchange members wishing to program to the Applications Programming Interface (API) to access the ISE Stock Exchange trading system. It is designed to provide a high performance, low latency alternative to the FIX interface.

Users of this document This document should be used by ISE Stock Exchange equity participants looking to connect to the ISE Stock Exchange.

Related documents The alternative order entry method is described in the FIX Order Entry Specification for Equities.

Summary of changes A history of significant changes to this template is described in the table below. Issue

Date

Change

3.1

June 2009

Market Data – Snapshot Retransmissions Added reject message “V” when the throttle is exceeded.

3.0

October 2008

Pre-Market and Post-Market Trading is added. Order Delivery updates Delivery Execution Rejection Message added to Order Delivery suite of messages Clarified: All tokens are alphanumeric Added Reason field to Delivery Request Cancelled message. Clarified: The only message that is sent from the server that is unsequenced is the Order Delivery Request Message, Section 2.3.

2.0

March 2007

Added Top Of Book market data feed Add support for Re-Price to Post Orders Add support for DAY ISO order type pre-open session is 07:00 – 09:29 tag 9730 in execution Report – add values: •

M = “MPM Taker”



L = “MPM Maker”

• S = “MPM Shared” Appendices added 1.0

4

October 2006

First issue

API Access to the ISE Stock Exchange

June 2009

Acronyms Acronym

Description

BBO

Best Bid and Offer

CUSIP

Committee on Uniform Security Identification Procedures (CUSIP)

DM

Displayed Market

EAM

Electronic Access Member

FIX

Financial Information Exchange

FOK

Fill Or Kill order

IOC

Immediate Or Cancel order

ISE

International Securities Exchange

ISO

Intermarket Sweep Order

MPM

MidPoint Match Order

OL

Odd Lot

PRL

Partial Round Lot

RL

Round Lot

SOI

Solicitation of Interest Order

SS

Sell Short

API Access to the ISE Stock Exchange

5

June 2009

Chapter 1. ISE Stock Exchange Introduction Changes in Reg NMS have created opportunities for entering the equities trading arena. The ISE has chosen to respond to this unique opportunity by initiating equity trading on the ISE Stock Exchange. The ISE Stock Exchange offers both Displayed and non-Displayed (MPM) alternatives. •

Midpoint Match System for continuous execution of non-displayed orders at the midpoint of the published National Best Bid and Offer (NBBO).



Reg NMS compliant Displayed Market publishes automated ISE BBO quotes through the National Market Systems CQS and UQDF.

The ISE Stock Exchange is an order-driven market. All orders entered into the system are displayed anonymously and anonymity is preserved through the entire clearance and settlement process. Participation in the ISE Stock Exchange is restricted to ISE members. Existing members do not need to apply for a separate membership in order to start trading. However, the following documents must be signed and returned to ISE: •

Addendum to the Access Agreement. This is to be signed by the member. It amends the Access Agreement to cover equities trading.



Letter of Clearing Authorization. This is to be signed by the member's equities clearing member. It guarantees the member's equity trading. It is only required if the member is not a self-clearing DTCC member.



Depository Trust & Clearing Corporation (DTCC) Participant Letter. This is to be signed by the member if the member is a self-clearing DTCC member; otherwise, signed by the member's equities clearing member.



Routing Agreement. This authorizes the ISE to route orders to better-priced Market Centers, as required, in compliance with Reg NMS.

For those interested in becoming a new member, applicants must meet the following criteria: •

Applicant must be a registered U.S. broker-dealer



Applicant must be a member of at least one other self-regulatory organization ("SRO")



Applicant must either be a DTCC member or submit a clearing guarantee from an ISE clearing firm that is also a DTCC member.

Parties interested in membership on the ISE Stock Exchange are directed to www.isestock.com. Membership information is available under “How to Start Trading”.

6

API Access to the ISE Stock Exchange

June 2009

Chapter 2. Using the ISE TCP Protocol The ISE has developed a lightweight point-to-point protocol, built on top of TCP/IP sockets. It is identified as ISE TCP. ISE TCP is used in systems when a server needs to deliver a logical stream of sequenced messages to a client but because the server application generates higher-level sequenced acknowledgments for any important client-generated messages, it does not require the same level of guarantees for client-generated messages. The messages carried by ISE TCP may not include the ASCII linefeed character and must be at least 1 byte long. The ISE TCP client and server communicate by exchanging a series of logical packages.

2.1 Packages Each ISE TCP logical package has: • a single-byte header which indicates the package type • a variable length payload • a terminating linefeed character (ASCII 10 decimal, 0x0A hex)

2.2 Login ISE TCP also includes a simple scheme that allows the server to authenticate the client upon login.

2.3 Package Sequence An ISE TCP 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. ISE TCP also permits the client to send messages to the server using Unsequenced Data Packages at any time after the Login Accepted Package is received. These messages may be lost during TCP/IP socket connection failures. The only message sent from a server in an unsequenced envelope is an Order Delivery Request.

API Access to the ISE Stock Exchange

7

June 2009

2.4 Heartbeats ISE TCP uses logical heartbeat packages to quickly detect link failures. The server must send a Server Heartbeat Package anytime more than 30 seconds 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 30 seconds 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. The ISE waits for 3 missed heartbeats (90 seconds) before it drops the connection.

2.5 End of Session The server indicates that the current session has terminated by sending a Sequenced Data Package containing a zero length message in the payload. This indicates that there will be no more messages contained in this session. The client will have to reconnect and relogin with a new Session ID to begin receiving messages for the next available session.

2.6 Data Types The data types are: • Character data fields are standard ASCII bytes. • Alphanumeric fields use ASCII characters and fixed-size fields are padded on the right with spaces. • Numeric fields use ASCII digits and are padded on the left with spaces.

2.7 Summary of ISE TCP Messages The table below shows the origin and sequence of packages.

Message From Client From Server Login Request

Login Accepted

Login Reject

Notes The ISE TCP 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 ISE TCP 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. The ISE TCP 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.

8

API Access to the ISE Stock Exchange

June 2009

Unsequenced Data

This carries the actual data messages from the client to the server. Up to 100 messages may be included in a single, unsequenced packet. 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 Sequenced Data w/ End of Session Marker

The higher-level protocol must be able to handle these lost messages in the case of a TCP/IP socket connection failure. Order Delivery Request This carries the actual sequenced data 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 ISE TCP 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 ISE TCP connection at anytime. Debug Packages should be ignored by both client and server application software. See above. The server indicates that the current session has terminated by sending a Sequenced Data Package containing a zero length message in the payload. This indicates that there will be no more messages contained in this session. 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.

2.8 ISE TCP Message Formats Message Login Request

Field Package Type Username

Password Requested Session Requested Sequence Number Login Accepted

Terminator Package Type Session

API Access to the ISE Stock Exchange

Offset 0

Length

1

6

7

10

17

10

1

Value "L" Alphanumeric

Alphanumeric Alphanumeric Numeric

27

10

37

1

0

1

1

10

LF "A" Alphanumeric

Notes Username. Case insensitive. Password. Case insensitive. Specifies the session or all blanks for the currently active session. Specifies the next sequence number, or 0 to start receiving the most recently generated message. ASCII Line Feed

The session ID of the session that is now logged into.

9

June 2009

Message

Login Rejected

Field Sequence Number

Offset

Length

11

10

Terminator Package Type Reject Reason Code

21

1

0

1

Sequenced Data

Server Heartbeat Client Heartbeat Logout Request Debug

10

Terminator Package Type Message

Terminator Package Type Message

LF "J"

Login Reject Codes Reason codes: “A” = Not Authorized. Invalid username and password combination.

Alpha

1

1

Unsequenced Data

Notes The sequence number of the next Sequenced Message to be sent. ASCII Line Feed

Value Numeric

2

1

0

1

“S” = Session not available. The Requested Session in the Login Request Package was either invalid or not available. ASCII Line Feed

LF "U" Alphanumeric

1

N

N+1

1

0

1

LF "S" Alphanumeric

1

N

Terminator Package Type Terminator Package Type Terminator Package Type Terminator Package Type Text

N+1

1

0

1

1

1

0

1

1

1

0

1

1

1

0

1

1

Terminator

N+1

LF "H"

Defined by a higher-level protocol. Must not contain any linefeeds. May contain up to 100 messages. ASCII Line Feed

Defined by a higher-level protocol, but must not contain any linefeeds. A Message with zero length is a special End of Session marker. ASCII Line Feed

LF "R"

ASCII Line Feed

LF "O"

ASCII Line Feed

LF "+"

ASCII Line Feed

N

Alphanumeric

1

LF

Free form human readable text. ASCII Line Feed

API Access to the ISE Stock Exchange

June 2009

Chapter 3. Order Types Supported by the API The MidPoint Match System is a dark pool of orders; its presence will not be visible. In contrast, those orders entered into the Displayed Market will become visible when represented in the ISE BBO disseminated through the National Market Systems CQS or UQDF. Orders entered to access the Displayed Market are automatically eligible for matching against MidPoint Match orders.

3.1 MidPoint Match Orders The following order types will be supported by the API:

3.1.1 MidPoint Match Order (MPM): This is the standard order type for the MidPoint Match System. Orders must be limit-priced with a Time in Force value of IOC, FOK or Day. If not immediately executed, Day Market orders will reside on the Orderbook and will remain alive until contra-side interest is available or until the end of the current trading session. As all orders are executed at the midpoint of the NBBO, the limit price provides a boundary above or below which the order cannot be executed. MPM orders remain dark at all times. AON is a valid qualifier for a market or limit order that is marked Not Routable.

3.1.2 Solicitation of Interest Order (SOI): Unlike the standard MPM order that silently enters the MPM Orderbook an SOI order is a special MidPoint Match order that broadcasts its arrival through the dissemination of an IOI message. Only the trading symbol is conveyed to market participants through the IOI; side and size are not revealed. An SOI order may be designated IOC or Day. It must be for a minimum of 500 shares and must be eligible for execution at the time of arrival. For its willingness to “go out loud”, an SOI Day order enjoys execution priority for 10 seconds. At the end of the 10-second exposure period, a Day order that is not executed will be converted to a standard MidPoint Match Order retaining its original timestamp. An IOC SOI order will be automatically canceled after 1 second but retains execution priority during that time. AON is not an acceptable execution instruction on the SOI order.

3.2 Displayed Market Orders In general, the Displayed Market supports a broader range of order types than MPM; however, only the basic order types can be entered via the API. Partial Round Lots (Mixed Lots) will be accepted but the odd lot portion of the order will be returned unexecuted. Odd lot orders are not accepted. AON is not a valid execution instruction on any Displayed Market order.

API Access to the ISE Stock Exchange

11

June 2009

3.2.1 Regular Order This is the standard Displayed Market order. The quantity must be at least one round lot. The side is marked as buy, sell, or sell short. Time in Force may be IOC, FOK or Day.

3.2.2 Intermarket Sweep Order (ISO) The ISE will accept ISO and DAY ISO orders from its members. This order type will be executed without regard to better-priced quotations displayed at other Market Centers. When entering a DAY ISO, the entering firm accepts the responsibility for clearing the away market. Once on the orderbook, the order will only be executed at or between the prevailing NBBO prices.

3.2.3 Other Displayed Market Order Types For information on other Displayed Market order types, please see Appendix A. These order types may be entered through the FIX interface.

12

API Access to the ISE Stock Exchange

June 2009

Chapter 4. Pre-Market and Post Market Orders ISE introduced a Pre-Market Trading Session to its Displayed Market. This allows members to post orders and to execute trades beginning at 8:00 AM. During this time, ISE disseminates quotes to CQS (for NYSE, AMEX, and ARCA-listed securities) and UQDF (for NASDAQ securities). These quotes remain visible through the traditional 9:30 Opening. This does not impact Mid-Point Match or Displayed Market orders that are not marked to participate in the Pre-Market session, both of which may be entered beginning at 7:00 AM. For these orders, the ISE will continue to perform the first trade at the midpoint of the published NBBO after the Primary Market opens and ISE opening conditions have been met. As a reminder, NASDAQ and ARCA issues open upon the first NBBO quote update received after 9:30. NYSE and AMEX securities require both a trade from the Primary Market and an NBBO quote update after 9:30 before performing the midpoint opening cross. Starting at 9:30 am, the ISE will protect its displayed quotes from trade-throughs by allowing inbound ISO (Intermarket Sweep Order) and IOC (Immediate or Cancel) 0rders to execute against orders on the book. This will occur: 1. Whether or not the ISO or IOC orders are marked to participate in the PreMarket session. 2. Whether or not the ISE’s opening conditions have been met. The ISE has also introduced a Post-Market Trading Session. Post Market Trading will begin at the conclusion of the Regular Trading Session (4:00 PM or 4:15 PM) and will end at 5:00 PM for all securities. Trading behavior will be identical to that of the Pre-Market Session. That is, there will be no route out and no protection of away market quotes. The information provided below will guide members that want to participate in the Preand Post-Market Sessions.

4.1

Order Entry Members interested in participating in the Pre-Market trading session and/or the PostMarket trading session must affirmatively mark their orders to participate.

4.1.1 Pre-Market and Post-Market Order Entry API participants interested in participating in the Pre-Market, Post-Market or both Trading Sessions are directed to the Display field on the Enter Order and Enter Order Extended message formats. The values of P, A and B will be used in this field to convey interest in the Pre-Market, Post Market or all Trading Sessions respectively. An order that is marked eligible for the Pre-Market Session is automatically eligible for the Regular Trading Session if it is not executed or cancelled in Pre-Market Session. Pre-Market Orders will be automatically cancelled at the close of the Regular Trading Session along with all Day orders that are resting on the orderbook. If an order is received during the Regular Trading Session that is marked Post-Market eligible, it will participate in the Regular Trading Session and will automatically be carried over into the Post-Market Trading session. It will be continuously represented in the ISE quote.

API Access to the ISE Stock Exchange

13

June 2009

If an order is received during the Pre-Market Trading session that is marked Pre-and Post-Market eligible, it will participate in all three trading sessions until executed or cancelled. An order with the Post-Market eligible flag may also be entered after the Regular Trading Session ends. The following extract is from the Enter Order API template. It includes the new values for Pre-and Post-Market eligibility. Other values in this field have not been changed. Display

4.2

47

1

Alpha

“B” = Pre-Market and Post Market Eligible (Displayed) “A” = Post-Market Eligible “P” = Pre-Market Eligible “Y” = Displayed “M” = MidPoint Match [Non-Displayed] [ISESpecific] “S” = Solicitation of Interest (SOI) [Non-Displayed] [ISE-Specific]

Pre-Market and Post-Market Quotes and Trades The Pre-Market Session begins at 8:00 am and concludes with the NBBO Mid-Point cross after 9:30 when the Primary Market opens and ISE opening conditions have been met. Pre-Market eligible orders may be entered beginning at 8:00 am. Upon entry, PreMarket quotes will be disseminated. There will be no unique quote conditions to convey that they are Pre-Market or PostMarket quotes. Pre-Market orders are not subject to away market price protection prior to 9:30 nor are Post Market orders afforded that protection during the Post-Market Trading Session. As a result, executions during these sessions may result in a trade through of posted away market prices. Trades that occur in the Pre-Market Trading Session and during the Post-Market Trading Session will be identified with sales condition “T” on both CTS and UTDF to indicate that they occurred outside of normal trading hours. “T” trades are not included in the opening, high, low or last statistics. ISE will continue to disseminate quotes to CQS and UQDF in the Post-Market Trading Session.

4.3

14

Entering Orders between 8:00 AM and 9:30 AM •

Only limit orders are eligible to participate in the Pre-Market Session.



Market Orders and Stop Orders will be rejected until the mid-point cross occurs whether or not they are marked for the Pre-Market Session.



Orders received with the Pre-Market flag will participate in the Pre-Market Session.



Orders received without the Pre-Market flag will not participate in the PreMarket Session. If accepted, they will be held and entered into the mid-point cross.

API Access to the ISE Stock Exchange

June 2009

4.4



IOCs and ISOs flagged for Pre-Market and received prior to 9:30 may be executed.



IOCs and ISOs without the Pre-Market flag received prior to 9:30 will be rejected.



Day orders flagged for Pre-Market will be eligible for the Pre-Market Session.



Day orders without the Pre-Market flag will not be eligible for the Pre-Market Session but will be eligible for the midpoint cross.



Pre-Market orders will not be routed out prior to 9:30 am. There will be no route out during the Post Market Trading Session.

Entering Orders between 9:30 AM and the MidPoint Opening Under Reg NMS, orders must be protected beginning at 9:30 am. As explained above, this may be prior to the ISE MidPoint opening. To intentionally execute against Displayed Market quotes, members may enter limit IOC or limit ISO orders. These orders will interact with visible liquidity prior to the midpoint opening whether or not they are marked for the Pre-Market Session. Incoming IOC orders will be protected from trading through protected quotations on other exchanges. ISO orders will trade without validating away market prices. Orders with a Time in Force = Day received during this time without the pre-opening flag will participate in the mid-point opening cross. Orders marked Pre-Market will be accepted and immediately posted, executed or routed out. In summary,

4.5



ISOs and IOCs entered after 9:30 am may be executed whether or not they are marked for the Pre-Market Session. They are not routable.



Day Orders with the Pre-Market flag will be eligible for route out beginning at 9:30.



Day orders without the Pre-Market flag will be eligible for the mid-point opening.



Day orders without the Pre-Market flag set will be eligible for route out after the mid-point opening cross.



Resting Day orders without the Pre-Market flag set will be cancelled automatically by the system at the conclusion of the Regular Trading Session.

After the ISE MidPoint Opening •

Orders with the Pre-Market flag received after the midpoint opening will be accepted for execution in the regular trading session. The flag will be ignored.

API Access to the ISE Stock Exchange

15

June 2009

4.6

ISE Daily Timeline

7:00 AM Members may enter MPM and Regular Displayed Market Orders. These Orders will not participate in the Pre-Market Session but will participate in the midpoint opening cross. Market orders, IOCs, ISOs and FOKs are rejected.

8:00 AM Members may enter Pre-Market Orders. ISE initiates quoting and trading of PreMarket orders. No Reg NMS Order Protection is provided. No Route Out occurs. Executions may trade through away markets. ISO and IOC orders entered without the premarket flag are rejected.

9:30 AM IOC and ISO orders may execute against Displayed Market quotes whether or not marked for the Pre-Market Session. Reg NMS order protection is enforced. No trade throughs will occur for IOC orders. ISO orders may trade through by definition. Route Out begins for routable PreMarket orders.

4:00/4:15 PM

5:00 PM

Members may enter orders marked eligible for the Post Market Session.

Trading Ends

Orders entered for the Regular Session will be cancelled automatically. No Reg NMS Order Protection is provided. No Route Out occurs. Executions may trade through away markets.

ISE performs the midpoint cross for all MPM orders and Displayed Market orders that are not flagged for the PreMarket Session. Route Out begins for routable Displayed Market orders.

16

API Access to the ISE Stock Exchange

June 2009

Chapter 5.

Re-price or Re-Price to Post

5.1 Re-Price and Post Only/Re-Price Order Qualifiers Under Reg NMS, exchanges must avoid posting orders that intentionally lock or cross other market center quotes. To comply with this provision of the rule, the ISE will: •

Route an order to access the better-priced quotes on the away market.



Cancel non-routable orders that would create a locked or crossed market if displayed on the ISE.



Ship and Post- Deliver an ISO order to execute the better-priced quotes on the away market and post any unexecuted balance on the ISE orderbook.

This ISE functionality, at the member’s direction, re-prices an order to one valid price increment away from the NBBO before posting it on our book to prevent locking markets. The price will be adjusted only once, upon order arrival, and the adjusted price will be returned to the member in the order acknowledgement.

5.1.1 How to Enter Orders to be Re-Priced This functionality will only be available for regular limit orders only. Members wishing to use this re-pricing function must provide instructions on each order that is to be price-adjusted. Members delivering orders through the ISE API must apply either of these values in the “Route Out Eligibility” field to convey their interest in re-pricing (a.k.a. Intermarket Sweep Eligibility). Orders marked with the qualifiers “Re-Price” or “Post Only/Re-Price” are not subject to routing so these reprice instructions will not conflict with routing instructions. T = Re-Price U = Post Only/Re-Price

5.1.2 Understanding Order Behavior Orders marked “Re-Price” may interact with MidPoint Match and Displayed Market orders before being posted at the adjusted price. Orders marked “Post Only/Re-Price” will be immediately posted to the Displayed Market at the adjusted price, bypassing any MidPoint Match interest. The following summarizes the enhancement and identifies the changes to the API interface that will enable members to use this new functionality.

Description

Re-Price and Post Only/Re-price

Behavior

Re-price an order to one cent away from the NBBO. Buy orders will be priced one trading increment less than the NBBO offer. Sell orders will be priced one trading increment higher than the NBBO bid. The order will only be re-priced at the time of order entry.

API Access to the ISE Stock Exchange

17

June 2009

Eligible Order Types

This may be applied to regular limit orders only. This will not be applicable to Reserve or Discretionary orders.

Time in Force

Day orders only.

API Representation

Route Out Eligibility (a.k.a. Intermarket Sweep Eligibility)

18

T = Re-Price U = Post Only/Re-Price

API Access to the ISE Stock Exchange

June 2009

Chapter 6

ISE Stock Order API

ISE Stock Order API is a simple protocol that allows ISE participants to enter orders, cancel existing orders, and receive executions. Order Delivery functionality, also available through the API will be discussed in Chapter 8.

6.1

API Architecture

The ISE Stock Order API protocol is composed of logical messages passed between the ISE Stock Order API host and the client application. Each message type has a fixed message length. All messages are composed of non-control ASCII bytes. All messages sent from the ISE Stock Order API host to the client are sequenced and their delivery must be guaranteed by a lower level protocol. ISE TCP (available separately) is typically used to guarantee the delivery and sequencing of ISE Stock Order API messages sent from the host to the client. Messages sent from the ISE Stock 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 ISE Stock Order API host port is bound to an ISE assigned logical ISE Stock Order API Account. On a given day, every order entered on ISE Stock Order API is uniquely identified by the combination of the logical ISE Stock Order API Account and the participant created Token field.

6.2

Maximizing Performance: Transaction Batching

The ISE Stock Order API is designed to offer high performance under very demanding conditions. Performance can be increased further by batching multiple operations in a single, unsequenced ISE TCP message. Using this technique to submit batches of orders can result in very high order handling rates. This technique can also be used for very efficient cancel and replace functionality. In this case, an unsequenced packet containing a standard order cancel and standard order enter will be used. Note that for simply reducing quantity, a single cancel order message should be used to maintain Orderbook priority for the original order.

6.3

Data Types

Numeric fields are represented as a string of ASCII coded digits, right-justified and zero-filled on the left. Alpha fields are left-justified and padded on the right with spaces. Prices are given in decimal format with 6 whole number places followed by 4 decimal digits. The whole number portion is padded on the left with zeros; the decimal portion is padded on the right with zeros. The decimal point is implied by position; it does not appear inside the price field.

API Access to the ISE Stock Exchange

19

June 2009

Although the format permits 4 decimal digits, limit prices on the ISE Stock Exchange for orders priced at or above $1.00 must be expressed in whole pennies or they will be rejected. Stocks trading under $1.00 may be expressed in .0001 increments. Timestamp fields are given in milliseconds past midnight Eastern Time.

6.4

Service Bureau Configuration

A single ISE Stock Order API Account can accept orders from one or more firms, allowing a service bureau configuration. The service bureau may enter orders for the represented firm by putting the represented firm’s Market Maker Identifier in the Firm field upon order entry.

6.5

Supported Messages

Message Outbound Inbound System Event Order Accepted

Order Accepted (Extended)

Canceled Order

Executed Order Broken Trade

Notes System Event messages signal events that affect the entire ISE system. An Order 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 Order Accepted message. Note that the accepted values may differ from the entered values for some fields. You will always receive an Accepted Order message for an order before you get any Canceled Order messages or Executed Order messages for the order. An Extended Order 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 Order Accepted message. Note that the accepted values may differ from the entered values for some fields. You will always receive an Accepted Order Extended message for an order before you get any Canceled Order messages or Executed Order messages for the order. A Canceled Order message informs you that an order has been reduced or canceled. This could be acknowledging a Cancel Order Request message or it could be the result of an order time out or automatic cancel. Note that a Cancel Order message does not necessarily mean the entire order is dead. Some portion of the order may still be alive. An Executed Order message informs you that all or part of an order has been executed. 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.

20

API Access to the ISE Stock Exchange

June 2009

Price Correction

A Price Correction message informs you that an execution has been price-corrected.

Rejected Order

You will always get an Executed Order message prior to getting a Price Correction message for a given order/execution. A Rejected Order message may be sent in response to an Enter Order message if the order cannot be accepted at this time. The reason for the rejection is given. No further actions are permitted on this order.

Enter Order

The Token of a rejected order cannot be re-used. The Enter Order message lets you enter a new order into ISE. Each new order must have a Token that is unique to the day and that logical ISE Stock API account. If you send a valid order, you should receive an Accepted Order message.

Enter Order (extended)

If you send an Enter Order message with a previously used Token, the new order will be ignored. The Enter Order Extended message lets you enter a new order into ISE for a symbol having a suffix. Each new order must have a Token that is unique to the day and that logical ISE Stock 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.

Cancel Order

Suffixes are entered into the Stock Suffix field in the record that has been added as the last field in this message. 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. There is no “too late to cancel” message since by the time you received it, you would already have gotten the execution. Superfluous Cancel Order messages are silently ignored.

API Access to the ISE Stock Exchange

21

June 2009

6.6 Message System Event

Order Accepted

Message Formats Name Timestamp Message Type Event Code

Offset 0 8

Len 8 1

Value Timestamp “S”

Notes See Data Types above. System Event message identifier.

9

1

Alpha

0 8

8 1

Numeric “A”

Event Codes “S” = Start of Day. This is always the first message each day. It indicates that ISE is open and ready to start accepting orders. “E” = End of Day. This indicates that ISE 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 messages. Timestamp Accept Order message identifier.

Timestamp Message Type Token

9

14

Buy/Sell Indicator

23

1

Alphanumeric Alpha

Shares Stock Price

24 30 36

6 6 10

Numeric Alpha Price

Time in Force

46

5

Numeric

The order Token field as entered. Buy/sell indicator as entered: “B” = Buy order “S” = Sell order "T" = Sell Short 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 repriced by ISE 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. If no match for the order is available at the moment the order is accepted, any unexecuted shares in the order are immediately canceled. “99999”=System Hours. Indicates that the order should live until the end of the ISE trading day. “99989”=Fill or Kill [ISE-specific]

22

API Access to the ISE Stock Exchange

June 2009

Message

Order Accepted (Extended)

Name

Offset

Len

Value

Firm

51

4

Alpha

Display

55

1

Alpha

Order Reference Number Capacity

56

9

Numeric

65

1

Alpha

Route out eligibility [Intermarket Sweep Eligibility]

66

1

Alpha

Timestamp

0

8

Numeric

Message Type

8

1

“P”

Token

9

14

Buy/Sell Indicator

23

1

Alphanumeric Alpha

Shares Stock Price

24 30 36

6 6 10

Numeric Alpha Price

API Access to the ISE Stock Exchange

Notes “99988”=All or None Day Order. Only allowed for the MidPoint Match Order where field ‘Display’ is ”M” [ISEspecific] The accepted firm for the order. Note that if the firm was left blank on entry, the default firm for the ISE Stock API account will appear here. The display type for the order as entered: “B” = Displayed Pre-Market & PostMarket Eligible “A” = Displayed Post-Market Eligible “P” = Displayed Pre-Market Eligible “Y” = Displayed “M”= MidPoint Match [NonDisplayed, ISE-specific] ‘S” = Solicitation of Interest (SOI) [Non-Displayed, ISE-specific] The day-unique Order Reference Number assigned by ISE to this order. The capacity specified on the order: “A” = Agency “P” = Principal “R” = Riskless Principal “Y” = Eligible “N” = Not eligible “I” = ISO Order: [Eligible to match vs. MPM and DM] “E” = ISO Post Only “P” = Post Only “T” = Re-price “U” = Post Only/Re-price Timestamp

Accept Order message identifier. This will be received in response to an Enter Order Extended message for a symbol having a suffix. The order Token field as entered. Buy/sell indicator as entered: “B” = Buy order “S” = Sell order "T" = Sell Short 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-

23

June 2009

Message

Name

Offset

Len

Time in Force

46

5

Value

Numeric

Notes priced by ISE 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. If no match for the order is available at the moment the order is accepted, any unexecuted shares in the order are immediately canceled. “99999”=System Hours. Indicates that the order should live until the end of the ISE trading day. “99989”=Fill or Kill [ISE-specific]

Firm

51

4

Alpha

Display

55

1

Alpha

Order Reference Number Capacity

56

9

Numeric

65

1

Alpha

66

1

Alpha

Route out eligibility [Intermarket Sweep Eligibility]

24

“99988”=All or None Day Order. Only allowed for the MidPoint Match Order where field ‘Display’ is ”M” [ISEspecific] The accepted firm for the order. Note that if the firm was left blank on entry, the default firm for the ISE Stock API account will appear here. The display type for the order as entered: “B” = Displayed Pre-Market & PostMarket Eligible “A” = Displayed Post-Market Eligible “P” = Displayed Pre-Market Eligible “Y” = Displayed “M” = MidPoint Match [NonDisplayed] ‘S” = Solicitation of Interest (SOI) [Non-Displayed] The day-unique Order Reference Number assigned by ISE to this order. The capacity specified on the order: “A” = Agency “P” = Principal “R” = Riskless Principal “Y” = Eligible “N” = Not eligible “I” = ISO Order: Ineligible for routing. [Eligible to match vs. MPM and Displayed Market] “E” = ISO Post Only “P” = Post Only “T” = Re-price

API Access to the ISE Stock Exchange

June 2009

Message

Canceled Order

Name

Offset

Len

Value

Stock Suffix

67

6

Alpha

Notes “U” = Post Only/Re-price Stock Symbol Suffix Allowable suffixes: Letter (e.g., A, B, C, V etc.) = Class of Stock PR = Preferred PR followed by Letter (e.g., PRA) = Preferred Class RI = Rights U = Units WI = When Issued WD = When Distributed WS = Warrants WS followed by Letter (e.g., WSB) = Warrant Class Timestamp. Canceled Order message.

Timestamp Message Type Order Token Decrement Shares

Reason

0 8

8 1

Numeric “C”

9

14

23

6

Alphanumeric Numeric

29

1

Alpha

API Access to the ISE Stock Exchange

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 available on the book so the remaining unexecuted shares were immediately canceled. “T”=Timeout. The Time In Force for this order has expired. “S”=Supervisory. This order was manually canceled or reduced by the ISE Supervisory terminal. 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).

25

June 2009

Message

Name

Executed Order

Timestamp Message Type Order Token Executed Shares Execution Price Liquidity Flag

Offset

Len

Value

0 8

8 1

Numeric “E”

9

14

23

6

Alphanumeric Numeric

29

10

Price

39

1

Alpha

Notes “A” =This order cannot be posted because it will result in a locked or crossed market. “H” = This order cannot be posted because it will hit a Discretionary Order. “E” = Invalid Delivery Execution. As the ISE is not expecting Price Improvement on Order Delivery Orders, if ISE were to receive an execution price other than the one provided on the Delivery Request, ISE would reject the execution and return this error code. Timestamp. Order Executed message. The Order Token as entered. Incremental number of shares executed. The price at which these shares were executed. Liquidity Flag A = Added liquidity R = Removed liquidity ISE Specific codes: B = Order Delivery Added U = Added liquidity under $1.00 P = Removed liquidity under $1.00 Y = Routed under $1.00 N = Non-billable O = Opening X = Routed

Broken Trade

26

Match Number

40

9

Numeric

Timestamp Message Type Order Token Match Number

0 8

8 1

Numeric “B”

9

14

23

9

Alphanumeric Numeric

For Market Data Revenue Sharing Only M = MidPoint Match (Taker) L = MidPoint Match (Maker) S = MidPoint Match (Share) Assigned by ISE 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. Timestamp. Broken Trade message. The order Token field as entered. Match Number as transmitted in a preceding Executed Order message.

API Access to the ISE Stock Exchange

June 2009

Message

Name Reason

Price Correction

Timestamp Message Type Order Token Match Number New Execution Price Reason

Rejected Order

Enter Order

Offset 32

Len 1

0 8

8 1

Numeric “K”

9

14

23

9

Alphanumeric Numeric

32

10

Price

42

1

Alpha

Timestamp Message Type Order Token

0 8

8 1

Numeric “J”

9

14

Alphanumeric

Reason

23

1

Alpha

Type

0

API Access to the ISE Stock Exchange

1

Value Alpha

“O”

Notes The reason the trade was broken. Clients should anticipate additions to this list and thus support all capital letters of the English alphabet. “S”=Supervisory. The trade was manually broken from an ISE Supervisory terminal. Timestamp. Price Correction message. 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”=Supervisory. The trade was manually price-corrected from the ISE Supervisory terminal. Timestamp. Rejected Order message. This is the order Token field as transmitted with the order when entered. This is the reason the order was rejected. Clients should anticipate additions to this list and thus support all capital letters of the English alphabet. “T” = Test Mode “H” = Halted “S” = Invalid stock “D” = Invalid Display Type “C” = Exchange closed “X” = Invalid price “L” = Firm not authorized for clearing (invalid firm) "B" = Number of orders in the bulk order message exceeded threshold "E" = Exchange option "Q" = Invalid quantity "U" = Order has an invalid or unsupported characteristic "O" = Other “V” = Order is rejected because maximum order rate is exceeded. Identifies this message as an Enter Order message type.

27

June 2009

Message

28

Name Order Token

Offset 1

Len 14

Value Alphanumeric

Buy/Sell Indicator

15

1

Alpha

Shares

16

6

Numeric

Stock Price

22 28

6 10

Alpha Price

Time in Force

38

5

Numeric

Firm

43

4

Alpha

Display

47

1

Alpha

Notes This is a free-form, alpha-numeric field. You can enter any information you like. Token must be day-unique for each ISE Stock API account. Token is case sensitive, but mixing upper-case and lower-case Tokens is not recommended. “B” = Buy order “S” = Sell order "T" = Sell Short Total number of shares entered. Shares must be at least one round lot. Orders of less than one round lot size will be rejected. Partial Round Lot orders consisting of a round lot and an odd lot component are permitted. The odd lot component of a partial round lot will never participate in an execution. It will be returned to the member. Stock Symbol. The limit price of the order. The price is a 6 digit whole number portion followed by a 4 digit decimal portion. The whole number part should be left- padded with zeros and the decimal part must be right-filled with zeros. Must be greater than zero. The values for Time in Force are: “0” = Immediate or Cancel. If no match for the order is available at the moment the order is accepted, any unexecuted shares in the order are immediately canceled. “99999”=System Hours. Indicates that the order should live until the end of the ISE trading day. “99989”=Fill or Kill “99988”=All or None Day Order. Only allowed for a MidPoint Match order where field ‘Display’ is ”M” This field should contain the all caps Firm Identifier for the order entry firm. One logical ISE Stock API Account can potentially enter orders for multiple firms in a Service Bureau configuration. If this field is blank filled, the default firm for the ISE Stock API Account will be used. “B” = Displayed Pre-Market & Post-

API Access to the ISE Stock Exchange

June 2009

Message

Enter Order (Extended)

Name

Offset

Len

Value

Capacity

48

1

Alpha

Route out eligibility [Intermarket Sweep Eligibility]

49

1

Alpha

Type

0

1

“N”

Order Token

1

14

Alphanumeric

Buy/Sell Indicator

15

1

Alpha

Shares

16

6

Numeric

Stock Price

22 28

6 10

Alpha Price

API Access to the ISE Stock Exchange

Notes Market Eligible “A” = Displayed Post-Market Eligible “P” = Displayed Pre-Market Eligible “Y” = Displayed “M”= MidPoint Match (NonDisplayed) “S”= Solicitation of Interest (SOI) (Non-Displayed) “A” = Agency “P” = Principal “R” = Riskless Principal “Y” = Eligible “N” = Not eligible for Routing “I” = ISO Order: Not eligible for routing [Eligible to match vs. MPM and Displayed Market] “E” = ISO Post Only “P” = Post-Only “T” = Re-Price “U” = Post Only/Re-Price Identifies this message as an Enter Order message type. This is an alternative to the Enter Order message. It is to be used when the trading symbol includes a suffix. This is a free-form, alpha-numeric field. You can enter any information you like. Token must be day- unique for each ISE Stock API account. Token is case sensitive, but mixing upper-case and lower-case Tokens is not recommended. “B” = Buy order “S” = Sell order "T" = Sell Short Total number of shares entered. Shares must be at least one round lot. Orders of less than one round lot size will be rejected. Partial Round Lot orders consisting of a round lot and an odd lot component are permitted. The odd lot component of a partial round lot will never participate in an execution. It will be returned to the member. Stock Symbol. The limit price of the order. The price is a 6 digit whole number portion followed by a 4 digit decimal portion. The whole number part should be left- padded with zeros and the decimal part must be right-filled with zeros. Must be greater than zero.

29

June 2009

Message

Name Time in Force

Firm

Display

Offset 38

Len 5

43

4

47

1

Value Numeric

Alpha

Alpha

Capacity

48

1

Alpha

Route out eligibility [Intermarket Sweep Eligibility]

49

1

Alpha

Stock Suffix

50

6

Alpha

Notes The values for Time in Force are: “0” = Immediate or Cancel. If no match for the order is available at the moment the order is accepted, any unexecuted shares in the order are immediately canceled. “99999”=System Hours. Indicates that the order should live until the end of the ISE trading day. “99989”=Fill or Kill “99988”=All or None Day Order. Only allowed for a MidPoint Match order where field ‘Display’ is ”M” This field should contain the all caps Firm Identifier for the order entry firm. One logical ISE Stock API Account can potentially enter orders for multiple firms in a Service Bureau configuration. If this field is blank filled, the default firm for the ISE Stock API Account will be used. “B” = Pre-Market and Post Market Eligible (Displayed) “A” = Post Market Eligible “P” = Pre-Market Eligible “Y” = Displayed “M” = MidPoint Match [NonDisplayed] “S” = Solicitation of Interest (SOI) [Non-Displayed] “A” = Agency “P” = Principal “R” = Riskless Principal “Y” = Eligible “N” = Not eligible “I” = ISO Order: Ineligible for routing. [Eligible to match vs. MPM and Displayed Market] “E” = ISO Post Only “P” =Post Only “T” = Re-price “U” = Post Only/Re-price Stock Symbol Suffix Allowable suffixes: Letter (e.g., A, B, C, V etc.) = Class of Stock PR = Preferred PR followed by Letter (e.g., PRA) = Preferred Class RI = Right

30

API Access to the ISE Stock Exchange

June 2009

Message

Name

Offset

Len

Cancel Order

Type Order Token

0 1

Shares

15

API Access to the ISE Stock Exchange

Value

Notes U = Units WI = When Issued WD = When Distributed WS = Warrants WS followed by Letter (e.g., WSB) = Warrant Class

1 14

“X” Alphanumeric

6

Numeric

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.

31

June 2009

Chapter 7

ISE Data Feed API

ISE Data Feed API is a simple protocol that allows ISE participants to receive the ISE Stock Data Feed. The feed is limited to the top of the book. The top of book will be handled as an order that is added, partially canceled or completely canceled and replaced by a new order. The order reference number does not represent an actual order in the book. This version of the data feed does not support display of the full book and trade information.

7.1

Architecture

The ISE Stock Data Feed API protocol is composed of logical messages passed between the ISE Stock Data Feed API host and the client application. Each message type has a fixed message length. All messages are composed of non-control ASCII bytes. All messages sent from the ISE Stock Data Feed API host to the client are assumed to be sequenced and their delivery must be guaranteed by some lower level protocol. The ISE TCP described in Chapter 3 is typically used to guarantee the delivery and sequencing of ISE Stock Data Feed API messages sent from the host to the client.

7.2

Data Types

Numeric fields are a string of ASCII coded digits, right-justified and zero filled on the left. Alpha fields are left-justified and padded on the right with spaces. Prices are given in decimal format with 6 whole number places followed by 4 decimal digits. The whole number portion is padded on the left with zeros; the decimal portion is padded on the right with zeros. The decimal point is implied by position; it does not appear inside the price field. Although the format permits 4 decimal digits, limit prices on the ISE Stock Exchange for orders priced at or above $1.00 must be expressed in whole pennies. Stocks trading under $1.00 may be expressed in .0001 increments. Timestamp fields are given in milliseconds past midnight Eastern Time.

32

API Access to the ISE Stock Exchange

June 2009

7.3

Message Flow



Every session can be optionally configured to support snapshot retransmissions.



The default behavior is sequential retransmission mode.



If a session is configured to support retransmissions the following things should happen: 1. Member sends Login Request specifying next expected sequence number. 2. ISE compares next expected sequence number and current sequence number. If there is a big gap (configurable) between those numbers, it makes a decision to retransmit a snapshot. Otherwise, a regular sequential retransmission takes place. 3. ISE prepares snapshot data and converts the current quote for each symbol into a pair of AddOrder messages for buy and sell side. 4. ISE sends LoginAccepted to the member where SeqNo field = sequence number of the last message contributed to the snapshot + 1. 5. ISE sends unsequenced System Event: Event Code = ‘R’. When member receives this event it should wipe out its quotes to avoid stale quote condition. 6. ISE sends snapshot data as a list of unsequenced AddOrder messages. Note that there is no corresponding CancelOrder that deletes the previous quote, since previous state is irrelevant. Also, if a symbol has a 0x0 quote it is not going to be a part of the snapshot. 7. ISE sends unsequenced System Event: Event Code = ‘T’ indicating that the snapshot is complete. 8. ISE resumes the flow of sequenced messages starting from the message that happens after the last one contributed to the snapshot. From this point, receiver should resume incrementing its internal sequence number.

Note: For steps 5-7, all messages sent as unsequenced. Receiver should not increment its internal sequence number.

7.4

Supported Messages

Message Outbound Inbound System Event Add Order Message Order Cancel Message

7.5

Notes System Event messages signal events that affect the entire ISE system Add top of book. Cancel top of book in whole or in part.

Message Formats

Message

Name

Offset

Len

API Access to the ISE Stock Exchange

Value

Notes

33

June 2009

Message System Event

Add Order

Canceled Order

34

Name Timestamp Message Type Event Code

Offset 0 8

Len 8 1

Value Timestamp “S”

Notes See Data Types above. System Event message identifier.

9

1

Alpha

0 8

8 1

Numeric “A”

Event Codes “S” = Start of Day. This is always the first message each day. It indicates that ISE is open and ready to start accepting orders. “E” = End of Day. This indicates that ISE is now closed will not accept any new orders in this session. There will not be any more executions during this session. “R” = Start retransmission of the snapshot data. When this status is received, all outstanding top of book quotes should be wiped out. “T” = Retransmission of the snapshot data is complete. Timestamp. Add order (top-of-book) message Identifier.

Timestamp Message Type Order Reference Number Buy/Sell Indicator

9

9

Numeric

The assigned reference number to the order (top of book) message.

18

1

Alpha

Shares Stock Price Display

19 25 31 41

6 6 10 1

Numeric Alpha Price Alpha

Timestamp Message Type Order Reference Number Canceled Shares

0 8

8 1

Numeric “X”

Buy/sell indicator as entered: “B” = Buy order “S” = Sell order Total number of shares. Stock symbol as entered. The accepted limit price of the order (top-of-book). The display type for the order (top-of-book) as entered: “Y” = Displayed Timestamp. Canceled order (top-of-book) message.

9

9

Numeric

The assigned reference number to the order (top of book) message.

18

6

Numeric

The number of shares canceled.

API Access to the ISE Stock Exchange

June 2009

Chapter 8

Delivery Orders

The ISE Stock Order API also supports messages for posting ECN orders and receiving matched order messages for acknowledgement. Only an ISE Order Delivery Participant may receive a Delivery Request and respond with a Delivery Execution or Delivery Request Canceled. Order Delivery Participants submit orders using the Enter Order or Enter Order Extended formats discussed in Chapter 6. Prior to executing an order, the ISE will initiate a Delivery Request (Delivery Request Extended) to the Participant. The Participant responds with the execution confirmation (Delivery Execution) or denial (Delivery Request Canceled). If the Delivery Request canceled message is received or the Delivery Execution is for fewer shares than requested, the original order is removed from the orderbook. The Delivery Execution Reject is sent by the ISE if it cannot proceed with the execution instruction received in the Delivery Execution message.

8.1

Supported Messages

Message Outbound Inbound Delivery Request Delivery Request (Extended) Delivery Execution Delivery Execution (Extended)

Delivery Request Canceled Delivery Execution Reject

8.2

Notes Delivery order execution request. Delivery order execution request (Alternative format). It differs from the Delivery Request message by the addition of the Buy/ Sell indicator. Delivery order execution acknowledgement. Delivery order execution acknowledgement issued in response to an Extended Delivery Request. This differs from the Delivery Execution message by the addition of a match number that will be reflected on the Execution report. The match number is provided by Order Delivery Participant. Delivery order execution cancellation.

This message is sent when the Delivery Execution message cannot be applied by the host. A reason code is provided to inform the Order Delivery participant of the reason for rejecting the execution. (For example, Exceeds timeout interval.)

Message Formats

Message Delivery Request

Name Timestamp Message Type Request Token

Offset 0 8

Len 8 1

Value Numeric “F”

9

14

Alphanumeric

API Access to the ISE Stock Exchange

Notes Timestamp Delivery Request message identifier. The Token assigned by ISE to the Delivery Request

35

June 2009

Message

Delivery Request (Extended)

Delivery Execution

Delivery Request Canceled

Delivery Execution Reject

36

Name Shares Stock Price Order Token Timestamp

Offset 23 29 35 45

Len 6 6 10 14 8

Value Numeric Alpha Price Alphanumeric Numeric

Notes Total number of shares. Stock symbol as entered. The limit price of the order. The Token of the original Delivery Order. Timestamp

0

8

1

M

Delivery Request message identifier. The token assigned by ISE to the Delivery Request. Total number of shares Stock symbol The limit price of the order

Message Type Request Token Shares Stock Price

9

14

23 29 35

6 6 10

Order

45

14

Buy/Sell Indicator

59

1

Alphanumeric Alpha Alpha Numeric (Price) Alphanumeric Alpha

Stock Suffix Message Type Request Token Buy/Sell Indicator

60

6

Alpha

The token of the original Order Delivery Order. Buy/Sell Indicator as entered: “B” = Buy order “S” = Sell order ”T” = Sell Short Stock Symbol Suffix

0

1

“G”

Delivery Execution message.

1

14

15

1

Alphanumeric Alpha

16

6

Numeric

22

10

Price

32

14

0

1

Alphanumeric “H”

1

14

The Token assigned by ISE to the Delivery Request. Buy/sell indicator: “B” = Buy order “S” = Sell order "T" = Sell Short Incremental number of shares executed. The price at which these shares were executed. The Order Token of the original Delivery Order. Delivery Request Canceled message. The Token assigned by ISE to the Delivery Request. The Order Token of the original Delivery Order. Provided by Order Delivery Participant. Timestamp

Executed Shares Execution Price Order Token Message Type Request Token Order Token Reason

15

14

29

1

Alphanumeric Alphanumeric Alpha

Timestamp

0

8

Numeric

Message Type Request Token

8

1

“D”

9

14

Alphanumeric

Delivery Execution Reject message identifier. The Token assigned by ISE to the Delivery Request

API Access to the ISE Stock Exchange

June 2009

Message

Name Order

Offset 23

Len 14

Match Number

37

9

Value Alphanumeric Numeric

Reject Reason

46

1

Alpha

Notes The Token of the original Delivery Order. Unique identifier of the trade triggered by this Delivery Execution. This number is going to be reflected on Executed Order message. Provided by the Order Delivery Participant. This is the reason Delivery Execution was rejected: “R” = Invalid Request Token “S” = Invalid Buy/Sell Indicator “T” = Delivery Request Timeout “O” = Other

API Access to the ISE Stock Exchange

37

June 2009

Chapter 9 Exchange

Preparing to Trade on the ISE Stock

9.1 Conformance Testing Conformance testing can be arranged with ISE Technology Member Services. Please contact [email protected] or (800) 518-1564. The ISE will support industry standard test symbols in production. Please contact [email protected] or (800) 518-1564 with requests for specific test symbols.

Symbol

38

Exchange

CUSIP

TESTA

NYSE

99000A927

ZXZZT

NASDAQ

868990524

API Access to the ISE Stock Exchange

June 2009

9.2 ISE Production Trading Sessions The sessions and times for regular day trading at ISE Stock Exchange are listed in Table 1. Table 1. ISE trading sessions for FIX orders

Time (EST)

Session

FIX status

07:00 – Primary Market Open

Pre-Open

Available

08:00 – Primary Market Open

Pre-Market Trading

Available

9:30-16:00 (16:15)

Regular Trading Session

Available

16:00(16:15)17:00

PostMarket Trading Session

Available

17:00-17:59

18:00 – 06:59

Post- Open

Closed

API Access to the ISE Stock Exchange

Available

Unavailable

Activity



Day and AON DAY MidPoint Match Orders are allowed.



IOC & FOK MidPoint Match Orders are not allowed.



SOI orders are not allowed.



Displayed Market Orders marked for participation in this session will be posted and traded.



The market is open.



Reserve and SOI Orders are accepted.



The Post Market Trading Session begins at the close of the Regular Trading Session.



Displayed Market orders marked for participation in the PostMarket Session will continue to be quoted and traded.



Day orders will be cancelled.



The market is closed.



No new orders will be accepted.



Firms cannot send new orders; they will be rejected.



Firms can receive order status and cancel orders.



ISE Market Control can adjust trades.



The server is unavailable and does not accept messages.

39

October 2008

Confidential

Appendix A. Other Displayed Market Order Types The following order types are not supported through the API. They are available through the FIX interface only. Members interested in placing these orders are directed to the FIX Order Entry Specification for Equities.

Reserve Order This order is characterized by a visible quantity and a hidden, reserve quantity from which the display quantity is replenished when the displayed size is fully executed. The system will either replenish the display quantity with a fixed quantity or random amount depending upon instructions provided on the order.

Discretionary Order This order is entered with both a display price and a hidden, discretionary price. The order will be posted to the Orderbook at the display price but remains eligible to execute within its discretionary range against MPM orders and incoming Displayed Market orders.

Pegged Order Members may enter orders pegged to the NBBO price. These orders will be re-priced and will be assigned a new execution priority with every change in the NBBO. Orders are pegged to the same side of the market; that is, a buy order is pegged to the bid and a sell order is pegged to the offer. Display prices may be further adjusted by the inclusion of a peg offset. Orders may optionally include a cap price; the cap defines the highest bid price or lowest offer price to display this order.

Pegged Discretionary Order This order will have characteristics of both a pegged order and a discretionary order. The display price will move with the NBBO but the order possesses an inherent willingness to execute within the non-displayed, discretionary range should a contra-side order be entered that is not executable at its display price.

Stop Order Orders may be entered with a stop price. A stop order is elected based upon consolidated trade information. When the stop price is triggered, the order will be activated and sent into the market as either a Market order or a Limit order depending upon the instructions accompanying the order.

API Access to the ISE Stock Exchange

21

June 2009

Appendix B. Routing Eligibility With the exception of orders entered into MidPoint Match, ISOs and unelected Stop orders, orders entered on the ISE Stock Exchange will be eligible for routing to better-priced markets unless they bear instructions preventing such routing. Routing instructions, entered in “Route Out Eligibility” also define an order’s eligibility for matching Displayed Market orders against MPM orders. Available routing instructions are: •

Routable: All Displayed Market orders will be routable by default except for stop orders before election, IOC, FOK and ISO orders. Orders are executable against MPM orders as well.



Not Routable: This instruction implies that the order cannot be routed to an away market. It can be entered in the ISE Displayed Market or matched against a MidPoint Match order. If entered in the Displayed Market, it is displayed as long as it does not result in a lock or cross with an automated quote. If placement on the book will result in a locked or crossed market, the order will be canceled back to its owner. MPM orders are not routable.



Post Only: Post Only is an instruction that requires the order to be a provider of liquidity on the Displayed Market Orderbook. Orders with this instruction can never be executed as takers of liquidity. Because of these conditions, orders with this instruction can never be executed in MPM nor can they be routed out to an away market center. This order instruction cannot be used in conjunction with a time in force of IOC or FOK. If this order is executable upon arrival or its entry on the orderbook would result in a locked or crossed market, it is cancelled.



ISO [I]: This order is an Intermarket Sweep Order. By definition, it is not routable to another Market Center but can be matched against an MPM order (providing it price improvement) or a Displayed Market Order.



ISO [E]…This order will post on the ISE without regard to other displayed market quotes. The responsibility for clearing the away markets rests with the entering firm. Once on the orderbook, the order will only be executed at a price within the prevailing NBBO.

Note: The absence of the Route Out Eligibility instruction will cause an order to be treated as “Routable”. Routing Instruction Summary Route Out Eligibility

Routable/Not Routable

Y

Routable

N

Not Routable

I (ISO Order)

Not Routable

E Post Only, Day ISO

Not Routable

P Post Only

Not Routable

T Re-Price

Not Routable

U Post Only Re-Price

Not Routable

API Access to the ISE Stock Exchange

41

June 2009

Appendix C. Miscellaneous OATS Reporting OATS reporting is an NASD member responsibility; therefore, the reporting obligation rests with ISE members to provide input to OATS. To assist ISE members with their OATS reporting responsibilities, the ISE offers the following suggestions: •

For orders routed to the ISE, brokers are reminded that the ISE is an Exchange. Report as you would orders routed to any other exchange.



Whether using the Route Report or the Combined Order/Route Report, the “Send to Firm MPID” will be blank and the “Destination Code” will be XI.



The OATS Helpdesk has proven to be an invaluable resource center for the ISE. The OATS Helpdesk can be reached directly at (800) 321-NASD if you have further questions.

Summary Message Format

Send to Firm MPID Value

Destination Code *

Route Report

Blank

XI

Combined Order/Route Report

Blank

XI

Clearance and Settlement The ISE will submit trade data to DTCC on behalf of the parties involved in each trade. Those trades will be output to Firms on the Regional Interface Operation Blotters (RIO) with the Originating Market/Trade Source = XISE. To ensure anonymity through the entire trade and settlement process, the identity of the contra-party to each trade will be suppressed on the output reports received. In place of the true contra party, the following information will be delivered:

Contra Executing Broker (MPID)

ANON

Contra Clearing Firm

8602

Viewing ISE Quotes and Trades The ISE, as an exchange, reports all quote and trade information as a Participant directly to the Consolidated Trade Authority (CQS for NYSE- and AMEX-listed quotes, CTS for listed trades) and to NASDAQ (UQDF for NASDAQ-Listed quotes and UTDF for NASDAQ trades.) Quotes and Trades are represented on these feeds with Market Center Identifier “I”. ISE quotes are not represented on NASDAQ Level II feeds.

42

API Access to the ISE Stock Exchange

June 2009

Reg NMS Compliant Route Out Services ISE will offer route out services for members when better prices are posted on other Market Centers. Orders executed on other exchanges will be identified as having been routed; the Liquidity Indicator on the execution report = X will convey this. The destination exchange is not provided. The member will receive an execution report from the ISE and for clearance purposes, trades with the ISE. Members wishing to use their own smart routers may mark an order as Non-Routable. When so marked, orders that would be eligible for route out will be cancelled.

Other Questions Questions will always arise. The following matrix should make it easier to find answers to those questions. When in doubt, contact Market Operations and they can direct your call appropriately.

Department

Email Address

Phone

Market Operations

[email protected]

(800) 518-7654

Technology Member Services

[email protected]

(800) 518-7657

Membership

[email protected]

(800) 518-7360

FIX and Connectivity Support

[email protected]

(800) 518-1564

Member Billing

[email protected]

(800) 518-7360

Surveillance

[email protected]

(800) 518-7360

API Access to the ISE Stock Exchange

43