API Reference

Create New Order <D>

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=0 or 59=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:

1 - Automated execution order, private, no intervention.

18

ExecInst

string

N

The execution instruction flags for the order. Multiple values should be space delimited. Valid value:

6 - PostOnly (PostOnly only supports limit DAY or GTC order, otherwise orders will be rejected)

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:

2 - Per unit

40

OrdType

int

Y

Order type. Valid values:

1 - Market
2 - Limit

54

Side

int

Y

Side of order. Valid values:

1 - Buy
2 - Sell

55

Symbol

string

Y

Currency-pair.

59

TimeInForce

int

N

Specifies how long the order remains in effect before its expiry . Valid values:
0 - Day
1 - Good Till Cancel (GTC)
3 - Immediate or Cancel (IOC)
4 - Fill or Kill (FOK)
6 - Good Till Date (GTD)

NOTES:

  • Exchange will convert to Day automatically if invalid value detected. For market orders, TimeInForce will be ignored.
  • A Day order will expire after 23:59:59 UTC of the same day it was posted on.

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 <448> PartyIDSource <447> PartyRole <452>

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 <452> with the following values:
1 - Executing Firm
12 - Executing Trader

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 <448> Valid value:

D - Proprietary/Custom code

↺ 452

PartyRole

int

N

Identifies the type of PartyID <448>.
Default values:

1 - Executing Firm
12 - Executing Trader

Standard trailer

Y