Imported from previous forum
Hello,
I am wonderdering what the right OrderStatus would be, if I have a trade amount of 1000 that is hit completely on enter but has f.e. two contrahents.
My broker currently sends two ExecutionReports. The first one has OrderStatus = Partially_Filled allthought the LeavesQty allready is 0. Is this correct or should it be OrderStatus = Filled?
Many thanks in advance,
Harald
The equation OrderQty=CumQty+LeavesQty should normally hold true. A partially filled order status is inconsistent with LeavesQty=0.
You did not mention any FIX version. As of FIX 5, one can convey an order that is completely hit upon entry with a single ER by using the new . Then order status is immediately “Filled” and LeavesQty=0. shows the details of the two executions.
In older versions or when sending multiple ERs with FIX 5, one has to convey virtual intermediate states, i.e. partially filled is correct but LeavesQty should reflect what is left even if the sender already knows it has completely matched and has a single internal message from the matching engine that he needs to split up into two ERs in his FIX gateway.
Regards,
Hanno.
Hello,
I am wonderdering what the right OrderStatus would be, if I have a trade amount of 1000 that is hit completely on enter but has f.e. two contrahents.My broker currently sends two ExecutionReports. The first one has OrderStatus = Partially_Filled allthought the LeavesQty allready is 0. Is this correct or should it be OrderStatus = Filled?
Many thanks in advance,
Harald
Thank you. We’re trying to get Fix 4.4 to work. We would have preferred Fix 5.* but our brokers do not support this version and they are not planning to move upwards.
Did you see my last post, concerning directly hit orders? Do you agree that the following state of pending_new could be filled or partially filled, in other words skipping the new state?
The equation OrderQty=CumQty+LeavesQty should normally hold true. A partially filled order status is inconsistent with LeavesQty=0.
You did not mention any FIX version. As of FIX 5, one can convey an order that is completely hit upon entry with a single ER by using the new . Then order status is immediately “Filled” and LeavesQty=0. shows the details of the two executions.
In older versions or when sending multiple ERs with FIX 5, one has to convey virtual intermediate states, i.e. partially filled is correct but LeavesQty should reflect what is left even if the sender already knows it has completely matched and has a single internal message from the matching engine that he needs to split up into two ERs in his FIX gateway.
Regards,
Hanno.Hello,
I am wonderdering what the right OrderStatus would be, if I have a trade amount of 1000 that is hit completely on enter but has f.e. two contrahents.My broker currently sends two ExecutionReports. The first one has OrderStatus = Partially_Filled allthought the LeavesQty allready is 0. Is this correct or should it be OrderStatus = Filled?
Many thanks in advance,
Harald
Did you see my last post, concerning directly hit orders? Do you agree that the following state of pending_new could be filled or partially filled, in other words skipping the new state?
If you want to minimize messages then why start with “Pending New” and then skip “New” on a general basis? Your counterparties need to be able to cope with it but I would only use “Pending New” in exceptional circumstances, e.g. when queuing orders for an instrument that is temporarily unavailable (locked) and to let the submitter decide whether he wants to wait or follow it up with a cancel request.
FIX 4.4 is not the best version to deviate from the standard and well-known state changes. If you do then keep it as simple as possible without too many “if…then…else” conditions. And make sure to document the flows by using lots of examples.