FIX4.4 Certification for participants v1.0.5 Order Routing Certification Guidelines Document Test Plan for FIX 4.4 v1.0.5 Certification for Participants Author BM&FBOVESPA Contacts To request copies of this document, please contact: Márcio Augusto Castro Director E-mail: mcastro@bmf.com.br Tel.: +55 11 3119-2383 Jochen Mielke Coordinator E-mail: jmielke@bmf.com.br Tel: +55 11 3119-2075 Mario Palhares Manager (BM&FBOVESPA Control Center) E-mail: mrpalhares@bmf.com.br Tel: +55 11 3119-2333 22/05/2009 – v1.0.5 Page 2 Order Routing Certification Guidelines Document Test Plan for FIX 4.4 v1.0.5 Certification for Participants Author BM&FBOVESPA Index 1. PREFACE ......................................................................................................................................... A 2. CLIENT CONTACT INFORMATION ..................................... ERROR! BOOKMARK NOT DEFINED. 3. ENVIRONMENT.................................................................................................................................. 4 3.1. Network Configuration ....................................................................................................................... 5 4. ACCEPTANCE CRITERIA ................................................................................................................. 4 5. TEST SCENARIOS............................................................................................................................. 5 5.1.1. Checklist ................................................................................................................................. 7 5.1.2. Order Routing 7 5.1.3. Parties Settings 8 5.1.4. Give ups 14 5.1.5. Performance 15 5.1.6. Retransmission of Messages 16 5.1.7. Updating Tick Sizes 17 5.1.8. Globex Order Routing Error! Bookmark not defined. 5.1.9. CBOT Products – Fractional Prices Error! Bookmark not defined. 22/05/2009 – v1.0.5 Page 3 Order Routing Certification Guidelines a. Document Test Plan for FIX 4.4 v1.0.5 Certification for Participants Author BM&FBOVESPA Preface This document describes a series of tests that qualify third-parties to connect to BM&FBOVESPA for the specific purpose of requesting and receiving application level messages using the FIX (Financial Information eXchange) 4.4 specification. The document outlining the certification process for market data feed is available on the BM&FBOVESPA Website at http://www.bmf.com.br/portal/pages/gts/certificacao.asp. FIX is a technical specification for electronic communication of trade-related messages. In more specific terms, the FIX Protocol is a series of message transmission specifications used in the automated trading of securities, derivatives and other financial instruments. It is assumed that the reader has full working knowledge of the FIX specification volumes I and II, which are available on the FIX Website at http://www.fixprotocol.org/. b. Client contact information Please fill in with the company/contact information. Company name: Project Manager name: Project Manager e-mail: Project Manager phone: Test Manager name: Test Manager e-mail Test Manager phone: VENDORS 22/05/2009 – v1.0.5 Page 4 Order Routing Certification Guidelines Document Test Plan for FIX 4.4 v1.0.5 Certification for Participants Author BM&FBOVESPA c. Environment 3.1 Network configuration The BM&FBOVESPA certification environment consists of a FIX gateway (optional) connected to BM&FBOVESPA’s Certification FIX Gateway, which establishes an interface for receiving traderelated messages. This interface is implemented using the FIX 4.4 specification. BM&F offers network connectivity via VPN either through the Internet or the RCCF (Financial Community Communication Network). For Internet via VPN connections, the participant must contact BM&FBOVESPA by e-mail (trading@bmf.com.br) and request a connection form, which must be completed and returned to BM&FBOVESPA. BM&FBOVESPA will then provide the participant with a VPN user name and password. The initial test procedure is a connection attempt to the certification server, IP 192.168.6.29, gateway 60100. Once connected, the participant must forward the test results to BM&FBOVESPA, which will automatically return a “CompID” and a password to access the certification environment (TargetCompID: FIXGatewayHOM). For VPN RCCF connections, the participant must make an important decision: to use either the RCCF (production) itself in the test and certification process, or an additional VPN for certification and tests only. This decision relates to the necessary care that must be taken in order not to interfere with the RCCF link used in the production environment. Participants with an already active RCCF connection must contact BM&FBOVESPA by e-mail (trading@bmf.com.br) and request a connection form, which must be completed and returned to BM&FBOVESPA. BM&FBOVESPA will then monitor the connection test. The initial test procedure is a connection attempt to the certification server, IP 115.255.0.40, gateway 60100. Once connected, the participant must forward the test results to BM&FBOVESPA, which will automatically return a “CompID” and a password to access the certification environment (TargetCompID: FIXGatewayHOM). Participants without an active RCCF connection may request one by submitting a connection form to BM&FBOVESPA, allowing 35 to 45 days for its activation. The diagram on the next page provides a simplified illustration of the BM&FBOVESPA certification environment connectivity 22/05/2009 – v1.0.5 Page 5 Order Routing Certification Guidelines Document Test Plan for FIX 4.4 v1.0.5 Certification for Participants Author BM&FBOVESPA DMZ PAPARTICIPANT BM&FBOVESPA RCCF FIX Protocol TCP/IP BM&FBOVESPA Site FIX Protocol TCP/IP Trading Engine Gateway DMZ Gateway (OPCIONAL) VPN Internet BM&FBOVESPA Gateway Trading Engine # FIREWALL 22/05/2009 – v1.0.5 Page 6 Order Routing Certification Guidelines 4. Document Test Plan for FIX 4.4 v1.0.5 Certification for Participants Author BM&FBOVESPA Acceptance criteria Completion of the FIX 4.4 market data certification is considered as a pre-requisite for the certification described herein. The related information is available on the BM&FBOVESPA Website at www.bmf.com.br/novogts, under the “development kits” section. The certification environment will be available during a two-week period, and the tests must be scheduled in advance. All the test scenarios must be completed with a 100% success rate. Some of the specific scenarios may not be available. In this case, the “N/A” option must be selected under the test status column. Test results must be monitored by the participant and forwarded to BM&FBOVESPA, together with the guidelines, which must be signed by the responsible person. Application logs and screenshots are regarded by BM&FBOVESPA as test evidences. 5. Test scenarios Test scenarios must be executed in sequence according to the message transmission order used in the creation of trade scenarios. The values and quantities described in the following certification scenarios, which apply to soybean, are presented for illustration purposes only. The participant may choose any other instrument for certification purposes. All the scenarios in blue color represent BM&FBOVESPA’s interaction steps, where no participant intervention is required. Pre-condition FIX messages must follow the structure defined in the Bell FIX Spec (or later) document, which is available on the BM&FBOVESPA Website at www.bmf.com.br/novogts, under the development kits section. 5.1.1 Checklist IMPORTANT: Message formation is extremely important for the verification of test results. To this end, each message corresponds to a certain group of trade-relevant fields which must be verified on a priority basis. Trading The test scenarios to be followed by the participant are listed on the following pages. 22/05/2009 – v1.0.5 Page 7 Order Routing Certification Guidelines Document Test Plan for FIX 4.4 v1.0.5 Certification for Participants Author BM&FBOVESPA Test number Test title 5.1.2 Order Routing 5.1.2.1 Send – Day Limit Order (Sell) Receive – Execution Report –Verify Order State – New (39=0). (Quantity = 10) (Price = 31.19) Pass Fail N/A 5.1.2.2 Send – Modify quantity of Day Limit Order (Sell). Receive – Execution Report – Verify Order State – Replaced (39=5). (Quantity = 20) (Price = 31.19) Pass Fail N/A 5.1.2.3 Send – Cancel Day limit order (Sell) Receive – Execution Report – Verify order State – Canceled (39=4) (Quantity = 20) (Price = 31.19) Pass Fail N/A 5.1.2.4 Wait for BM&FBOVESPA to send a day limit order (Sell). (Quantity = 14) (Price = 31.13) Pass Fail N/A 5.1.2.5 Send – Day limit order (Buy). With Minimum quantity (tag 110) and partial fill 1ª Execution Report – Verify order State – New (39=0) 2ª Execution Report – Verify order State – Partially filled(39=1) (Quantity = 20) (Minimum quantity = 10) (Price = 31.19) Pass Fail N/A 5.1.2.6 Send – Cancel order with Minimum quantity Receive – Execution Report (150=4) (Quantity = 6) (Minimum quantity = 10) (Price = 31.19) Pass Fail N/A 5.1.2.7 Send – Cancel inexistent order Receive – Order Cancel Reject (102=1). (Quantity = 13) (Price = 35.00) Pass Fail N/A Send – Day limit order (Buy) with no fill Receive – Execution Report (40=2;59=0; 39=0) (Quantity = 40) (Price = 31.20) Pass Fail N/A Send – Modify Quantity of Day limit order for worse Receive - Execution Report (150=5) (Quantity = 15) (Price = 31.20) Pass Fail N/A 5.1.2.8 5.1.2.9 22/05/2009 – v1.0.5 Status Page 8 Order Routing Certification Guidelines Document Test Plan for FIX 4.4 v1.0.5 Certification for Participants Author BM&FBOVESPA 5.1.2.10 Wait for BM&FBOVESPA to send a day limit order (Sell). (Quantity = 10) (Price = 31.21) Pass Fail N/A 5.1.2.11 Send - Modify Price of the limit order for better (Sell). With partial fill Receive – Execution Report (150=5) (Quantity = 15) (Price = 31.21) Pass Fail N/A 5.1.2.12 Send – Cancel remaining quantity after fill Receive – Execution Report (150=4) (Quantity = 5) (Price = 31.20) Pass Fail N/A 5.1.2.13 Wait for BM&FBOVESPA to send a day limit order (Sell). (Quantity = 10) (Price = 31.13) Pass Fail N/A 5.1.2.14 Send – Day limit order (Buy) with fill Receive – Execution Report (40=2;59=0; 39=2) (Quantity = 10) (Price = 31.13) Pass Fail N/A 5.1.2.15 Send – Cancel filled buy order Receive – Order Cancel Reject (102=0; 54=1; 48=...; 22=8; 55=...) and (207=...optional) (Quantity = 10) (Price = 31.13) Pass Fail N/A 5.1.2.16 Send – Day limit order (Buy) with the same ID as the order on step 5.1.2.14 (tag 11). Receive – Execution Report with tag 103=6 – Duplicate Order (by ClOrdID) Pass Fail N/A 5.1.2.17 Send – Day Stop Limit order (Buy) with no fill Receive – Execution Report (40=4; 39=0; 636=N) Check tag # 99 StopPx is present (Quantity = 33) (Price = 31.15) (Stop = 31.14) 5.1.2.18 Send – Day Stop Limit order (Sell) Receive – Execution Report (40=4;59=0; 39=0) (Quantity = 28) (Price = 31.11) (Stop = 31.12) Pass Fail N/A 5.1.2.19 Wait for BM&FBOVESPA to send a day limit order (Sell). (Quantity = 12) (Price = 31.15) Pass Fail N/A 5.1.2.20 Send – Day limit order (Buy) with fill Receive – Execution Report (40=2;59=0; 39=2) (Quantity = 12) (Price = 31.15) Pass Fail N/A 22/05/2009 – v1.0.5 Pass Fail N/A Page 9 Order Routing Certification Guidelines Document Test Plan for FIX 4.4 v1.0.5 Certification for Participants Author BM&FBOVESPA 5.1.2.21 Wait for BM&FBOVESPA to send a day limit order (Sell). (Quantity = 33) (Price = 31.14) Pass Fail N/A 5.1.2.22 Send – Cancel stop order after complete fill – (Rejected). Receive – Execution Report (35=8; 54=1; 48=...; 22=8; 55=...) and (207=...optional) (Quantity = 33) (Price = 31.14) Pass Fail N/A 5.1.2.23 Wait for BM&FBOVESPA to send a day limit order (Buy). (Quantity = 12) (Price = 31.12) Pass Fail N/A 5.1.2.24 Send – Day limit order (Sell) with fill Receive – Execution Report (40=2;59=0; 39=0) (Quantity = 12) (Price = 31.12) Pass Fail N/A 5.1.2.25 Wait for BM&FBOVESPA to send a day limit order (Buy). (Quantity = 13) (Price = 31.11) Pass Fail N/A 5.1.2.26 Send – Modify stop order after partial fill Receive – Execution Report (150=5) (Quantity = 20) (Price = 31.12) Pass Fail N/A 5.1.2.27 Send – Cancel stop order after partial fill Receive – Execution Report (150=4) (Quantity = 20) (Price = 31.12) Pass Fail N/A 5.1.2.28 Send – Day limit order (Buy) with no fill with Disclosed quantity Receive – Execution Report (40=2; 59=0; 39=0) Verify tag 151 LeavesQty is present (Quantity = 250) (Disclosed quantity = 25) (Price = 31.20) 3.1.2.29 Send - Modify Disclosed quantity of Limit order Receive – Execution Report (150=5) (Quantity = 250) (Disclose quantity = 10) (Price = 31.20) Pass Fail N/A 5.1.2.30 Send – Cancel order with Disclosed quantity Receive – Execution Report (150=4) (Quantity = 250) (Disclose quantity = 10) (Price = 31.20) Pass Fail N/A 22/05/2009 – v1.0.5 Pass Fail N/A Page 10 Order Routing Certification Guidelines Document Test Plan for FIX 4.4 v1.0.5 Certification for Participants Author BM&FBOVESPA 5.1.2.31 Wait for BM&F to send a day limit order (Buy). (Quantity = 22) (Price = 31.20) Pass Fail N/A 5.1.2.32 Send – Limit order with validity IOC (Sell) with fill Receive – Execution Report (40=2; 59=3; 39=2; 150=F) (Quantity = 17) (Price = 31.19) Pass Fail N/A 5.1.2.33 Send – Limit order FOK (Sell) with fill Receive – Execution Report (40= 2; 59=4; 39=2; 150=F) (Quantity = 5) (Price = 31.20) Pass Fail N/A 5.1.2.34 Wait for BM&F to send a day limit order (Sell). (Quantity = 50) (Price = 31.22) Pass Fail N/A 5.1.2.35 Send – Limit order Fill or Kill (FOK) (Buy) Receive – Execution Report (40=2; 59=4; 39=2) (Quantity = 20) (Price = 31.22) Pass Fail N/A 5.1.2.36 Send – Day Partial market order with leftover (Buy) with partial fill Receive – Execution Report (40=K; 59=0; 39=2) (Quantity = 5) Pass Fail N/A 5.1.2.37 Send - Partial market order with leftover FOK (Buy) Receive – Execution Report (40=k; 54=1; 59=3; 39=0) (Quantity = 5) Pass Fail N/A 5.1.2.38 Send - Partial market order with leftover FOK (Buy) Receive – Execution Report (40=K; 59=4; 39=0) (Quantity = 10) Pass Fail N/A 5.1.2.39 Send - Day Partial market order with leftover (Buy) Receive – Execution Report (40=2; 39=2) (Quantity = 10) Pass Fail N/A 5.1.2.40 Wait for BM&FBOVESPA to send a day limit order (Buy). (Quantity = 100) (Price = 31.15) Pass Fail N/A 5.1.2.41 Send – Day Market Order with leftover (Sell) with partial fill Receive – Execution Report (40=K; 59=1; 39=2) (Quantity = 65) (Price = Market) Pass Fail N/A 22/05/2009 – v1.0.5 Page 11 Order Routing Certification Guidelines Document Test Plan for FIX 4.4 v1.0.5 Certification for Participants Author BM&FBOVESPA 5.1.2.42 Send – Partial Market with leftover IOC (Sell)l Receive Execution Report (40=K; 59=3; 39=0) (Quantity = 15) (Price = Market) Pass Fail N/A 5.1.2.43 Send – Partial market with leftover (Sell) Receive – Execution Report (40=K; 59=0; 39=0) (Quantity = 30) (Price = Market) Pass Fail N/A 5.1.2.44 Send – Modify remaining Quantity of the Partial market order for better (Sell) Receive – Execution Report (150=5) (Quantity = 20) (Price = 31.15) Pass Fail N/A 5.1.2.45 Send – Modify price of the remaining quantity of the Partial Market order for worse (Sell) Receive – Execution Report (150=5) (Quantity = 20) (Price = 31.16) Pass Fail N/A 5.1.2.46 Wait for BM&FBOVESPA to send a day limit order (Buy). (Quantity = 10) (Price = 31.16) Pass Fail N/A 5.1.2.47 Send – Partial Market Order (Buy) . (Quantity = 5) Receive − Execution Report (39=8 – Rejected and 103=11 − Unsupported order characteristic Pass Fail N/A 5.1.2.48 Send – Day limit order with Unknown symbol (tag 55 and 48) Example: 55=ABCD and 48=ABCDEFG Receive: Execution Report with tag 103=1 – Unknown symbol Pass Fail N/A 5.1.2.49 Send – Day limit order (buy) with the following settings: (38=10; 44=31.18, 448=ABCD and 452=36) Receive – Execution Report with tag 103 (OrdRejReason) = 99 (Other) Pass Fail N/A 5.1.2.50 Wait for BM&FBOVESPA to change instrument trading phase and receive Execution Report with tag 150 = C (Expired) with the same ClOrdID (tag 11) as the order sent in the previous step. Pass Fail N/A 22/05/2009 – v1.0.5 Page 12 Order Routing Certification Guidelines 5.1.3 Document Test Plan for FIX 4.4 v1.0.5 Certification for Participants Author BM&FBOVESPA Parties Settings Send – Day Limit order (Sell) Having: Entering Firm = Invalid Firm ID 5.1.3.1 Sender Location = BMF Pass Fail N/A Receiving Execution Report (39=8;150=8) Send – Day Limit order (Buy) Having: Entering Firm = Valid Firm ID 5.1.3.2 Sender Location = Invalid Characters (Numbers i.e.) Pass Fail N/A Receiving Execution Report (39=8;150=8) Send – Day Limit order (Sell) Having: Entering Firm = Invalid Firm ID 5.1.3.3 Sender Location = Invalid Characters (Numbers i.e.) Pass Fail N/A Receiving Execution Report (39=0;150=0) Send – Day Limit order (Buy) Having: Entering Firm = Invalid Firm ID 5.1.3.4 Sender Location = Invalid Characters (Numbers i.e.) Entering Trader = Invalid Characters Pass Fail N/A Receiving Execution Report (39=8;150=8) Send – Day Limit order (Sell) Having: Entering Firm = Valid ID 5.1.3.5 Sender Location = Valid DMA Pass Fail N/A Receiving Execution Report (39=0;150=0) 22/05/2009 – v1.0.5 Page 13 Order Routing Certification Guidelines 5.1.4 Document Test Plan for FIX 4.4 v1.0.5 Certification for Participants Author BM&FBOVESPA Give ups Send – Day Limit order (Sell) Having: TradeAllocIndicator (826=1) 5.1.4.1 Sender Location = BMF No Alloc Account is sent Pass Fail N/A Receiving Execution Report (39=0;150=0) Send – Day Limit order (Sell) Having: PartyRole 40 (Give up Identification) 5.1.4.2 Sender Location = BMF No Alloc Account is sent Pass Fail N/A Receiving Execution Report (39=0;150=0) Send – Day Limit order (Sell) Having: TradeAllocIndicator (826=1) 5.1.4.3 Sender Location = Valid DMA No Alloc Account is sent Pass Fail N/A Receiving Execution Report (39=8;150=8) Send – Day Limit order (Sell) Having: PartyRole 40 (Give up Identification) 5.1.4.4 Sender Location = Valid DMA No Alloc Account is sent Pass Fail N/A Receiving Execution Report (39=0;150=0) 22/05/2009 – v1.0.5 Page 14 Order Routing Certification Guidelines 5.1.5 Document Test Plan for FIX 4.4 v1.0.5 Certification for Participants Author BM&FBOVESPA Performance 5.1.5.1 Send 1 order per second Expected result: Display information correctly Pass Fail N/A 5.1.5.2 Send 10 orders per second Expected result: Display information correctly Pass Fail N/A 5.1.5.3 Send 50 orders per second Expected result: Display information correctly Pass Fail N/A 22/05/2009 – v1.0.5 Page 15 Order Routing Certification Guidelines 5.1.6 Document Test Plan for FIX 4.4 v1.0.5 Certification for Participants Author BM&FBOVESPA Updating Tick Sizes 5.1.6.1 BM&FBOVESPA updates the tick size for the instrument to 0.05 Pass Fail N/A 5.1.6.2 Send – Day Limit Order (Sell) Receive – Execution Report –Rejected (39=8). (Quantity = 10) (Price = 31.19) Pass Fail N/A 5.1.6.3 Send – Day Limit Order (Sell) Receive – Execution Report –Verify Order State – New (39=0). (Quantity = 10) (Price = 31.20) Pass Fail N/A 5.1.6.4 BM&FBOVESPA updates back the tick size for the instrument to 0.01 Pass Fail N/A 5.1.6.5 Send – Day Limit Order (Sell) Receive – Execution Report –Verify Order State – New (39=0). (Quantity = 10) (Price = 31.19) Pass Fail N/A 22/05/2009 – v1.0.5 Page 16 Order Routing Certification Guidelines 5.1.7 Document Test Plan for FIX 4.4 v1.0.5 Certification for Participants Author BM&FBOVESPA Retransmission of Messages 5.1.7.1 Send – Day Limit Order (Sell) Receive – Execution Report – New (39=0). (Quantity = 10) (Price = 31.19) Pass Fail N/A 5.1.7.2 Send – Day Limit Order (Sell) Receive – Execution Report – New (39=0). (Quantity = 10) (Price = 31.19) Pass Fail N/A 5.1.7.3 Send – Day Limit Order (Sell) Receive – Execution Report – New (39=0). (Quantity = 10) (Price = 31.19) Pass Fail N/A 5.1.7.4 Disconnect from the exchange Pass Fail N/A 5.1.7.5 Wait for BM&FBOVESPA to fill the orders Pass Fail N/A 5.1.7.6 Log on the exchange with tag 141=N (Do not reset seq. numbers.) Orders that were not sent, shouldn´t be sent to the exchange. Pass Fail N/A 5.1.7.7 Execution Reports are retransmitted Pass Fail N/A 22/05/2009 – v1.0.5 Page 17 Order Routing Certification Guidelines Document Test Plan for FIX 4.4 v1.0.5 Certification for Participants Author BM&FBOVESPA Please sign below to acknowledge that all the above information is true. x___________________________________ Person responsible for the certification process (participant) x___________________________________ IT Manager (participant) x__________________________________ Person responsible for the certification process (BM&FBOVESPA) 22/05/2009 – v1.0.5 Page 18