Imported from previous forum
[ original email was from Francesc Prats - fprats@meff.com ]
a) How can be identified (in the execution report) a stop limit order pending (but not triggered) from the same one but triggered?.
b) In an electronic market (like MEFF) one order can be cancelled for different reasons not always initiated by the trader (order price out of fluctuation limits, a Market Supervisor decision, …). When the execution report is sent including the new order status (cancelled), where can be explained a more detailed reason for this cancellation not initiated by the trader?.
[ original email was from Jim Northey - jnorthey@lasalletech.com ]
> a) How can be identified (in the execution report) a stop limit order pending (but not triggered) from the same one but triggered?.
> b) In an electronic market (like MEFF) one order can be cancelled for different reasons not always initiated by the trader (order price out of fluctuation limits, a Market Supervisor decision, …). When the execution report is sent including the new order status (cancelled), where can be explained a more detailed reason for this cancellation not initiated by the trader?.
>
Regarding (a) prior to FIX 4.3 there is no way to indicate when a stop order enters the market. In FIX 4.3 the Working Indicator (tag 636) was added to support the following message flow:
t1: New Order Single OrdType=4 -> Market
t2: Firm <- Execution Report OrdStatus=New
t3: Event: stop price crossed - order now trading
t4: Firm <- Execution Report OrdStatus=New, WorkingIndicator=Y
One approach to emulate this behavior would be to add a custom field for WorkingIndicator in your pre-FIX 4.3 implementation.
(b) There are additional reject reasons that we added to OrdRejReason(tag 103) in FIX 4.3, such as "Surveillence Option". However, this is not helpful if the order was accepted then canceled.
Some approaches might be helpful:
Use the Text(tag 58) field for an explanation or code to indicate the cancellation reason.
If this is an unsolicited cancellation - then you may choose to use a ClOrdID for the cancel to be that of some system generated value - to indicate it was done by the market not by the user (this probably needs to be discussed further - not sure what other markets do for market cancellations).
Define a custom tag for cancellation reason.
We should probably keep track of your item (b) to see if other markets would find this feature useful in a future version.