Stage 2: Simple Orders

The following tests will be done with the client application logged on and session persistence feature turned off. For more information on session persistence tests see Stage 4.

Order Placement and Fill

1)  Place new DAY order BUY 1 <Futures 1> MKT.

2)  Receive Execution Report: ExecTransType=New, OrdStatus=New, ExecType=New.

3)  Receive Execution Report: ExecTransType=New, OrdStatus=Filled, ExecType=Fill.

4)  Confirm values of ClOrdID (11), OrderID (37), ExecID (17), and TransactTime (60).

Place and Cancel

1)  Place new DAY order BUY 5 <Call option 1> STP <P1 = price above the market>.

2)  Receive Execution Report: ExecTransType=New, OrdStatus=New, ExecType=New.

3)  Cancel order.

4)  Receive Execution Report: ExecTransType=New, OrdStatus=Pending Cancel, ExecType=Pending Cancel.

5)  Receive Execution Report: ExecTransType=New, OrdStatus=Canceled, ExecType=Canceled.

6)  Confirm values of ClOrdID (11), OrigClOrdID (41), OrderID (37), ExecID (17), StopPx (99), TransactTime (60).

Unsolicited Cancel

1)  Place new DAY order BUY 5 <Call option 1> STP <P1 = price above the market>.

2)  Receive Execution Report: ExecTransType=New, OrdStatus=New, ExecType=New.

3)  Email OrderID (37) to APIHELP@cqg.com to cancel the order externally.

4)  Receive Execution Report: ExecTransType=New, OrdStatus=Pending Cancel, ExecType=Pending Cancel.

5)  Receive Execution Report: ExecTransType=New, OrdStatus=Canceled, ExecType=Canceled.

6)  Confirm values of OrderID (37), ExecID (17), StopPx (99), TransactTime (60).

Order Rejection

1)  Account trade size limit is 100 by default.

2)  Place new DAY order SELL 101 <Futures 1> MKT.

3)  Receive Execution Report: ExecTransType=New, OrdStatus=Rejected, ExecType=Rejected.

Order Modifications

1)  Place new GTC order SELL 100 <Futures 2> LMT <P1 = price above the market>.

2)  Receive Execution Report: ExecTransType=New, OrdStatus=New, ExecType=New.

3)  Modify order quantity to 50.

4)  Receive Execution Report: ExecTransType=New, OrdStatus=Pending Replace, ExecType=Pending Replace.

5)  Confirm OrderQty value.

6)  Receive Execution Report: ExecTransType=New, OrdStatus=Replaced, ExecType=Replace.

7)  Confirm OrderQty value.

8)  Modify order price to P2 > P1.

9)  Receive Execution Report: ExecTransType=New, OrdStatus=Pending Replace, ExecType=Pending Replace.

10) Confirm Price value.

11) Receive Execution Report: ExecTransType=New, OrdStatus=Replaced, ExecType=Replace.

12) Confirm Price value.

13) Cancel the order.

14) Receive Execution Report: ExecTransType=New, OrdStatus=Pending Cancel, ExecType=Pending Cancel.

15) Receive Execution Report: ExecTransType=New, OrdStatus=Canceled, ExecType=Canceled.

16) Confirm values of OrderID, ExecID, Price, OrderQty, TransactTime.

Order Modification: Price and Quantity

1)  Place new GTC order SELL 50 <Futures 2> LMT <P1 = price above the market>.

2)  Receive Execution Report: ExecTransType=New, OrdStatus=New, ExecType=New.

3)  Modify order: Set order price to P2 > P1 and order size to 100 in the one request.

4)  Receive Execution Report: ExecTransType=New, OrdStatus=Pending Replace, ExecType=Pending Replace.

5)  Confirm Price and OrderQty values.

6)  Receive Execution Report: ExecTransType=New, OrdStatus=Replaced, ExecType=Replace.

7)  Confirm values of ClOrdID, OrigClOrdID, OrderID, ExecID, Price, OrderQty, TransactTime.

Order Modification Rejection

1)  Account trade size limit is 100 by default.

2)  Place new GTD <date = now + 1 week> order SELL 100 <Put option 1> STP P1 = <price below the market> LMT P2 < P1.

3)  Receive Execution Report: ExecTransType=New, OrdStatus=New, ExecType=New.

4)  Modify order quantity to 101 to hit the order size limit.

5)  Receive Order Cancel Reject: OrdStatus=New.

6)  Confirm OrderQty value.

