FIX Specification Millennium ATS Dark Pool Direct Order Routing Version 13AUG14v1.1 MILLENNIUM ATS 4.2 FIX SPECIFICATION Table of Contents Overview: ............................................................................................................................. 3 Hours of operation: ................................................................................................................. 3 ATS opening match: ............................................................................................................... 3 Introduction .......................................................................................................................... 3 Messaging ............................................................................................................................. 4 Message Headers and Trailers .................................................................................................. 4 Sessions ............................................................................................................................. 5 Logon ............................................................................................................................. 5 Logout ............................................................................................................................. 5 Administrative Messages ......................................................................................................... 5 Delayed and Stale Messages .................................................................................................... 6 Cancel On Disconnect ............................................................................................................. 6 Session Configurations ............................................................................................................ 6 Message Dictionary................................................................................................................. 7 Administrative Messages ......................................................................................................... 7 Inbound Messages - Tag 35 ..................................................................................................... 7 Outbound Messages - Tag 35................................................................................................... 7 Standard FIX Order Entry / Execution Messages ......................................................................... 8 Inbound Messages - Tag 35 ..................................................................................................... 8 Outbound Messages - Tag 35................................................................................................... 8 Message Formats ................................................................................................................... 9 Administrative Messages - Inbound .......................................................................................... 9 Logon (A)......................................................................................................................... 9 Logout (5) ........................................................................................................................ 9 Administrative Messages - Outbound ........................................................................................ 9 Logon (A)......................................................................................................................... 9 Logout (5) ........................................................................................................................ 9 Message Formats ..................................................................................................................10 New Order Single – (D) ........................................................................................................10 Order Cancel Request (F) .......................................................................................................13 Order Cancel/Replace Request (G) – Resting Order Only ........................................................14 Order Cancel/Replace Request (G) ..........................................................................................14 Order Status Request (H) .......................................................................................................14 Standard FIX Order/Execution Messages -- Outbound ................................................................15 Execution Report (8) .............................................................................................................15 Order Cancel Reject (9) .........................................................................................................17 Appendix A - Listed Symbol Suffixes .........................................................................................18 Appendix B - Order Capacity ...................................................................................................19 Appendix C - MinQty Functionality (Resting Orders) ...................................................................20 Millennium ATS Minimum Quantity Options and Results .............................................................21 Appendix D - MinQty Functionality (IOC Orders) .......................................................................22 Appendix E - Header Tags ......................................................................................................23 Page 2 of 23 MILLENNIUM ATS 4.2 FIX SPECIFICATION Overview: Millenium ATSSM is The Convergex Millennium Alternative Trading System (ATS) is an automated execution venue designed to maximize execution quality and reduce overall transaction costs. A hybrid market system, Millennium enhances traditional auction markets by combining the electronic execution technology of an ECN with the liquidity of traditional primary markets. Millennium offers users the opportunity to achieve price or liquidity improvements while mitigating negative price impact for institutional-size trades. Millennium leverages the power of the Convergex Marketplace and its real-time matching algorithm executes trades at the midpoint of the National Best Bid and Offer (NBBO). Hours of operation: The ATS is available between 7:00am - 5:00pm EST. ATS will accept Resting orders beginning at 7:30am EST. Resting orders entered pre-market will remain active until 4:00pm EST ATS will accept IOC orders from 9:30am - 4:00pm EST. * (Holiday hours as the exception) ATS matching will ONLY occur between 9:30am - 4:00pm EST. * (Holiday hours as the exception) ATS opening match: Resting orders will be accepted beginning at 7:30am EST and can be canceled at any time. A Symbol is opened once the ATS receives the first round lot opening print on the primary listing market for that symbol. At this point, all BUY orders priced at (or above) the opening price are matched with all SELL orders priced at (or below) the opening price. Orders are matched at the opening price, in order, based on time of entry. After the initial opening cross, the remaining unmatched orders are processed via normal matching rules Introduction This document is a specification for interfacing with the Millennium Alternative Trading System (ATS) using the FIX protocol for the purpose of entering orders and receiving executions. NOTES: NYFX – This is the mnemonic used for the Millennium ATS Required Fields MUST be populated with a valid value, there will be NO exceptions. Additional or unexpected FIX fields on all FIX messages will be ignored. Page 3 of 23 MILLENNIUM ATS 4.2 FIX SPECIFICATION Messaging Millennium ATS uses Version 4.2 of the FIX as the messaging format. The FIX session level and message formats are supported as described in the FIX specifications. Message Headers and Trailers All messages contain the following standard header; additional header fields will be used by certain categories of messages (e.g. Order related messages). Header, Body and trailer tags must comply with FIX standard. *See appendix E for additional Header Tags and Execution Report response logic. Tag 8 Field Name BeginString 9 BodyLength 35 MsgType 34 43 49 MsgSeqNum PossDupFlag SenderCompID 50 SenderSubID 52 SendingTime 56 TargetCompID 57 TargetSubID 97 PossResend 115 OnBehalfOfCompID 116 OnBehalfOfSubID 122 OrigSendingTime 128 DeliverToCompID 129 DeliverToSubID Comments This must be the first field in the message, and must be set to "FIX 4.2" This must be the second field in the message, and is the message length in bytes, forward from this field to the checksum. This must be the third field in the message, and will have one of the values listed in the Message Dictionary section. Message sequence number. REQUIRED if message is a retransmission. Inbound Messages - ID of the user as assigned by the ATS. Outbound messages - will be the inbound value of Tag 56 Maximum length: 12 Assigned value used to identify specific message originator. Includes milliseconds except where the value is 0, where upon the decimal point and the three zeroes are suppressed for message brevity. Other timestamp fields will optionally contain millisecond values. Inbound messages - will be assigned Outbound messages - ID of the user. Assigned value used to identify specific individual or unit intended to receive message. If SenderSubID tag 50 was sent, value will be returned in Tag 57 TargetSubID. REQUIRED if message may be a duplicate of another message sent under a different sequence number. Assigned value used to identify firm originating message if the message was delivered by a third party i.e. the third party firm identifier would be delivered in the SenderCompID field and the firm originating the message in this field. Assigned value used to identify specific message originator (i.e. trader) if the message was delivered by a third party. For messages with PossDupFlag = Y, indicates time that message was first sent. Assigned value used to identify the firm targeted to receive the message if the message is delivered by a third party. If OnBehalfOfCompID Tag 115 is sent value will be returned in tag 128. Assigned value used to identify specific message recipient (i.e. trader) if the message is delivered by a third party. If OnBehalfOfSubID Tag 116 is sent value will be returned in tag 129. Page 4 of 23 MILLENNIUM ATS 4.2 FIX SPECIFICATION All messages contain the following standard trailer: Tag 10 Field Name CheckSum Comments Message Checksum - refer to FIX Protocol Specification for details on how to calculate. Sessions ATS supports FIX sessions as described in the FIX Protocol Specification with a few modifications described below. Refer to the specification for details of the FIX session layer. This section will simply touch on the relevant messages. Logon The first message sent by a user after connection should be a FIX Logon message. If the user is authenticated, the ATS will respond with a Logon message and the session is considered established. *Maximum Message Size supported for a single message is 500 (Tag 383). Logout To end a session, either side may send a Logout message. The recipient should respond with a Logout message and terminate the connection. Administrative Messages ATS will support the following administrative messages in regards to the session: TEST REQUEST: This message will be sent if data has not been received for a configurable period of time. The recipient should respond with a Heartbeat message. HEARTBEAT: This message is sent in response to a Test Request and should also be generated if no messages have been sent for the heartbeat interval. The minimum interval allowed is 5 seconds. RESEND REQUEST: This message is sent if a sequence number gap is detected. This will request the missed messages. SEQUENCE RESET: This message is sent to fill gaps for messages that should not be retransmitted, and to reset sequence numbers in a situation where message recovery is not possible. Page 5 of 23 MILLENNIUM ATS 4.2 FIX SPECIFICATION Delayed and Stale Messages In the event the ATS receives a client’s New Order Single or a Cancel / Replace Request message that is 15 seconds behind or in front of the current time, the ATS will reject (application level reject) the order. TransactTime (60) is a required field on New Order Single, Order Cancel Request and Order Cancel Replace Request messages. If TransactTime (60) is not present the order will be rejected. TransactTime must be in GMT Time No checking is done on straight Order Cancel Request messages. Stale messages off by 2 minutes compared to the current ATS time will result in a session disconnect compliant with FIX standards. Cancel On Disconnect All open orders are cancelled when a user is disconnected, whether it is an abnormal disconnect or a clean logoff. Session Configurations The following table indicates configurations that are available at the session level. Configuration Pending Messages Send Breaks Description By default, the ATS will Suppress execution reports with Pending New, Pending Cancel, and Pending Replace statuses. By request, a user can be configured to receive these messages. By default, the ATS will not send execution reports indicating breaks. If a user wishes to receive these messages, the user will need to certify for these messages and have this configuration turned on. Page 6 of 23 MILLENNIUM ATS 4.2 FIX SPECIFICATION Message Dictionary Administrative Messages Inbound Messages - Tag 35 The following table lists the inbound messages from Users to Millennium ATS. Msg Type A Message Logon 5 Logout Description This is sent by the user after connection to identify and authenticate the user and to establish a FIX session. The ATS will respond with a Logon message to indicate success or failure of authentication. This is sent by the user to terminate the FIX session and perform a clean disconnect from the ATS. The ATS will send a Logout message back and disconnect the connection. Outbound Messages - Tag 35 The following table lists the outbound messages from Millennium ATS to the User. Msg Type A 5 j 3 Message Logon Logout Business Message Reject Session Level Reject Description This is a response to the Logon message. This is a response to the Logout message. A MsgType "j" will be sent when an application-level message which fulfills session-level rules but does not fulfill application-level rules and cannot be rejected via other means When a bad request is received a FIX session level reject will be sent. Page 7 of 23 MILLENNIUM ATS 4.2 FIX SPECIFICATION Standard FIX Order Entry / Execution Messages Inbound Messages - Tag 35 The following table lists the inbound messages from the user to the ATS. MsgType D Message New Order Single F Order Cancel Request Order Cancel / Replace Request Order Status Request G H Description This will submit a new Resting or IOC Order to the ATS. The ATS will respond with an Execution Report. Unsolicited Execution Reports may follow. This will cancel a previously entered Resting or IOC Order. The ATS will respond with an Execution Report or Order Cancel Reject. This will attempt to cancel a previously entered Resting or IOC Order and replace it with a new Resting or IOC Order. The ATS will respond with an Execution Report or Order Cancel Reject. This will request the current status of a previously submitted Resting or IOC Order. An Execution Report will be returned. Outbound Messages - Tag 35 The following table lists the outbound messages from the ATS to the User. MsgType 8 9 Message Execution Report Order Cancel Reject Description This message is used to communicate all status information about an order. It is sent for rejection, acceptance, executions and cancels. By default transient statuses such as Pending New and Pending Cancel are suppressed. By request a user can be configured to receive these messages. This message is sent to reject a cancel or a cancel/replace attempt. Page 8 of 23 MILLENNIUM ATS 4.2 FIX SPECIFICATION Message Formats The following tables indicate the usage of each of the FIX messages that are used by the ATS. In addition to requirements for the standard FIX message header and trailer. The ATS uses exclusively the FIX Tags defined in this section. Any other FIX Tags specified on inbound messages are ignored. Administrative Messages - Inbound Logon (A) Tag 98 FieldName EncryptMethod Req'd Y 108 HeartBtInt Y Description Indicates if a message is using secure authentication and the encryption being used. This should be set to '0' to indicate no encryption for now. Indicates interval for heartbeats in seconds. *Minimum Interval allowed is 5 seconds Logout (5) This is the standard FIX Logout message. Administrative Messages - Outbound Logon (A) Tag 98 FieldName EncryptMethod Req'd Y 108 HeartBtInt Y 369 LastMsgSeqNumProcessed N Description Will be set to '0' to indicate that encryption is not currently being used. Indicates interval for heartbeats in seconds. *Minimum Interval allowed is 5 seconds Indicates last message sequence number processed. Logout (5) This is the standard FIX Logout message. Tag 58 FieldName Text Req'd N 335 TradeSesReqID Y Description Optional text - This will often be copyright or other notice information passed on from the execution service. Maximum length: 40 Unique ID of a Trading Session Status Message. Page 9 of 23 MILLENNIUM ATS 4.2 FIX SPECIFICATION Message Formats New Order Single – (D) This message is used for submission of new Orders. Fields with a Maximum Length specified will be strictly validated against this length and the message will be rejected with the appropriate reject message if a field exceeds the specified maximum length. Tag 1 Field Name Account Req'd N 11 ClOrdID Y 18 ExecInst N Description Maximum length: 20 Alphanumeric Account for user. Maximum length: 40 Unique identifier for Order as assigned by user. Uniqueness must be guaranteed within a single trading day and is the responsibility of the user to guarantee. All values on INBOUND messages cannot start or end in a SPACE. Leading Zero's will also cause the order to be REJECTED. One or more space-separated execution instructions. Used to specify a number of the attributes. Valid values are as follows: M - Peg to Midpoint & Midpoint IOC; ONLY valid with Order Type P (tag 40) P – Peg to Market; ONLY valid with Order Type P (tag 40) B - Block Minimum Quantity (Tag 110 MUST be Populated in conjunction with tag 18=B. Executions must be greater than or equal to the Min Qty F - Fill Remaining Block Quantity in a Single Execution (valid only when used with Tag 18=B and Tag 110) X - Cancel Remainder after FIRST Minimum QTY Match Tag 18 can be populated with either F or X but both values cannot be in tag 18 on the same order. 38 OrderQty Y NOTE: Orders entered as Held (18=5) will be rejected back to the client. Maximum length: 8 Quantity of shares in an order. Minimum order quantity is 100 shares. ATS executes in round lots greater than or equal to 100 shares. Odd Lots will be REJECTED. 40 OrdType Y 44 Price N *Mixed Lots will be accepted; however the odd lot portion of the order will be canceled back as an unsolicited cancel following the last round lot execution. Use only one of the following codes to indicate the Order type. 1 - Market Order - No Price 2 - Limit Order - Price Required P - Pegged - Price Optional (Requires tag 18) Price required for Limit Orders Price optional for Pegged Orders Price on Market Order will be rejected. Page 10 of 23 MILLENNIUM ATS 4.2 FIX SPECIFICATION Tag 47 Field Name OrderCapacity Req'd Y 49 50 SenderCompID SenderSubID Y Y 54 Side Y 55 Symbol Y 59 TimeInForce Y 60 TransactTime Y 65 109 SymbolSfx ClientID N N 110 MinQty N 114 LocateReqd N Description Capacity of executing firm. This value must be specified by the user on every order. If Capacity is not included the order will be REJECTED. See Appendix B for valid values. Assigned value used to identify firm sending message. Maximum length: 12 Assigned value used to identify specific message originator. 1=Buy 2=Sell 5=Sell Short 6=Sell Short Exempt Must be CAPITALIZED with no Spaces - See Appendix A for symbology. Valid values are as follows: 0 = DAY 3 = IOC (Immediate or Cancel) 6 = GTT Good Till Time NOTE: If GTT is used, then ExpireTime must be specified in one of the following tags: 126 (Time expressed as GMT) TransactTime (60) is a required field on the New Order Single, Order Cancel Request and Order Cancel Replace Request messages. TransactTime (60) must be present or orders will be rejected. The default stale time interval is 15 seconds behind or ahead of the Millennium ATS system clock. TransactTime must be in GMT Time. For symbol suffixes see Appendix A. MPID – required for customers that have an MPID MinQty must be expressed in Round lots greater than or equal to 100 shares. Mixed or Odd lots will cause the order to be rejected. See appendix C for additional MinQty options. Required for Short Sale (Tag 54=5) and Short Sale Exempt (Tag 54=6) locates. Populate Tag 114 with a value of N to indicate the broker is not required to locate. Tag 5700 is required when sending Tag 114 with a value of N. Populate Tag 114 with a value of Y to indicate the broker is responsible for locating the stock. Order rejected if Non BD. 115 OnBehalfOfCompID N 116 OnBehalfOfSubID N For Broker Dealers Tag 114 is not required. For Non-Broker Dealers Tag 114/Tag 5700 is required. Assigned value used to identify firm originating message if the message was delivered by a third party i.e. the third party firm identifier would be delivered in the SenderCompID field and the firm originating the message in this field. Assigned value used to identify specific message originator (i.e. trader) if the message was delivered by a third party. Page 11 of 23 MILLENNIUM ATS 4.2 FIX SPECIFICATION Tag 126 Field Name ExpireTime (GMT Time) Req'd N Description TimeInForce tag 59 must equal 6 for tag 126 to be accepted. Expiration time must be expressed in UTC (Universal Time Coordinated, also known as "GMT") The smallest acceptable increment is Seconds. Example: 126=20130108-14:52:22 5700 LocateBroker N * All orders expire at the end of the day's trading session Maximum length: 30-char Locate Broker is required when Tag 114=N Page 12 of 23 MILLENNIUM ATS 4.2 FIX SPECIFICATION Order Cancel Request (F) This message is used to cancel a previously submitted Order. Orders in Millennium ATS can be cancelled at any time by the originating user or by a system administrator. Tag 11 Field Name ClOrdID Req'd Y 41 54 OrigClOrdID Side Y Y 55 Symbol Y 60 TransactTime Y 65 SymbolSfx N Description Maximum length: 40 Unique identifier for Order as assigned by user. Uniqueness must be guaranteed within a single trading day, and is the responsibility of the user to guarantee. All values on INBOUND messages cannot start or end in a SPACE. Leading Zero's will also cause the order to be REJECTED. Original user reference number for the Resting Order. 1=Buy 2=Sell 5= Sell Short 6=Sell Short Exempt Must be CAPITALIZED with no Spaces - See Appendix A for symbology. TransactTime (60) is a required field on the New Order Single, OrderCancel Request and Order Cancel Replace Request messages. TransactTime (60) must be present or orders will be rejected. For symbol suffixes see Appendix A. Page 13 of 23 MILLENNIUM ATS 4.2 FIX SPECIFICATION Order Cancel/Replace Request (G) – Resting Order Only The originating user can modify Resting Orders at any time. If a user has successfully modified a Resting Order, that Resting Order will be subjected to the same validation and processing that is applied to newly submitted Resting Orders. The following defines which data fields can be modified. Certain data fields cannot be modified to ensure the correct handling of the Resting Order within ATS and to guarantee the integrity of the audit trail for the ATS. When Resting Orders are modified, priority will be re-evaluated for the Resting Order. Order quantity reduction is the only change that will retain order standing. Only a limited number of fields can be changed via the cancel/replace request message. All other fields should be retransmitted assent in the original order. The fields which can be changed via this message are: Fields permissible for modification: ExecInst (Tag 18) Quantity (Tag 38) Price (Tag 44) TIF (Tag 59) MinQty (Tag 110) ExpireTime (Tag 126) Order Cancel/Replace Request (G) The following fields are required to be revised as follows. All other fields should be retransmitted as sent in the original order. Tag 11 41 Field Name ClOrdID OrigClOrdID Req' d Y Y Description Maximum length: 40 Unique identifier for Order as assigned by user. Uniqueness must be guaranteed within a single trading day, and is the responsibility of the user to guarantee. All values on INBOUND messages cannot start or end in a SPACE. Leading Zero's will also cause the order to be REJECTED. Original client reference number for the Resting Order. Order Status Request (H) Tag 11 Field Name ClOrdID Req'd Y 54 55 Side Symbol Y Y 65 SymbolSfx N Description Maximum length: 40 Unique identifier for Order as assigned by client. Uniqueness must be guaranteed within a single trading day, and is the responsibility of the user to guarantee. All values on INBOUND messages cannot start or end in a SPACE. Leading Zero's will also cause the order to be REJECTED. 1=Buy 2=Sell 5= Sell Short 6=Sell Short Exempt Must be CAPITALIZED with no Spaces - See Appendix A for symbology. For symbol suffixes see Appendix A. Page 14 of 23 MILLENNIUM ATS 4.2 FIX SPECIFICATION Standard FIX Order/Execution Messages -- Outbound Execution Report (8) Tag 1 Field Name Account Description Maximum length: 20 6 AvgPx 11 ClOrdID 14 17 CumQty ExecID 18 ExecInst Average price of all executions for this ticket - 0 if there are no executions. Maximum length: 40 Client order reference number. Quantity of order that has been executed. Maximum length: 20 If this message is reporting an execution, this will be the unique execution identifier assigned by the ATS. Otherwise it will be 0. One or more space-separated execution instructions. Used to specify a number of the attributes. Valid values are as follows: M - Peg to Midpoint & Midpoint IOC; ONLY valid with Order Type P (tag 40) B - Block Minimum Quantity (Tag 110 MUST be Populated in conjunction with tag 18=B. Executions must be greater than or equal to the Min Qty F - Fill Remaining Block Quantity in a Single Execution (valid only when used with Tag 18=B and Tag 110) X - Cancel Remainder after FIRST Minimum QTY Match 19 ExecRefID 20 ExecTransType 29 30 31 32 37 LastCapacity LastMkt LastPx LastShares OrderID 38 OrderQty Tag 18 can be populated with either F or X but both values cannot be in tag 18 on the same order. Maximum length: 20 Reference identifier used with Cancel and Correct Transaction types. Valid values: 0 – Standard execution report 1 - Trade break – Both sides of the trade 3 - Status execution report Note that breaks and corrections are only sent if the user is configured for them. 1 - Agent This will be set to 13. Price of execution. 0 if not reporting an execution. Quantity of execution. 0 if not reporting an execution. Maximum length: 20 Unique Order identifier assigned by Millennium ATS. Maximum length: 8 Quantity of shares in an order. Minimum order quantity is 100 shares. ATS executes in round lots greater than or equal to 100 shares. Odd Lots will be REJECTED. *Mixed Lots will be accepted; however the odd lot portion of the order will be canceled back as an unsolicited cancel following the last round lot execution. Page 15 of 23 MILLENNIUM ATS 4.2 FIX SPECIFICATION Tag 39 Field Name OrdStatus 40 OrdType 41 OrigClOrdID 47 54 Rule80A (Capacity) Side 55 Symbol 57 TargetSubID 58 59 60 65 76 103 Text TimeInForce TransactTime SymbolSfx ExecBroker OrdRejReason 109 ClientID 110 128 MinQty DeliverToCompID 129 DeliverToSubID 150 ExecType 151 9730 LeavesQty LiquidityFlag Description Status of the order after applying the execution report Standard FIX values for this field are used. 1 - Market - No Price order is priced to the Opposite side of the market 2 - Limit - Price Required P - Pegged - Price Optional (Requires tag 18=M) Maximum length: 40 Original client order reference number, if this is in reference to a cancel or replace operation. Capacity of executing firm. This value must be specified by the user on every order. 1=Buy 2=Sell 5= Sell Short 6=Sell Short Exempt Must be CAPITALIZED with no Spaces - See Appendix A for symbology. Assigned value used to identify specific individual or unit intended to receive message. If SenderSubID tag 50 was sent, value will be returned in Tag 57 TargetSubID. Optional text - may indicate reason for a rejection or may be text Time in Force of order. Required for an execution - Indicates time of execution. For symbol suffixes see Appendix A. NYFX Reason code for rejection if order was rejected 0 - Other 1 - Unknown Symbol 2 - Millennium Closed 4 – Order Exceeds Limit 5 - Too Late to Enter 6 - Unknown Order 7 - Duplicate Order (e.g. Dupe ClOrdID) 8 - Stale Order MPID – required for customers that have an MPID Minimum Quantity value Assigned value used to identify the firm targeted to receive the message if the message is delivered by a third part. If OnBehalfOfCompID Tag 115 is sent value will be returned in tag 128. Assigned value used to identify specific message recipient (i.e. trader) if the message is delivered by a third party. If OnBehalfOfSubID Tag 116 is sent value will be returned in tag 129. Action being reported by this execution report. Standard FIX values for this field are used. Quantity of order remaining open after this execution. A - Trade added as Provider of liquidity T - Trade removed as Taker of liquidity Page 16 of 23 MILLENNIUM ATS 4.2 FIX SPECIFICATION Order Cancel Reject (9) Tag 11 Field Name ClOrdID 37 OrderID 39 41 OrdStatus OrigClOrdID 102 CxlRejReason 434 CxlRejResponseTo Description Maximum length: 40 Client reference number for cancel. Maximum length: 20 Unique Order identifier assigned by Millennium ATS. Current status of the Resting or IOC Order. Maximum length: 40 Client reference number for the Resting or IOC Order. Reason for cancel rejection - Refer to Text field for details of rejection. Indicates if this is rejecting a cancel or a replace operation. Page 17 of 23 MILLENNIUM ATS 4.2 FIX SPECIFICATION Appendix A - Listed Symbol Suffixes Millennium ATS provides support for listed symbols with suffixes, such as preferred, whenissued, and different class shares. Millennium ATS offers two formats for configuring listed symbol suffixes. Orders can be submitted with Symbol and SymbolSfx grouped together in Tag 55 or separately with Symbol in Tag 55 and SymbolSfx in Tag 65. DESCRIPTION SYMBOLSFX (TAG 55) SYMBOLSFX (TAG 65) Called * CL Class A - Z .A A Class A - Z Called .A* ACL Class A-Z When Distributed .A$ AWD Class A - Z When Issued .A# AWI Convertible % CV Preferred - PR Preferred Called -* PRCL Preferred Class A - Z -A PRA Preferred Class A – Z Called -A* PRACL Preferred Class A – Z When-Distributed -A$ PRAWD Preferred Class A – Z When-Issued -A# PRAWI Preferred When-Distributed -$ PRWD Preferred When-Issued -# PRWI Right ? RT Right Class A – Z ?A RTA Right Class A When-Issued ?A# RTWIA Right When-Issued ?# RTWI Unit = UT Warrant + WS Warrant Class A – Z +A WSA Warrant Class A When-Issued +A# WSWIA Warrant When-Issued +# WSWI When-Distributed $ WD When-Issued # WI Page 18 of 23 MILLENNIUM ATS 4.2 FIX SPECIFICATION Appendix B - Order Capacity Below are the ONLY valid values that will be accepted by Millennium ATS. Tag 47 Field Name OrderCapacity Req'd Y Description Maximum Length: 1 A = Agency single order C = Program Order, non-index arbitrage, for Member firm/org D = Program Order, index arbitrage, for Member firm/org I = Individual Investor, single order J = Program Order, index arbitrage, for individual customer K = Program Order, non-index arbitrage, for individual customer P = Principal Q = Error U = Program Order, index arbitrage, for other agency Y = Program Order, non-index arbitrage, for other agency NOTE: ATS will only Print as A or P. Page 19 of 23 MILLENNIUM ATS 4.2 FIX SPECIFICATION Appendix C - MinQty Functionality (Resting Orders) Examples assume the other side of the trade is available EXAMPLES: Tag 110 Only Allows aggregated quantities ≥ the submitted MinQty as well as block executions ≥ the submitted MinQty. Once the LeavesQty becomes < the MinQty the order is treated as a regular order. Example: 5,000 share order with tag 110=1000 Execution 1 occurs as ten lots of 100 shares. Execution 2 occurs in one lot of 3100 shares. Execution 3 occurs in one lot of 100 shares execution 4 occurs in one lot of 800 shares. Tag 110 plus Tag 18=B This combination of instructions indicates that the MinQty is a Block Minimum. Executions must be ≥ the MinQty value. When the LeavesQty becomes < the MinQty the order will be Cancelled back. NOTE: Tag 110 must be populated when using 18=B Example: 5,000 share order with tag 110=1000 and 18=B Execution 1 occurs as a single execution of 4100 shares, LeavesQty of 900 shares are Cancelled back. Tag 110 plus Tag 18=B F This combination of instructions indicates that the MinQty is a Block Minimum. Executions must be ≥ the MinQty value. When the remaining LeavesQty becomes < the stated MinQty the remaining piece will be executed as a single execution. NOTE: Tag 110 must be populated when using 18=B and F Example: 5,000 share order with tag 110=1000 and tag 18=B F Execution 1 occurs as a single execution of 4100 shares, Execution 2 executes in a single execution of 900 shares. Tag 110 plus Tag 18=X Allows Millennium to aggregate quantities ≥ the submitted MinQty. Following the first Execution (either as1 execution or multiple) the remaining LeavesQty will be cancelled back. Example: 5,000 share order with tag 110=1000 and tag 18=X Execution 1 occurs as ten lots of 100 shares. LeavesQty of 4000 is Cancelled back. Example: 5,000 share order with tag 110=1000 and tag 18=X Execution 1 occurs as a single execution of 1500 shares. LeavesQty of 3500 is cancelled back. Tag 110 plus Tag 18= B X * Tag 110 must be populated when using 18=B This combination of instructions indicates that the MinQty is a Block Minimum. Executions must be ≥ the MinQty value. Following the first Block Execution the remaining LeavesQty will be cancelled back. Example: 5,000 share order with tag 110=1000 and tag 18=B X Execution 1 occurs as a single execution of 1000 shares. LeavesQty of 4000 is cancelled back. Page 20 of 23 MILLENNIUM ATS 4.2 FIX SPECIFICATION Millennium ATS Minimum Quantity Options and Results Execution Handling Result to LeavesQty Tag 110 Tag 18 (Shares) 5000 Aggregate Block Fills Fills • 5000 B 5000 BF 5000 X 5000 BX Cancel order Cancel order Single Fill when after FIRST once <MinQty execution <MinQty • • • • • • Order becomes a regular order (Executions can occur in single lots of≥ 100) • • • • • * Tag 110 required when using 18=B or B F Page 21 of 23 MILLENNIUM ATS 4.2 FIX SPECIFICATION Appendix D - MinQty Functionality (IOC Orders) Examples assume the other side of the trade is available Tag 110 Only Allows aggregated quantities ≥ the submitted MinQty as well as block executions ≥ the submitted MinQty. Example: 5,000 share order with tag 110=1000 Execution 1 occurs as ten lots of 100 shares. LeavesQty of 4000 shares are Cancelled back because the order type is IOC Example: 5,000 share order with tag 110=1000 Execution 1 occurs one lot of 1000 shares. LeavesQty of 4000 shares are Cancelled back because the order type is IOC Tag 110 plus Tag 18=B * Tag 110 required when using tag 18=B This combination of instructions indicates that the MinQty is a Block Minimum. Executions must be ≥ the MinQty value. NOTE: Tag 110 required when using tag 18=B Example: 5,000 share order with tag 110=1000 and tag 18=B Execution 1 occurs as a single execution of 2500 shares LeavesQty of 2500 shares are Cancelled back because the order type is IOC. Execution Handling Tag 110 (Shares) Tag 18 5000 5000 Aggregate Fills Block Fills • B • • Note: Tag 110 required when using 18=B Page 22 of 23 MILLENNIUM ATS 4.2 FIX SPECIFICATION Appendix E - Header Tags Millennium ATS additional Header Tags and Matching Execution Report logic Millennium ATS follows the standard FIX 4.2 Protocol for header tag value exchange between messages. The following table reiterates this logic beyond the required CompID tags of 49 and 56 as it pertains to Millennium ATS and an interfacing party (point-to-point or third-party session): User Sent values on 35=D and 35=G messages Tag Field Name The ATS corresponding Execution Report 35=8, 35=9 and 35=3 messages Tag Field Name 50 SenderSubID 57 TargetSubID 115 OnBehalfOfCompID 128 DeliverToCompID 116 OnBehalfOfSubID 129 DeliverToSubID 128 DeliverToCompID None - sent value will not be echoed 129 DeliverToSubID None - sent value will not be echoed Notes: All header tags must precede the first body tag in the message. If tags are not in proper order, Millennium ATS will respond with a session-level reject (35=3) indicating the issue. This header tag logic applies to both Order and Drop Copy messages. Page 23 of 23