Closed donmendelson closed 3 years ago
I would consider this to be application level behavior and FIX field ExecInst(18) provides the means to do this on an order level:
K = Cancel on trading halt Q = Cancel on system failure o = Cancel on connection loss
Some exchanges define this behavior out-of-band on session level, adding information such as "affects quotes only" to limit the affected entities. Or it may be limited to algo orders and leave retail orders unaffected. I am not sure all of this should be part of session level knowledge.
@kleihan , I agree that control at the order level is ideal. It allows distinguishing between orders that originate a strategy v. hedge orders or customer orders, etc. However, I am trying to capture what some exchanges are doing, which is to control it at the session level. The resulting action is at application layer, but it is triggered by a session event.
Consider adding a field to Negotiate to request cancel-on-disconnect or similar actions that are triggered by unexpected session disconnection. Cancel-on-disconnect is a common feature of exchanges to cancel open orders if they cannot be controlled or monitored due to a connection break. It may simply be an on/off switch or may involve parameters to configure actions.
Of course, not all implementers of FIXP would use cancel-on-disconnect, so there should be a mechanism to extend Negotiate with optional features to be negotiated between client and server.