7)  Cancel order.

8)  Receive Execution Report: ExecType=Canceled, ExecTransType=New, OrdStatus=Canceled

9)  Confirm values of ClOrdID, OrigClOrdID, OrderID, ExecID, OrderQty, TransactTime and ExpireDate.

Canceling Partially Filled Order

1)  Place new GTD <date = now + 1 week> order BUY 100 <Futures 2> LMT P1 = <below the market>.

2)  Receive Execution Report: ExecTransType=New, OrdStatus=New, ExecType=New.

3)  Wait until the order is partially filled.

4)  Receive Execution Report: ExecTransType=New, OrdStatus=Partially Filled, ExecType=Partial Fill.

5)  Confirm values of LastPx, LastShares, AvgPx, CumQty, and LeavesQty.

6)  Cancel order.

7)  Receive Execution Report: ExecType=Canceled, ExecTransType=New, OrdStatus=Canceled

8)  Confirm values of ClOrdID, OrigClOrdID, OrderID, ExecID, TransactTime, and ExpireDate.

9)  Confirm values of AvgPx, CumQty, and LeavesQty.

Strategy Order: Zero Price

1)  Place DAY order SELL or BUY 1 <Futures Spread 1> LMT 0, use BUY if market price is below zero, SELL if above (to get order filled).

2)  Receive Execution Report: ExecTransType=New, OrdStatus=New, ExecType=New.

3)  Receive Execution Report: ExecTransType=New, OrdStatus=Filled, ExecType=Fill.

4)  Confirm values of ClOrdID, OrigClOrdID, OrderID, ExecID, TransactTime.

5)  Confirm values of LastPx, LastShares, AvgPx, CumQty, and LeavesQty.

6)  Confirm leg field values: NoLegs, LegCurrency, LegSymbol, LegSide, LegLastPx, and LegQty.

Strategy Order: Negative Price

1)  Place DAY order SELL or BUY 1 <Futures Spread 1> LMT -2, use BUY if market price is below zero, SELL if above (to get order filled).

2)  Receive Execution Report: ExecTransType=New, OrdStatus=New, ExecType=New.

3)  Receive Execution Report: ExecTransType=New, OrdStatus=Filled, ExecType=Fill.

4)  Confirm values of ClOrdID, OrigClOrdID, OrderID, ExecID, TransactTime.

5)  Confirm values of LastPx, LastShares, AvgPx, CumQty, and LeavesQty.

6)  Confirm leg field values: NoLegs, LegCurrency, LegSymbol, LegSide, LegLastPx, and LegQty.

Fill Corrections

1)  Place DAY order BUY 2 <Futures 3> LMT P1 = <above the market>.

2)  Receive Execution Report: ExecTransType=New, OrdStatus=New, ExecType=New.

3)  Receive Execution Report: ExecTransType=New, OrdStatus=Filled, ExecType=Fill.

4)  Email OrderID (37) to APIHELP@cqg.com to (you can ask to test a, b, c steps together or separately )

a)  Correct the fill price.

i)   Receive Execution Report: ExecTransType=Correct, OrdStatus=Filled, ExecType=Fill.

ii)  Confirm the values of fields LastPx, AvgPx, LastShares, and OrderQty.

b)  Correct the fill size.

i)   Receive Execution Report: ExecTransType=Correct, OrdStatus= Partially Filled, ExecType= Partial Fill.

ii)  Confirm values of fields LastPx, AvgPx, LastShares, and OrderQty.

c)  Bust the fill.

i)   Receive Execution Report: ExecTransType=Cancel, OrdStatus=New, ExecType=Partial Fill.

ii)  Confirm values of fields LastPx, AvgPx, LastShares, and OrderQty.

External Fill

1)  Email account id and symbol to APIHELP@cqg.com to have an external Fill.

2)  Receive Execution Report: ExecTransType=New, OrdStatus=Filled, ExecType=Fill.

3)  Confirm values of LastPx, AvgPx, LastShares, and OrderQty.

Order Expiration

This test is done near the closing time of the <Futures 5> contract.

1)  Place DAY order BUY 1 <Futures 5> LMT P1 = <far below the market>.

2)  Receive Execution Report: ExecTransType=New, OrdStatus=New, ExecType=New.

3)  Wait until the close of the day trading session.

4)  Receive Execution Report: ExecTransType=New, OrdStatus=Canceled, ExecType=Canceled (wait for additional 5 minutes if this report did not come immediately after day trading session close).