Fix protocol: how to handle 3-way OCO orders

I have a situation where I receive 4 orders from my client (see below). One order is an OTO (Trigger Order Order) and it will trigger the other three orders if filled. These three OCO (Order Cancels Order) orders of each other. So, if someone fills in, the other two will be canceled.

CME-ES.Enter ~ B 2 @ESM15 @ 2048.25 Limit Day [OTO CME-ES.ExitL, CME-ES.ExitS, CME-ES.ExitT]
CME-ES.ExitL ~ S 2 @ESM15 @ 2040.25 Limit Day [OCO CME-ES.ExitS, CME-ES.ExitT]
CME-ES.ExitS ~ S 2 @ESM15 @ 2058.25 Stop Day [OCO CME-ES.ExitL, CME-ES.ExitT]
CME-ES.ExitT ~ S 2 @ESM15 @ 1/24/2015 3:50pm Time Day [OCO CME-ES.ExitL, CME-ES.ExitS]

Note: "CME-ES.Enter" is the ClOrdID

      

This system has a normal stop and limit for orders to exit, but also has a third order of exit at a specific time.

This type of three-way OTO / OCO doesn't exist (I think) within the fixes. If there is no tag in which all these orders will be canceled (or enter the market) at a certain time.

If there is no normal way to do this ... several options seem like a custom way to handle this. I could submit orders in a list and provide OTO / OCO instructions in the Text (58) field of each order ... or perhaps in ListExecInst (69) ... and essentially put the text that is between the brackets in the customer orders.

1) Is there an official way to handle this?

2) Is there some other unofficial but generally accepted way to do this?

3) If not 1 or 2, would my path be a good approach.

4) Is my suggestion above reasonable ... or is this a horrible twisted way of using the fix?

Thank! - Brian

Note. I program the acceptor and receive these messages ... but I determine what to send.

+3


source to share


1 answer


I don't know, but I suspect that nothing is defined in the data dictionary for this operation. I think you are talking about a custom tool. I haven't compiled a custom tool before, but take a look here



-1


source







All Articles