Done for Day vs Expired vs Canceled

Imported from previous forum

[ original email was from Domenico Betunio - betunio@bancaimi.it ]
We are a sell side and need to send to our buy sides an end of trading day exec rep for each unfilled/partially filled order, e.g. for each still live order that expires at the end of day.

I’m trying to figure out the best practice.

From a previous discussion on this site, concerning how to use Done for Day, Ryan Pierce says:
>1. At the end of a day or trading session all live Day orders not yet filled enter the Done for Day state. The sell side sends the buy side an Execution Report with ExecType and OrdStatus = Done for Day. This informs the buy side that the orders in question are indeed dead, and no further trades are forthcoming.

In other words the sell side is informing the buy side that their order(s) is expired.

To me the concept of “Expired order” is valid for both GTD order and Day order; the difference is the expiring date: a Day order expires in day while GTD order expires at the specified date. Assuming that this is correct a sell side could send Execution Report with ExecType and OrdStatus = Expired (instead of Done for Day) with regards to the Time in Force.
In effect it seems to be more accurate, even from the Fix documentation explanation of Expired Order Status (Fix 4.1 doc:" Order has been canceled in broker’s system due to time in force instruction"

For the same purpose, at the end of the trading day, some exchanges send an unsolicited cancel message for all unfilled orders, expired for the day. In fact Expired order have been cancelled, therefore another way to inform buy side about expired order could be sending Execution Report with ExecType and OrdStatus = Canceled (with or without executions).

Yet some buy sides do not want to receive Done for Day or Expired while, of course, they take Canceled: they assume Day orders not filled to be dead at the end of day.
Regardless of the risk, sending Expired messages instead of Canceled still gives them the possibility of filtering (at sell or buy side). Also from my perspective Exipred is more accurate than Canceled, while Done for Day could be ambigous since it is also used as an optional message for GTD/GTC orders.

Any comment is appreciated.

Domenico

[ original email was from Koorosh Alahiari - koorosh@7cis.com ]
Here is my interpretation:

DoneForDay does not necessarily imply that the order has expired. In fact, a buy side may expect a sell side to reactivate the order the following day. Here the sell side is informing the buy side that nothing more is to be done for that day. The order is neither cancelled nor is it expired.

The sell side may route GTC and GTX (GTD) orders as Good For Day orders and reactivate them as necessary (as GFD). The Expired status may apply to GTX orders that have really expired as opposed to orders which have not been fully (if at all) executed during a particular day.

Regards,

Koorosh Alahiari

7c Information Systems

> We are a sell side and need to send to our buy sides an end of trading day exec rep for each unfilled/partially filled order, e.g. for each still live order that expires at the end of day.
>
> I’m trying to figure out the best practice.
>
> From a previous discussion on this site, concerning how to use Done for Day, Ryan Pierce says:
> >1. At the end of a day or trading session all live Day orders not yet filled enter the Done for Day state. The sell side sends the buy side an Execution Report with ExecType and OrdStatus = Done for Day. This informs the buy side that the orders in question are indeed dead, and no further trades are forthcoming.
>
> In other words the sell side is informing the buy side that their order(s) is expired.
>
> To me the concept of “Expired order” is valid for both GTD order and Day order; the difference is the expiring date: a Day order expires in day while GTD order expires at the specified date. Assuming that this is correct a sell side could send Execution Report with ExecType and OrdStatus = Expired (instead of Done for Day) with regards to the Time in Force.
> In effect it seems to be more accurate, even from the Fix documentation explanation of Expired Order Status (Fix 4.1 doc:" Order has been canceled in broker’s system due to time in force instruction"
>
> For the same purpose, at the end of the trading day, some exchanges send an unsolicited cancel message for all unfilled orders, expired for the day. In fact Expired order have been cancelled, therefore another way to inform buy side about expired order could be sending Execution Report with ExecType and OrdStatus = Canceled (with or without executions).
>
> Yet some buy sides do not want to receive Done for Day or Expired while, of course, they take Canceled: they assume Day orders not filled to be dead at the end of day.
> Regardless of the risk, sending Expired messages instead of Canceled still gives them the possibility of filtering (at sell or buy side). Also from my perspective Exipred is more accurate than Canceled, while Done for Day could be ambigous since it is also used as an optional message for GTD/GTC orders.
>
> Any comment is appreciated.
>
> Domenico
>
>