sending cancel request for pending order

Imported from previous forum

Does FIX 4.2 allow following two actions?

  1. sending Order Cancel Request (msgType=F) for pending new order?
    e.g.:
    time 1: sending Order - Single (msgType=D)
    time 2: sending Order Cancel Request (msgType=F)
    (* no execution report is received between time 1 and time 2)

  2. sending Order Cancel Request (msgType=F) for pending replace order?
    e.g.:
    time 1: sending Order - Single(msgType=D)
    time 2: receiving Execution Report(msgType=8,execType=new,ordStatus=new)
    time 3: sending Order Cancel/Replace Request (msgType=G)
    time 4: sending Order Cacnel Request (msgType=F)
    (* no execution report is received between time 3 and time 4)

Lok,

I am not sure you’d want to send cancel requests in the scenarios you describe. While not technically prohibited, it would be good for an application to wait for a “positive” response before proceeding. “Positive” means (1) an execution report with order status = new, and (2) an execution report with order status = replaced.

It is possible to “rapid fire” replace requests (see also order state change matrices D16 and D17 in the FIX 4.2 specifications), but I believe waiting for a positive response is the cleaner way to implement.

You may even consider GUI validation (if your application has a GUI) such that sending a cancel or replace request on orders in some form of pending state (unacknowledged, pending new, pending cancel, pending replace) is not allowed for the user.

–ws

Does FIX 4.2 allow following two actions?

  1. sending Order Cancel Request (msgType=F) for pending new order?
    e.g.: time 1: sending Order - Single (msgType=D) time 2: sending Order
    Cancel Request (msgType=F) (* no execution report is received
    between time 1 and time 2)

  2. sending Order Cancel Request (msgType=F) for pending replace order?
    e.h.: time 1: sending Order - Single(msgType=D) time 2: receiving
    Execution Report(msgType=8,execType=new,ordStatus=new) time 3:
    sending Order Cancel/Replace Request (msgType=G) time 4: sending
    Order Cacnel Request (msgType=F) (* no execution report is received
    between time 3 and time 4)

[ original email was from Carfield Yim - carfield.w.yim@jpmorgan.com ]
> Does FIX 4.2 allow following two actions?

  1. sending Order Cancel Request (msgType=F) for pending new order?

Allowed, the order should be cancelled immediation, in fact that why 35=F have a case that 37=NONE

  1. sending Order Cancel Request (msgType=F) for pending replace order?
    e.h.: time 1: sending Order - Single(msgType=D) time 2: receiving
    Execution Report(msgType=8,execType=new,ordStatus=new) time 3:
    sending Order Cancel/Replace Request (msgType=G) time 4: sending
    Order Cacnel Request (msgType=F) (* no execution report is received
    between time 3 and time 4)

Can refer to the Appendix D
Order State Change Matrices of the spec. about this.