Imported from previous forum
[ original email was from Rajan Rajput - rajput@itgssi.com ]
Can we set ExecId = 0 for a “Pending New” (OrdStatus = ‘A’) report ?
Or the unique ExecID rule must be followed.
[ original email was from John Prewett - jprewett@lavatrading.com ]
>
Can we set ExecId = 0 for a “Pending New” (OrdStatus = ‘A’) report ?
Or the unique ExecID rule must be followed.
Officially, the unique ExecID rule must be followed.
Unofficially, you may be able to use 0 on all non-fill ExecutionReports.
The it will depend on how closely the counterparty to whom you send the ExecutionReport follows the FIX specification.
Most people use the unique ExecID to guarantee that they are not processing duplicate partial/complete fills. For non-fill related ExecutionReports, they don’t care.
So the real answer is “it depends on the counterparty”, in which case you had better have the ability to generate unique ExecIDs for all ExecutionReports to handle those picky customers. Once you have that ability to obey the official rules, it makes no sense to disobey them sometimes.
John Prewett
[ original email was from Ryan Pierce - rpierce@taltrade.com ]
> Can we set ExecId = 0 for a “Pending New” (OrdStatus = ‘A’) report ?
Or the unique ExecID rule must be followed.
This is a trick question!
When sending Execution Reports to convey any new information, ExecIDs must be unique. This is critical; if the recipient of the message cannot depend upon ExecID uniqueness, the recipient will have no definitive way of knowing whether they are processing the same business-level message twice. Reusing an ExecID can easily cause a counterparty to ignore or reject the message, and it might even set off people’s pagers.
But you said “Pending New” which introduces a new twist. According to the FIX 4.4 spec, “An execution message with this status will only be sent in response to a Status Request message.” So, if I sent you an order, it follows that I should never receive a Pending New message back.
Now there are contradictions in the 4.4 spec. Vol. 4 seems to say that in some cases with cross orders a Pending New message should be sent, and some language relating to multileg strategies similarly implies it as well. So if we assume that a firm can send a “Pending New” Execution Report to acknowledge an order, then I would say that ExecID must be unique in this case.
But if a firm sends a an Order Status Request before the order transitions to New, and a “Pending New” Execution Report is sent in response, different rules apply. The response, according to the FIX 4.4 spec, should have ExecID=0. The ExecID uniqueness requirement does not exist when responding to an Order Status Request because there’s no business-level event that has happened to the order.