An OCO (One Cancels Other) order consists of:
When one order gets filled, the other is cancelled. If one is partially filled, the volume on the other is reduced accordingly.
An OCO Order is submitted with the New Order List (Tag 35=E) message. Following are the most relevant tags to build an OCO Order:
Tag | Field | Description |
---|---|---|
1385=1 | ContingencyType | Specifier of OCO order type |
44 | Price | Price of Limit component. Must be below last traded price for Buys and above for Sells. |
99 | Stop Price | Price of Stop component. Must be above last traded price for Buys and below for Sells. |
48 | SecurityID | Market for which the order is sent |
55 | Symbol | Contract for which the order is sent |
207 | SecurityExchange | Exchange for which the order is sent |
Additional Notes
Sample
In this example, a buy OCO order is submitted at:
The Stop component is filled, and the Limit component is subsequently cancelled.
OCO Order
>> 4/26/2013 9:17:40 AM [FIXNEWORDERLIST] 34=1871|49=T4Example|56=T4|50=Account1|52=20130426-14:17:40.583|66=fnl-635025646605836934|1385=1|433=1|68=2|11=oco-1-635025646605836934|1=Account1|54=1|38=1|48=CME_20130600_ESM3|55=ES|207=CME_Eq|40=2|44=157850|59=0|21=2|60=20130426-14:17:40.583|11=oco-2-635025646605836934|1=Account1|54=1|38=1|48=CME_20130600_ESM3|55=ES|207=CME_Eq|40=3|99=157900|59=0|21=2|60=20130426-14:17:40.583| [FIXNEWORDERLIST] [MsgSeqNum] 34 = 1871 [SenderCompID] 49 = T4Example [TargetCompID] 56 = T4 [SenderSubID] 50 = Account1 [SendingTime] 52 = 20130426-14:17:40.583 [ListID] 66 = fnl-635025646605836934 [ContingencyType] 1385 = 1 (OCO) [ListExecInstType] 433 = 1 (IMMEDIATE) [TotNoOrders] 68 = 2 [ClOrdID] 11 = oco-1-635025646605836934 [Account] 1 = Account1 [Side] 54 = 1 (BUY) [OrderQty] 38 = 1 [SecurityID] 48 = CME_20130600_ESM3 [Symbol] 55 = ES [SecurityExchange] 207 = CME_Eq [OrdType] 40 = 2 (LIMIT) [Price] 44 = 157850 [TimeInForce] 59 = 0 (DAY) [HandlInst] 21 = 2 (AUTOMATED_EXECUTION_ORDER_PUBLIC_BROKER_INTERVENTION_OK) [TransactTime] 60 = 20130426-14:17:40.583 [ClOrdID] 11 = oco-2-635025646605836934 [Account] 1 = Account1 [Side] 54 = 1 (BUY) [OrderQty] 38 = 1 [SecurityID] 48 = CME_20130600_ESM3 [Symbol] 55 = ES [SecurityExchange] 207 = CME_Eq [OrdType] 40 = 3 (STOP) [StopPx] 99 = 157900 [TimeInForce] 59 = 0 (DAY) [HandlInst] 21 = 2 (AUTOMATED_EXECUTION_ORDER_PUBLIC_BROKER_INTERVENTION_OK) [TransactTime] 60 = 20130426-14:17:40.583
OCO Order Response - Limit Component Working
<< 4/26/2013 9:17:40 AM [fixexecutionreport] 34=130733|49=T4|56=T4Example|50=T4FIX|52=20130426-14:17:40.677|143=US,IL|1=Account1|11=oco-1-635025646605836934|66=fnl-635025646605836934|17=48323.6446981231_ESM3.6350256466290500006.1.77A1CE19|150=0|37=77A1CE19-9041-4620-80AB-40BFABB45048|39=0|48=CME_20130600_ESM3|55=ES|207=CME_Eq|200=201306|59=0|107=E-mini S&P 500 Jun13|54=1|167=FUT|38=1|40=2|44=157850|60=20130426-14:17:42.905|21=1|204=0|1385=1| [FIXEXECUTIONREPORT] [MsgSeqNum] 34 = 130733 [SenderCompID] 49 = T4 [TargetCompID] 56 = T4Example [SenderSubID] 50 = T4FIX [SendingTime] 52 = 20130426-14:17:40.677 [TargetLocationID] 143 = US,IL [Account] 1 = Account1 [ClOrdID] 11 = oco-1-635025646605836934 [ListID] 66 = fnl-635025646605836934 [ExecID] 17 = 48323.6446981231_ESM3.6350256466290500006.1.77A1CE19 [ExecType] 150 = 0 (NEW) [OrderID] 37 = 77A1CE19-9041-4620-80AB-40BFABB45048 [OrdStatus] 39 = 0 (NEW) [SecurityID] 48 = CME_20130600_ESM3 [Symbol] 55 = ES [SecurityExchange] 207 = CME_Eq [MaturityMonthYear] 200 = 201306 [TimeInForce] 59 = 0 (DAY) [SecurityDesc] 107 = E-mini S&P 500 Jun13 [Side] 54 = 1 (BUY) [SecurityType] 167 = FUT (FUTURE) [OrderQty] 38 = 1 [OrdType] 40 = 2 (LIMIT) [Price] 44 = 157850 [TransactTime] 60 = 20130426-14:17:42.905 [HandlInst] 21 = 1 (AUTOMATED_EXECUTION_ORDER_PRIVATE_NO_BROKER_INTERVENTION) [CustomerOrFirm] 204 = 0 (CUSTOMER) [ContingencyType] 1385 = 1 (OCO)
OCO Order Response - Stop Component Working
<< 4/26/2013 9:17:40 AM [fixexecutionreport] 34=130735|49=T4|56=T4Example|50=T4FIX|52=20130426-14:17:40.880|143=US,IL|1=Account1|11=oco-2-635025646605836934|66=fnl-635025646605836934|17=48324.6446981232_ESM3.6350256466290900006.1.824FCFDB|150=0|37=824FCFDB-D4D3-4207-B4A9-2FF07C1FE813|39=0|48=CME_20130600_ESM3|55=ES|207=CME_Eq|200=201306|59=0|107=E-mini S&P 500 Jun13|54=1|167=FUT|38=1|40=3|99=157900|60=20130426-14:17:42.909|21=1|204=0|1385=1| [FIXEXECUTIONREPORT] [MsgSeqNum] 34 = 130735 [SenderCompID] 49 = T4 [TargetCompID] 56 = T4Example [SenderSubID] 50 = T4FIX [SendingTime] 52 = 20130426-14:17:40.880 [TargetLocationID] 143 = US,IL [Account] 1 = Account1 [ClOrdID] 11 = oco-2-635025646605836934 [ListID] 66 = fnl-635025646605836934 [ExecID] 17 = 48324.6446981232_ESM3.6350256466290900006.1.824FCFDB [ExecType] 150 = 0 (NEW) [OrderID] 37 = 824FCFDB-D4D3-4207-B4A9-2FF07C1FE813 [OrdStatus] 39 = 0 (NEW) [SecurityID] 48 = CME_20130600_ESM3 [Symbol] 55 = ES [SecurityExchange] 207 = CME_Eq [MaturityMonthYear] 200 = 201306 [TimeInForce] 59 = 0 (DAY) [SecurityDesc] 107 = E-mini S&P 500 Jun13 [Side] 54 = 1 (BUY) [SecurityType] 167 = FUT (FUTURE) [OrderQty] 38 = 1 [OrdType] 40 = 3 (STOP) [StopPx] 99 = 157900 [TransactTime] 60 = 20130426-14:17:42.909 [HandlInst] 21 = 1 (AUTOMATED_EXECUTION_ORDER_PRIVATE_NO_BROKER_INTERVENTION) [CustomerOrFirm] 204 = 0 (CUSTOMER) [ContingencyType] 1385 = 1 (OCO)
OCO Order Response - Stop Component activated to Limit
<< 4/26/2013 9:20:46 AM [fixexecutionreport] 34=131009|49=T4|56=T4Example|50=T4FIX|52=20130426-14:20:46.286|143=US,IL|1=Account1|11=oco-2-635025646605836934|66=fnl-635025646605836934|17=48324.6446981232_ESM3.6350256484851300006.1.824FCFDB|150=0|37=824FCFDB-D4D3-4207-B4A9-2FF07C1FE813|39=0|48=CME_20130600_ESM3|55=ES|207=CME_Eq|200=201306|59=0|107=E-mini S&P 500 Jun13|54=1|167=FUT|38=1|40=2|44=158200|60=20130426-14:20:48.513|21=1|204=0|1385=1| [FIXEXECUTIONREPORT] [MsgSeqNum] 34 = 131009 [SenderCompID] 49 = T4 [TargetCompID] 56 = T4Example [SenderSubID] 50 = T4FIX [SendingTime] 52 = 20130426-14:20:46.286 [TargetLocationID] 143 = US,IL [Account] 1 = Account1 [ClOrdID] 11 = oco-2-635025646605836934 [ListID] 66 = fnl-635025646605836934 [ExecID] 17 = 48324.6446981232_ESM3.6350256484851300006.1.824FCFDB [ExecType] 150 = 0 (NEW) [OrderID] 37 = 824FCFDB-D4D3-4207-B4A9-2FF07C1FE813 [OrdStatus] 39 = 0 (NEW) [SecurityID] 48 = CME_20130600_ESM3 [Symbol] 55 = ES [SecurityExchange] 207 = CME_Eq [MaturityMonthYear] 200 = 201306 [TimeInForce] 59 = 0 (DAY) [SecurityDesc] 107 = E-mini S&P 500 Jun13 [Side] 54 = 1 (BUY) [SecurityType] 167 = FUT (FUTURE) [OrderQty] 38 = 1 [OrdType] 40 = 2 (LIMIT) [Price] 44 = 158200 [TransactTime] 60 = 20130426-14:20:48.513 [HandlInst] 21 = 1 (AUTOMATED_EXECUTION_ORDER_PRIVATE_NO_BROKER_INTERVENTION) [CustomerOrFirm] 204 = 0 (CUSTOMER) [ContingencyType] 1385 = 1 (OCO)
OCO Order Response - Stop Component Filled
<< 4/26/2013 9:20:46 AM [fixexecutionreport] 34=131012|49=T4|56=T4Example|50=T4FIX|52=20130426-14:20:46.489|143=US,IL|1=Account1|11=oco-2-635025646605836934|66=fnl-635025646605836934|17=64229:5559243TN0374282.63502564848513000021.2.824FCFDB|150=F|37=824FCFDB-D4D3-4207-B4A9-2FF07C1FE813|39=2|48=CME_20130600_ESM3|55=ES|207=CME_Eq|200=201306|59=0|107=E-mini S&P 500 Jun13|54=1|167=FUT|38=1|40=2|44=158200|31=157900|32=1|14=1|151=0|60=20130426-14:20:48.626|21=1|204=0|337=TRADE|375=CME000A|1385=1| [FIXEXECUTIONREPORT] [MsgSeqNum] 34 = 131012 [SenderCompID] 49 = T4 [TargetCompID] 56 = T4Example [SenderSubID] 50 = T4FIX [SendingTime] 52 = 20130426-14:20:46.489 [TargetLocationID] 143 = US,IL [Account] 1 = Account1 [ClOrdID] 11 = oco-2-635025646605836934 [ExecID] 17 = 64229:5559243TN0374282.63502564848513000021.2.824FCFDB [ExecType] 150 = F [OrderID] 37 = 824FCFDB-D4D3-4207-B4A9-2FF07C1FE813 [OrdStatus] 39 = 2 (FILLED) [SecurityID] 48 = CME_20130600_ESM3 [Symbol] 55 = ES [SecurityExchange] 207 = CME_Eq [MaturityMonthYear] 200 = 201306 [TimeInForce] 59 = 0 (DAY) [SecurityDesc] 107 = E-mini S&P 500 Jun13 [Side] 54 = 1 (BUY) [SecurityType] 167 = FUT (FUTURE) [OrderQty] 38 = 1 [OrdType] 40 = 2 (LIMIT) [Price] 44 = 158200 [LastPx] 31 = 157900 [LastShares] 32 = 1 [CumQty] 14 = 1 [LeavesQty] 151 = 0 [TransactTime] 60 = 20130426-14:20:48.626 [HandlInst] 21 = 1 (AUTOMATED_EXECUTION_ORDER_PRIVATE_NO_BROKER_INTERVENTION) [CustomerOrFirm] 204 = 0 (CUSTOMER) [ContraTrader] 337 = TRADE [ContraBroker] 375 = CME000A [ContingencyType] 1385 = 1 (OCO)
OCO Order Response - Limit Component pending cancel (Risk assessment success)
<< 4/26/2013 9:20:46 AM [fixexecutionreport] 34=131013|49=T4|56=T4Example|50=T4FIX|52=20130426-14:20:46.816|143=US,IL|1=Account1|11=oco-1-635025646605836934|66=fnl-635025646605836934|17=48323.6446981231_ESM3.63502564662905000014.1.77A1CE19|150=6|37=77A1CE19-9041-4620-80AB-40BFABB45048|39=6|48=CME_20130600_ESM3|55=ES|207=CME_Eq|200=201306|59=0|107=E-mini S&P 500 Jun13|54=1|167=FUT|38=0|40=2|44=157850|58=OCO Pull: PullRiskSuccess. Pull passed risk management|60=20130426-14:17:42.783|21=1|204=0|1385=1| [FIXEXECUTIONREPORT] [MsgSeqNum] 34 = 131013 [SenderCompID] 49 = T4 [TargetCompID] 56 = T4Example [SenderSubID] 50 = T4FIX [SendingTime] 52 = 20130426-14:20:46.816 [TargetLocationID] 143 = US,IL [Account] 1 = Account1 [ClOrdID] 11 = oco-1-635025646605836934 [ListID] 66 = fnl-635025646605836934 [ExecID] 17 = 48323.6446981231_ESM3.63502564662905000014.1.77A1CE19 [ExecType] 150 = 6 (PENDING_CANCEL) [OrderID] 37 = 77A1CE19-9041-4620-80AB-40BFABB45048 [OrdStatus] 39 = 6 (PENDING_CANCEL) [SecurityID] 48 = CME_20130600_ESM3 [Symbol] 55 = ES [SecurityExchange] 207 = CME_Eq [MaturityMonthYear] 200 = 201306 [TimeInForce] 59 = 0 (DAY) [SecurityDesc] 107 = E-mini S&P 500 Jun13 [Side] 54 = 1 (BUY) [SecurityType] 167 = FUT (FUTURE) [OrderQty] 38 = 0 [OrdType] 40 = 2 (LIMIT) [Price] 44 = 157850 [Text] 58 = OCO Pull: PullRiskSuccess. Pull passed risk management [TransactTime] 60 = 20130426-14:17:42.783 [HandlInst] 21 = 1 (AUTOMATED_EXECUTION_ORDER_PRIVATE_NO_BROKER_INTERVENTION) [CustomerOrFirm] 204 = 0 (CUSTOMER) [ContingencyType] 1385 = 1 (OCO)
OCO Order Response - Limit Component pending cancel (submitted to exchange)
<< 4/26/2013 9:20:46 AM [fixexecutionreport] 34=131014|49=T4|56=T4Example|50=T4FIX|52=20130426-14:20:46.832|143=US,IL|1=Account1|11=oco-1-635025646605836934|66=fnl-635025646605836934|17=48325.6446981231_ESM3.63502564662905000016.1.77A1CE19|150=6|37=77A1CE19-9041-4620-80AB-40BFABB45048|39=6|48=CME_20130600_ESM3|55=ES|207=CME_Eq|200=201306|59=0|107=E-mini S&P 500 Jun13|54=1|167=FUT|38=0|40=2|44=157850|58=OCO Pull|60=20130426-14:17:42.905|21=1|204=0|1385=1| [FIXEXECUTIONREPORT] [MsgSeqNum] 34 = 131014 [SenderCompID] 49 = T4 [TargetCompID] 56 = T4Example [SenderSubID] 50 = T4FIX [SendingTime] 52 = 20130426-14:20:46.832 [TargetLocationID] 143 = US,IL [Account] 1 = Account1 [ClOrdID] 11 = oco-1-635025646605836934 [ListID] 66 = fnl-635025646605836934 [ExecID] 17 = 48325.6446981231_ESM3.63502564662905000016.1.77A1CE19 [ExecType] 150 = 6 (PENDING_CANCEL) [OrderID] 37 = 77A1CE19-9041-4620-80AB-40BFABB45048 [OrdStatus] 39 = 6 (PENDING_CANCEL) [SecurityID] 48 = CME_20130600_ESM3 [Symbol] 55 = ES [SecurityExchange] 207 = CME_Eq [MaturityMonthYear] 200 = 201306 [TimeInForce] 59 = 0 (DAY) [SecurityDesc] 107 = E-mini S&P 500 Jun13 [Side] 54 = 1 (BUY) [SecurityType] 167 = FUT (FUTURE) [OrderQty] 38 = 0 [OrdType] 40 = 2 (LIMIT) [Price] 44 = 157850 [Text] 58 = OCO Pull [TransactTime] 60 = 20130426-14:17:42.905 [HandlInst] 21 = 1 (AUTOMATED_EXECUTION_ORDER_PRIVATE_NO_BROKER_INTERVENTION) [CustomerOrFirm] 204 = 0 (CUSTOMER) [ContingencyType] 1385 = 1 (OCO)
OCO Order Response - Limit Component Cancelled
<< 4/26/2013 9:20:46 AM [fixexecutionreport] 34=131015|49=T4|56=T4Example|50=T4FIX|52=20130426-14:20:46.848|143=US,IL|1=Account1|11=oco-1-635025646605836934|66=fnl-635025646605836934|17=48325.6446981231_ESM3.63502564849076000018.2.77A1CE19|150=4|37=77A1CE19-9041-4620-80AB-40BFABB45048|39=4|48=CME_20130600_ESM3|55=ES|207=CME_Eq|200=201306|59=0|107=E-mini S&P 500 Jun13|54=1|167=FUT|38=0|40=2|44=157850|60=20130426-14:20:49.076|21=1|204=0|1385=1| [FIXEXECUTIONREPORT] [MsgSeqNum] 34 = 131015 [SenderCompID] 49 = T4 [TargetCompID] 56 = T4Example [SenderSubID] 50 = T4FIX [SendingTime] 52 = 20130426-14:20:46.848 [TargetLocationID] 143 = US,IL [Account] 1 = Account1 [ClOrdID] 11 = oco-1-635025646605836934 [ListID] 66 = fnl-635025646605836934 [ExecID] 17 = 48325.6446981231_ESM3.63502564849076000018.2.77A1CE19 [ExecType] 150 = 4 (CANCELED) [OrderID] 37 = 77A1CE19-9041-4620-80AB-40BFABB45048 [OrdStatus] 39 = 4 (CANCELED) [SecurityID] 48 = CME_20130600_ESM3 [Symbol] 55 = ES [SecurityExchange] 207 = CME_Eq [MaturityMonthYear] 200 = 201306 [TimeInForce] 59 = 0 (DAY) [SecurityDesc] 107 = E-mini S&P 500 Jun13 [Side] 54 = 1 (BUY) [SecurityType] 167 = FUT (FUTURE) [OrderQty] 38 = 0 [OrdType] 40 = 2 (LIMIT) [Price] 44 = 157850 [TransactTime] 60 = 20130426-14:20:49.076 [HandlInst] 21 = 1 (AUTOMATED_EXECUTION_ORDER_PRIVATE_NO_BROKER_INTERVENTION) [CustomerOrFirm] 204 = 0 (CUSTOMER) [ContingencyType] 1385 = 1 (OCO)
Further details on the tags used for this order type are described in the dictionary of the New Order List message.