Imported from previous forum
The way I read transaction matrix D16 in the 4.2 spec, the quantity in a Cancel/Replace is relative to the quantity in the last received message (Order or Cancel/Replace), NOT the original order. For example:
-> Order, OrdQty = 100
order X accepted with open volume = 100
-> Cancel/Replace, OrdQty = 120
accepted, new order Y with open volume = 120
<- Execution Report, 50 filled, 70 still open
Firm wishes to increase from 70 to 80, so:
-> Cancel/Replace, OrdQty = 130
i.e. 130 - 120 = +10 which mean open vol = 70 + 10 = 80
Do you agree with the above? Or do you think the last Cancel/Replace with OrdQty=130 should be compared to the ORIGINAL order quantity of 100, i.e. be interpreted as a request to increase the open volume by +30?
Any thoughts, opinions or experiences are appreciated. Thank you.
Hello,
You cant have a multiple Cxl/Rpl on the same order. That is, in a CxlRpl chain, you can Cxl/Rpl the last order in the chain. So, with this in mind, i feel that you cant refer to the ‘original’ order quantity of 100. For any CxlRpl the previous order in the chain is the original order.
Reason:
When you place a CxlRpl you refer to the
Original ClOrdId of the order which you want to be replaced.
Ex: Ord1-> ClOrdId -> Test1
Ord2 -> CxlRpl On Ord1 -> OrgClOrdId = Test1 and ClOrdId = Test2
Ord3 -> CxlRpl On Ord2 -> OrgClOrdID = Test2 and ClOrdId = Test3.
Hope this helps you.
Thanks & Regards,
Sathya
> The way I read transaction matrix D16 in the 4.2 spec, the quantity in a Cancel/Replace is relative to the quantity in the last received message (Order or Cancel/Replace), NOT the original order. For example:
>
> -> Order, OrdQty = 100
> order X accepted with open volume = 100
> -> Cancel/Replace, OrdQty = 120
> accepted, new order Y with open volume = 120
> <- Execution Report, 50 filled, 70 still open
> Firm wishes to increase from 70 to 80, so:
> -> Cancel/Replace, OrdQty = 130
> i.e. 130 - 120 = +10 which mean open vol = 70 + 10 = 80
>
> Do you agree with the above? Or do you think the last Cancel/Replace with OrdQty=130 should be compared to the ORIGINAL order quantity of 100, i.e. be interpreted as a request to increase the open volume by +30?
>
> Any thoughts, opinions or experiences are appreciated. Thank you.
>
Yes, I Agree. In a Multiple Cancel/Replace scenario, FIX sends Order Quantity with previous order’s executed quantity plus the Current replacing order’s order quantity. The executed quantity would be filled in CumQty field. It also allows the Firm to place replace Order quantitiy not less than CumQty.
More information on this is given in Execution Reports section of FIX 4.2 Specification.
> The way I read transaction matrix D16 in the 4.2 spec, the quantity in a Cancel/Replace is relative to the quantity in the last received message (Order or Cancel/Replace), NOT the original order. For example:
>
> -> Order, OrdQty = 100
> order X accepted with open volume = 100
> -> Cancel/Replace, OrdQty = 120
> accepted, new order Y with open volume = 120
> <- Execution Report, 50 filled, 70 still open
> Firm wishes to increase from 70 to 80, so:
> -> Cancel/Replace, OrdQty = 130
> i.e. 130 - 120 = +10 which mean open vol = 70 + 10 = 80
>
> Do you agree with the above? Or do you think the last Cancel/Replace with OrdQty=130 should be compared to the ORIGINAL order quantity of 100, i.e. be interpreted as a request to increase the open volume by +30?
>
> Any thoughts, opinions or experiences are appreciated. Thank you.
>