Multileg Order Cancel Replace
Order Modification: Use the MultilegOrderCancelReplaceRequest message (a.k.a MultilegOrder Modification Request) (MsgType=AC) to modify Repo Orders.
Message format:
| Field Name | Format | Req'd | Comments | |
|---|---|---|---|---|
| MsgType | String | ✓ | AC = MultilegOrderCancelReplace | |
| MsgSeqNum | SeqNum | ✓ | User generated incremental number to allow receiver to identify possible message gaps | |
| SendingTime | UTCTimestamp | ✓ | Time of sending this message | |
| OrderID | String | ✓ | Identifyer as provided by XCDE in most recent ExecReport | |
| OrigClOrdID | String | User generated last ClOrdID representing this Order | ||
| ClOrdID | String | User generated Unique identifier of this replacement order | ||
| ClOrdLinkID | String | In case of grouping of Orders e.g. with OCAO | ||
| Account | String | XCDE defined account (not in use) | ||
| ExecInst | Char | G = All-or-None. Only supported value | ||
| MinQty | Qty | Useful to avoid tiny partial fills, Instead of All or None | ||
| MatchIncrement | Qty | In combination to MinQty to avoid uneconomicaly small executions | ||
| Side | Char | ✓ | Identifies Near_Leg direction for Base currency. F = Lend (a.k.a repo Bid price) G = Borrow (a.k.a. Repo Offer price) | |
| <Instrument> Component block | ✓ | |||
| > | Symbol | String | ✓ | Recommended to disambiguate Order |
| TransactTime | UTCTimestamp | ✓ | Time this request was initiated | |
| <OrderQtyData> Component block | ✓ | required, if ClOrdLinkID is not filled disabled, if ClOrdLinkID is filled | ||
| > | OrderQty | Qty | ✓ | E.g. 125 effectively required… |
| OrdType | Char | 2 = Limit, only supported value | ||
| Price | Price | ✓ | 1.76 effectively required | |
| TimeInForce | Char | Supported values: 0 =Day (or session) 1 =Good Till Cancel (GTC) 3 =Immediate Or Cancel (IOC) 4 =Fill Or Kill (FOK) 6 =Good Till Date (GTD) | ||
| ExpireDate | LocalMktDate | Conditionally required if TimeInForce = GTD and ExpireTime is not specified. | ||
| ExpireTime | UTCTimestamp | Conditionally required if TimeInForce = GTD and ExpireDate is not specified. | ||
| Text | String | Unessential freeform field to post information | ||
| SettlCurrency | String | ✓ | ||
Example message:
1MsgType: AC
2MsgSeqNum: 82367465
3SendingTime: 20220906-22:29:43.729
4OrderID: hdga5542-062j
5OrigClOrdID: gsa62812043-873
6ClOrdID: gsa62812043-878
7Account: 42119
8MinQty: 100
9Side: F
10Instrument
11 Symbol: BTC/USDT-1w-R
12TransactTime: 20220906-22:29:43.122
13OrderQtyData
14 OrderQty: 500
15OrdType: 2
16Price: 6.42
17TimeInForce: 3
18Text 1{
2 "Header": {
3 "MsgType": "AC",
4 "MsgSeqNum": "82367465",
5 "SenderCompID": "SENDER",
6 "TargetCompID": "TARGET",
7 "SendingTime": "20220906-22:29:43.729"
8 },
9 "OrderID": "hdga5542-062j",
10 "OrigClOrderID": "gsa62812043-873",
11 "ClOrdID": "gsa62812043-878",
12 "MinQty": "100",
13 "Side": "F",
14 "Instrument": {
15 "Symbol": "BTC/USDT-1w-R"
16 },
17 "TransactTime": "20220906-22:29:43.122",
18 "OrderQtyData": {
19 "OrderQty": "500"
20 },
21 "OrdType": "2",
22 "Price": "6.42",
23 "TimeInForce": "3",
24 "Text": ""
25}