Imported from previous forum
We’re having ongoing discussions about the correct use of DFD messages. According to our knowledge DFD messages should only be sent on orders which have not yet reached a final state (fully filled, expired or canceled).
Currently our OMS will receive expiration messages from the stock exchange about 2-3 minutes after the market closes. Based on these expiration messages it will expire the client orders in our system as well and send out the expiration messages to the clients. About 15 minutes later our system will generate DFD messages for all open orders (not expired, not fully filled, not canceled).
During the past weeks we have received requests from our clients who would also like to receive expiration messages for orders which have already expired, been fully filled or canceled during that day.
This could result in message sequences like the following:
-> Order
<- Ack
<- Fill messages
<- Expiration message
<- DFD message
Would this be valid and correct?
What scenarios are correct for DFD messages??
Done for day (35=8, 150=3) is used to communicate to client that there will be no more fills for the given order today. Its usually sent out for open GTD (59=6) and GTC (59=1) orders at the end of the trading day.
So sending out Done for day after an order has expired does not look right.
However I have seen counterparties who use DFD as a trigger in their OMS to kick off other processing. For example I have seen requests for a ‘Done for Day’ for day orders that were filled or for open day orders at the end of trading day.
I guess it boils down to how they use the DFD message in their system and whether you can provide it.
We’re having ongoing discussions about the correct use of DFD messages.
According to our knowledge DFD messages should only be sent on orders
which have not yet reached a final state (fully filled, expired or
canceled).Currently our OMS will receive expiration messages from the stock
exchange about 2-3 minutes after the market closes. Based on these
expiration messages it will expire the client orders in our system as
well and send out the expiration messages to the clients. About 15
minutes later our system will generate DFD messages for all open orders
(not expired, not fully filled, not canceled).During the past weeks we have received requests from our clients who
would also like to receive expiration messages for orders which have
already expired, been fully filled or canceled during that day.This could result in message sequences like the following: → Order ←
Ack ← Fill messages ← Expiration message ← DFD messageWould this be valid and correct? What scenarios are correct for DFD
messages??
I also see ExecutionReports with Done for Day status as relevant only for orders that have not reached the end of their lifetime yet. The status implies that they are only done for the current day and not done for the next business day. Some markets actually restate these orders in the morning again to confirm that they are still active.
ExecutionReports with full executions, cancellations and expiries represent the final message for an order, whether or not you subsequently still allow OrderStatusRequest messages for them.
I can understand the requirement to get a single stream of messages at the end of the day that includes all orders that were active at some point during this day. This makes reconciliation of order books easier. However, this can also be covered by means of a report sent via ftp or posted on the exchange website. Another option might be to send bulk restatements at the end of the day (ExecType=D) with OrdStatus being either 3=Done For Day or 2=Filled or 4=Cancelled or C=Expired.
You did not specify whether Done For Day was sent as an ExecType or an OrdStatus value.
We’re having ongoing discussions about the correct use of DFD messages.
According to our knowledge DFD messages should only be sent on orders
which have not yet reached a final state (fully filled, expired or
canceled).Currently our OMS will receive expiration messages from the stock
exchange about 2-3 minutes after the market closes. Based on these
expiration messages it will expire the client orders in our system as
well and send out the expiration messages to the clients. About 15
minutes later our system will generate DFD messages for all open orders
(not expired, not fully filled, not canceled).During the past weeks we have received requests from our clients who
would also like to receive expiration messages for orders which have
already expired, been fully filled or canceled during that day.This could result in message sequences like the following: → Order ←
Ack ← Fill messages ← Expiration message ← DFD messageWould this be valid and correct? What scenarios are correct for DFD
messages??