As known as New Order Single in FIX
The New Order Single message is used to submit a new order to the exchange for execution.
Order Types Supported
- Limit Order Day - OrdType = Limit (
40=2), TimeInForce = Day (59=0) - Limit Order (GTC) - OrdType = Limit (
40=2), TimeInForce = Good Till Cancel (GTC) (59=1) - Limit Order (GTD) - OrdType = Limit (
40=2), TimeInForce = Good Till Date (GTD), (59=6), ExpireDate = a specific date (e.g.432=20220927) - Market Order - OrdType = Market (
40=1) - Immediate or Cancel (IOC) - OrdType = Limit (
40=2), TimeInForce = Immediate or Cancel (IOC) (59=3) - Fill or Kill (FOK) - OrdType = Limit (
40=2), TimeInForce = Fill or Kill(FOK) (59=4) - Post-Only Order - OrdType = Limit (
40=2), TimeInForce = "Day" or "Good Till Cancel (GTC)" (59=0or59=1) , ExecInst = PostOnly (18=6)
| Tag | Field Name | Data Type | Req’d | Comments |
|---|---|---|---|---|
| Standard header | Y | MsgType 35=D | ||
| 1 | Account | string | Y | The exchange user uuid. For standard account, this should match the one specified in the Logon <A> message Username <553> field.For advanced account, OSL would assign a different value. Please check with your technical onboarding team for details. |
| 21 | HandlInst | int | N | Instructions for order handling on the exchange. Valid value:
|
| 18 | ExecInst | string | N | The execution instruction flags for the order. Multiple values should be space delimited. Valid value:
|
| 11 | ClOrdID | string | Y | Unique identifier of the order as assigned by client. |
| 38 | OrderQty | float | Y | Quantity to trade. |
| 44 | Price | float | C | Price per unit of quantity (e.g. per 1 BTC coin). Not required for Market (40=1) orders. |
| 423 | PriceType | int | N | Code to represent the price type. Valid value:
|
| 40 | OrdType | int | Y | Order type. Valid values:
|
| 54 | Side | int | Y | Side of order. Valid values:
|
| 55 | Symbol | string | Y | Currency-pair. |
| 59 | TimeInForce | int | N | Specifies how long the order remains in effect before its expiry . Valid values:
|
| 60 | TransactTime | timestamp | Y | Time of execution/order creation in UTC i.e.YYYYMMDD-HH:MM:SS.xxx |
| 126 | ExpireTime | timestamp | N | The time of order expiration (UTC) in YYYYMMDD-HH:MM:SS.xxx format. Required if TimeInForce is GTD (59=6) and ExpireDate<432> is not present in the message. The order will expire on ExpireTime . |
| 432 | ExpireDate | date | C | The date of order expiration (UTC) in YYYYMMDD format. Required if TimeInForce is GTD (59=6) and ExpireTime<126> is not present in the message. When specified, the order will expire after 23:59:59 UTC on ExpireDate . |
| 110 | MinQty | float | N | Minimum quantity of the order to be executed. |
| 111 | MaxFloor | float | N | Maximum quantity within the order to be shown on the exchange at any given time. |
| 453 | NoPartyIDs | int | N | A repeating group (↺) which should contain unique combinations of below tags: PartyID By default, when no PartyID group is specified in the order entry message, OSL will include two groups of PartyID data in the execution report. These groups consist of PartyRole In addition to these default groups, users have the option to include additional PartyID group(s) in the order entry. The value provided in the additional group(s) will be echoed in the Execution Report without any alteration. |
| ↺ 448 | PartyID | string | C | Party identifier/code. It can be an Exchange firm name or user unique identifier that is the same as Tag <1>. e.g. XXXX_GROUP. |
| ↺ 447 | PartyIDSource | string | N | Identifies class or source of PartyID
|
| ↺ 452 | PartyRole | int | N | Identifies the type of PartyID
|
| Standard trailer | Y |
