developers:fixapi:flattenorder

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
developers:fixapi:flattenorder [2025/09/12 01:48] – removed - external edit (Unknown date) 127.0.0.1developers:fixapi:flattenorder [2025/09/12 01:48] (current) – ↷ Page moved and renamed from developers:fixapi.flattenorder to developers:fixapi:flattenorder chad
Line 1: Line 1:
 +===== Flatten Order =====
 +
 +A **Flatten Order** can be used to flatten a current position regardless of what that position is.  
 +The **T4 FIX API** server determines the volume and Buy/Sell parameters.  
 +If a position does not currently exist for the **SecurityID** (Tag 48) of the submitted flatten order, the order is rejected.
 +
 +A Flatten Order is entered with the **New Order Single** (Tag 35=D) message.  
 +Following are the most relevant tags to build a Flatten Order:
 +
 +^ Tag ^ Field ^ Description ^
 +| 40=F | OrdType | Specifier of Flatten Order Type |
 +| 38   | OrderQty | Set to 0 to have the T4 FIX API server determine the volume needed to flatten the position. A finite quantity may also be entered. |
 +| 54   | Side | Set to 0 (NONE) to have the T4 FIX API server determine whether to Buy or Sell to flatten. A finite side may also be entered. |
 +| 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 |
 +| 167  | SecurityType | Security Type (e.g. Futures) of this specific market |
 +
 +----
 +
 +**OrderQty Considerations**  
 +  * **OrderQty = 0** – Allows the API server to bypass certain risk management checks.  
 +    - Example: If Max Clip Size = 10 and Max Position = 20, and the current position is long 15, the server can submit a 15-lot sell without being rejected due to the clip size limit.  
 +  * **OrderQty > 0** – Acts as a maximum volume to submit.  
 +    - Example: If position = long 15 and OrderQty = 12, only a 12-lot order would be submitted.  
 +    - Risk management checks will be applied; order may be rejected if it violates limits (e.g. exceeds Max Clip Size).
 +
 +----
 +
 +**Side Considerations**  
 +  * **Side = 0 (NONE)** – Lets the server determine the side needed to flatten.  
 +  * **Side = BUY (1) or SELL (2)** – Server will only flatten if the position is in the correct direction.  
 +    - Example: If holding a long position and sending a flatten order with **Side = BUY (1)**, the server will reject the order.
 +
 +----
 +
 +**Sample**
 +
 +In this example, the Flatten order is submitted by setting **OrdType** (Tag 40) = **F**.  
 +Price (**Tag 44**) is not entered, **Side** (Tag 54) = **0** (NONE), and **OrderQty** (Tag 38) = **0**.
 +
 +Flatten Order
 +<code>
 +>> 2/22/2013 12:51:28 PM   [FIXNEWORDER] 34=153|49=T4Example|56=T4|50=TraderName|52=20130222-18:51:28.207|1=Account1|11=fn-634971342882072305|48=CME_20130300_ZCH3|55=ZC|207=CME_C|54=0|38=0|40=F|59=0|167=FUT|21=1|60=20130222-18:51:28.207|204=0|
 +[FIXNEWORDER]
 +[MsgSeqNum] 34 = 153
 +[SenderCompID] 49 = T4Example
 +[TargetCompID] 56 = T4
 +[SenderSubID] 50 = TraderName
 +[SendingTime] 52 = 20130222-18:51:28.207
 +[Account] 1 = Account1
 +[ClOrdID] 11 = fn-634971342882072305
 +[SecurityID] 48 = CME_20130300_ZCH3
 +[Symbol] 55 = ZC
 +[SecurityExchange] 207 = CME_C
 +[Side] 54 = 0 (NONE)
 +[OrderQty] 38 = 0
 +[OrdType] 40 = F (FLATTEN)
 +[TimeInForce] 59 = 0 (DAY)
 +[SecurityType] 167 = FUT (FUTURE)
 +[HandlInst] 21 = 1 (AUTOMATED_EXECUTION_ORDER_PRIVATE_NO_BROKER_INTERVENTION)
 +[TransactTime] 60 = 20130222-18:51:28.207
 +[CustomerOrFirm] 204 = 0 (CUSTOMER)
 +</code>
 +Flatten Order Response - Awaiting Trigger
 +<code>
 +<< 2/22/2013 12:51:28 PM  [fixexecutionreport] 34=536|49=T4|56=T4Example|50=T4FIX|52=20130222-18:51:28.207|143=UK|1=Account1|11=fn-634971342882072305|17=0.634971342895618750.2.1.DF0E0564|150=A|37=DF0E0564-9063-4C02-8F21-071C4DE1C419|39=A|48=CME_20130300_ZCH3|55=ZC|207=CME_C|200=201303|59=0|107=Corn Mar13|54=0|167=FUT|38=0|40=F|58=Flatten Awaiting Trigger|60=20130222-18:51:29.561|21=1|204=0|
 +[FIXEXECUTIONREPORT]
 +[MsgSeqNum] 34 = 536
 +[SenderCompID] 49 = T4
 +[TargetCompID] 56 = T4Example
 +[SenderSubID] 50 = T4FIX
 +[SendingTime] 52 = 20130222-18:51:28.207
 +[TargetLocationID] 143 = UK
 +[Account] 1 = Account1
 +[ClOrdID] 11 = fn-634971342882072305
 +[ExecID] 17 = 0.634971342895618750.2.1.DF0E0564
 +[ExecType] 150 = A (PENDING_NEW)
 +[OrderID] 37 = DF0E0564-9063-4C02-8F21-071C4DE1C419
 +[OrdStatus] 39 = A (PENDING_NEW)
 +[SecurityID] 48 = CME_20130300_ZCH3
 +[Symbol] 55 = ZC
 +[SecurityExchange] 207 = CME_C
 +[MaturityMonthYear] 200 = 201303
 +[TimeInForce] 59 = 0 (DAY)
 +[SecurityDesc] 107 = Corn Mar13
 +[Side] 54 = 0 (NONE)
 +[SecurityType] 167 = FUT (FUTURE)
 +[OrderQty] 38 = 0
 +[OrdType] 40 = F (FLATTEN)
 +[Text] 58 = Flatten Awaiting Trigger
 +[TransactTime] 60 = 20130222-18:51:29.561
 +[HandlInst] 21 = 1 (AUTOMATED_EXECUTION_ORDER_PRIVATE_NO_BROKER_INTERVENTION)
 +[CustomerOrFirm] 204 = 0 (CUSTOMER)
 +</code>
 +Flatten Order Response
 +<code>
 +<< 2/22/2013 12:51:28 PM  [fixexecutionreport] 34=537|49=T4|56=T4Example|50=T4FIX|52=20130222-18:51:28.254|143=UK|1=Account1|11=fn-634971342882072305|17=48085.7016210353_ZCH3.6349713428968100006.1.DF0E0564|150=0|37=DF0E0564-9063-4C02-8F21-071C4DE1C419|39=0|48=CME_20130300_ZCH3|55=ZC|207=CME_C|200=201303|59=0|107=Corn Mar13|54=2|167=FUT|38=1|40=1|60=20130222-18:51:29.681|21=1|204=0|
 +[FIXEXECUTIONREPORT]
 +[MsgSeqNum] 34 = 537
 +[SenderCompID] 49 = T4
 +[TargetCompID] 56 = T4Example
 +[SenderSubID] 50 = T4FIX
 +[SendingTime] 52 = 20130222-18:51:28.254
 +[TargetLocationID] 143 = UK
 +[Account] 1 = Account1
 +[ClOrdID] 11 = fn-634971342882072305
 +[ExecID] 17 = 48085.7016210353_ZCH3.6349713428968100006.1.DF0E0564
 +[ExecType] 150 = 0 (NEW)
 +[OrderID] 37 = DF0E0564-9063-4C02-8F21-071C4DE1C419
 +[OrdStatus] 39 = 0 (NEW)
 +[SecurityID] 48 = CME_20130300_ZCH3
 +[Symbol] 55 = ZC
 +[SecurityExchange] 207 = CME_C
 +[MaturityMonthYear] 200 = 201303
 +[TimeInForce] 59 = 0 (DAY)
 +[SecurityDesc] 107 = Corn Mar13
 +[Side] 54 = 2 (SELL)
 +[SecurityType] 167 = FUT (FUTURE)
 +[OrderQty] 38 = 1
 +[OrdType] 40 = 1 (MARKET)
 +[TransactTime] 60 = 20130222-18:51:29.681
 +[HandlInst] 21 = 1 (AUTOMATED_EXECUTION_ORDER_PRIVATE_NO_BROKER_INTERVENTION)
 +[CustomerOrFirm] 204 = 0 (CUSTOMER)
 +</code>
 +Flatten Order Fill
 +<code>
 +<< 2/22/2013 12:51:28 PM  [fixexecutionreport] 34=538|49=T4|56=T4Example|50=T4FIX|52=20130222-18:51:28.472|143=UK|1=Account1|11=fn-634971342882072305|17=70184:6787286TN0120234.63497134289681000021.2.DF0E0564|150=F|37=DF0E0564-9063-4C02-8F21-071C4DE1C419|39=2|48=CME_20130300_ZCH3|55=ZC|207=CME_C|200=201303|59=0|107=Corn Mar13|54=2|167=FUT|38=1|40=1|31=69475|32=1|14=1|151=0|60=20130222-18:51:29.827|21=1|204=0|337=TRADE|375=CME000A|
 +[FIXEXECUTIONREPORT]
 +[MsgSeqNum] 34 = 538
 +[SenderCompID] 49 = T4
 +[TargetCompID] 56 = T4Example
 +[SenderSubID] 50 = T4FIX
 +[SendingTime] 52 = 20130222-18:51:28.472
 +[TargetLocationID] 143 = UK
 +[Account] 1 = Account1
 +[ClOrdID] 11 = fn-634971342882072305
 +[ExecID] 17 = 70184:6787286TN0120234.63497134289681000021.2.DF0E0564
 +[ExecType] 150 = F
 +[OrderID] 37 = DF0E0564-9063-4C02-8F21-071C4DE1C419
 +[OrdStatus] 39 = 2 (FILLED)
 +[SecurityID] 48 = CME_20130300_ZCH3
 +[Symbol] 55 = ZC
 +[SecurityExchange] 207 = CME_C
 +[MaturityMonthYear] 200 = 201303
 +[TimeInForce] 59 = 0 (DAY)
 +[SecurityDesc] 107 = Corn Mar13
 +[Side] 54 = 2 (SELL)
 +[SecurityType] 167 = FUT (FUTURE)
 +[OrderQty] 38 = 1
 +[OrdType] 40 = 1 (MARKET)
 +[LastPx] 31 = 69475
 +[LastShares] 32 = 1
 +[CumQty] 14 = 1
 +[LeavesQty] 151 = 0
 +[TransactTime] 60 = 20130222-18:51:29.827
 +[HandlInst] 21 = 1 (AUTOMATED_EXECUTION_ORDER_PRIVATE_NO_BROKER_INTERVENTION)
 +[CustomerOrFirm] 204 = 0 (CUSTOMER)
 +[ContraTrader] 337 = TRADE
 +[ContraBroker] 375 = CME000A
 +</code>
 +Further details on the tags used for this order type are described in the dictionary of the New Order Single message.
 +
 +[[developers:legacy_fix_api|T4 FIX API Home]]