Successful Order Requests
1. Send Logon message with valid credentials.
2. Receive LogonResult with result_code='SUCCESS'.
3. Send InformationRequest with symbol_resolution_requests for the symbols Symbol1, Symbol2, Symbol3.
4. Receive InformationReport with SymbolResolutionReport with status_code=’SUCCESS’ and contract_metadata for the symbol.
5. Send TradeSubscription with subscribe = true and subscription_scope=ORDERS.
6. Receive TradeSubscriptionStatus with status_code = ‘SUCCESS’, OrderStatus with any orders according to PublicationType(ACCOUNT, SALES_SERIES, BROKERAGE and ALL_AUTHORIZED), and TradeSnapshotCompletion.
7. For the following tests, use the order types the application being certified is going to use.
8. Send NewOrder for SELL MKT DAY order for Symbol1.
9. Receive OrderStatus.
10. Send NewOrder for BUY MKT GTC order for Symbol1.
11. Receive OrderStatus.
12. Send NewOrder for SELL MKT FAK order for Symbol1.
13. Receive OrderStatus.
14. Send NewOrder for BUY LMT DAY order for Symbol2.
15. Receive OrderStatus.
16. Send NewOrder for SELL LMT GTD order for Symbol2.
17. Receive OrderStatus.
18. Send NewOrder for BUY LMT GTC ICEBERG order for Symbol2.
19. Receive OrderStatus.
20. Send NewOrder for SELL LMT DAY FUNARI order for Symbol2.
21. Receive OrderStatus.
22. Send NewOrder for BUY STP GTC order for Symbol3.
23. Receive OrderStatus.
24. Send NewOrder for BUY STP GTD TRAIL order for Symbol3.
25. Receive OrderStatus.
26. Send NewOrder for SELL STP DAY QT order for Symbol3.
27. Receive OrderStatus.
28. Send NewOrder for BUY STL DAY TRAIL QT order for Symbol3.
29. Receive OrderStatus.
30. Send NewOrder for SELL STL GTD order for Symbol3.
31. Receive OrderStatus.
32. Send TradeSubscription with subscribe = false.
33. Receive TradeSubscriptionStatus with status_code = ‘SUCCESS’.
34. Send TradeSubscription with subscribe = true.
35. Receive TradeSubscriptionStatus with status_code = ‘SUCCESS’, all orders placed above with their statuses, and TradeSnapshotCompletion.
36. Send Logoff message.
37. Partially repeat this test for all TradeSubscription PublicationTypes the application being certified is going to use. The customers are encouraged to use wider publication types where applicable, e.g. not subscribing to trades for every account, but subscribing for “all authorized” instead.
38. Partially repeat this test with different instrument types: an option (e.g. C.EP, P.EP), some strategies (EDAB2,), an equity (S.MSFT).
Modify Order
1. Send Logon message with valid credentials.
2. Receive LogonResult with result_code='SUCCESS'.
3. Send InformationRequest with symbol_resolution_request for symbol=’F.US.ZUI’.
4. Receive InformationReport with SymbolResolutionReport with status_code=’SUCCESS’ and contract_metadata for the symbol.
5. Send TradeSubscription with subscribe = true and subscription_scope=ORDERS.
6. Receive TradeSubscriptionStatus with status_code = ‘SUCCESS’ and TradeSnapshotCompletion.
7. Send NewOrder for SELL STL GTC order.
8. Receive OrderStatus.
9. Send ModifyOrder with modified qty.
10. Receive OrderStatus.
11. Send ModifyOrder with modified limit_price.
12. Receive OrderStatus.
13. Send ModifyOrder with modified stop_price.
14. Receive OrderStatus.
15. Send Logoff message.
Cancel Order
1. Send Logon message with valid credentials.
2. Receive LogonResult with result_code='SUCCESS'.
3. Send InformationRequest with symbol_resolution_request for symbol=’F.US.ZUC’.
4. Receive InformationReport with SymbolResolutionReport with status_code=’SUCCESS’ and contract_metadata for the symbol.
5. Send TradeSubscription with subscribe = true and subscription_scope=ORDERS.
6. Receive TradeSubscriptionStatus with status_code = ‘SUCCESS’ and TradeSnapshotCompletion.
7. Send NewOrder for BUY LMT DAY order.
8. Receive OrderStatus.
9. Send CancelOrder.
10. Receive OrderStatus.
11. Send Logoff message.
Fill Correction
1. Send Logon message with valid credentials.
2. Receive LogonResult with result_code='SUCCESS'.
3. Send InformationRequest with symbol_resolution_request for symbol=’F.US.ZUC’.
4. Receive InformationReport with SymbolResolutionReport with status_code=’SUCCESS’ and contract_metadata for the symbol.
5. Send TradeSubscription with subscribe = true and subscription_scope=ORDERS.
6. Receive TradeSubscriptionStatus with status_code = ‘SUCCESS’ and TradeSnapshotCompletion.
7. Send NewOrder for BUY MKT DAY order.
8. Receive OrderStatus = Filled
9. Email OrderID to APIHELP@cqg.com(you can ask to test 1, 2, 3 steps together or separately )
(1) Correct the fill price.
(a) Receive OrderStatus: TransactionStatus.status=FILL_CORRECT, OrdStatus.status=Filled.
(b) Confirm the values of fields scaled_price, price_correct, scaled_prev_fill_price, and so on.
(2) Correct the fill size.
(a) Receive OrderStatus: TransactionStatus.status= FILL_CORRECT, OrdStatus= Filled.
(b) Confirm values of field qty.
(3) Bust the fill.
(a) Receive OrderStatus: TransactionStatus.status=FILL_BUST, OrdStatus=CANCELLED.
(b) Confirm values of fields avg_fill_price_correct, fill_qty, remaining_qty, and so on.
10. Send Logoff message.
Place a Suspended Order, Activate Order
1. Send Logon message with valid credentials.
2. Receive LogonResult with result_code='SUCCESS'.
3. Send InformationRequest with symbol_resolution_request for symbol=’F.US.ZUC’.
4. Receive InformationReport with SymbolResolutionReport with status_code=’SUCCESS’ and contract_metadata for the symbol.
5. Send TradeSubscription with subscribe = true and subscription_scope=ORDERS.
6. Receive TradeSubscriptionStatus with status_code = ‘SUCCESS’ and TradeSnapshotCompletion.
7. Send NewOrder for SELL LMT DAY order with suspend = true.
8. Receive OrderStatus.
9. Send ActivateOrder.
10. Receive OrderStatus.
11. Send Logoff message.
Successful Position Status Requests
1. Send Logon message with valid credentials.
2. Receive LogonResult with result_code='SUCCESS'.
3. Send InformationRequest with symbol_resolution_requests for the symbol=’F.US.ZUC’.
4. Receive InformationReport with SymbolResolutionReport with status_code=’SUCCESS’ and contract_metadata for the symbol.
5. Send TradeSubscription with subscribe = true and subscription_scope=POSITIONS.
6. Receive TradeSubscriptionStatus with status_code = ‘SUCCESS’, PositionStatus and TradeSnapshotCompletion.
7. Send NewOrder for BUY DAY MKT order and wait until it is filled (in order to get the fills, application must send TradeSubscription with subscribe = true and subscription_scope=ORDERS. This is optional for current test.).
8. Receive PositionStatus.
9. Send TradeSubscription with subscribe = false.
10. Receive TradeSubscriptionStatus with status_code = ‘SUCCESS’.
11. Send Logoff message.
12. Make sure to run this test, while having an option (e.g. C.EP, P.EP), an equity (S.MSFT) position.
Successful Collateral Status Requests
1. Send Logon message with valid credentials.
2. Receive LogonResult with result_code='SUCCESS'.
3. Send InformationRequest with symbol_resolution_requests for the symbol=’F.US.ZUI’.
4. Receive InformationReport with SymbolResolutionReport with status_code=’SUCCESS’ and contract_metadata for the symbol.
5. Send TradeSubscription with subscribe = true and subscription_scope= COLLATERAL.
6. Receive TradeSubscriptionStatus with status_code = ‘SUCCESS’, CollateralStatus and TradeSnapshotCompletion.
7. Send NewOrder for BUY DAY MKT order and wait until it is filled.
8. Receive CollateralStatus.
9. Send TradeSubscription with subscribe = false.
10. Receive TradeSubscriptionStatus with status_code = ‘SUCCESS’.
11. Send Logoff message.
Successful Account Summary Status Requests
1. Send Logon message with valid credentials.
2. Receive LogonResult with result_code='SUCCESS'.
3. Send InformationRequest with symbol_resolution_requests for the symbol=’F.US.ZUI’.
4. Receive InformationReport with SymbolResolutionReport with status_code=’SUCCESS’ and contract_metadata for the symbol.
5. Send TradeSubscription with subscribe = true and subscription_scope= ACCOUNTSUMMARY, with AccountSummaryParameters.
6. Receive TradeSubscriptionStatus with status_code = ‘SUCCESS’,AccountSummaryStatus and TradeSnapshotCompletion.
7. Send NewOrder for BUY DAY MKT order and wait until it is filled.
8. Receive AccountSummaryStatus.
9. Send TradeSubscription with subscribe = false.
10. Receive TradeSubscriptionStatus with status_code = ‘SUCCESS’.
11. Send Logoff message.