Trade

Start with this page to learn more about trading via FIX on Finery Markets

Every price or size values should be represented with Finery Markets internal corresponding types.

A description of all the types can be found here.

New Order Single<D>

Sent by the client to submit a new order. Execution Report<8> sent to the client to provide information about the order execution.

Tag
Name
Required
Example
Description

11

ClOrdID

Y

123

Unique identifier of the order as assigned by the client, should be integral number, >0

55

Symbol

Y

BTC-USD

Instrument name

44

Price

N

1

Price, value of type Price

38

OrderQty

N

1

Size of the order(if the order is by size), value of type Size

152

CashOrderQty

N

1

Volume of the order(if the order is by volume), value of type Size

40

OrdType

Y

1

Order Type(see below)

54

Side

Y

1

Side of the order(see below)

59

TimeInForce

Y

1

Specifies how long the order remains in effect(see below)

60

TransactTime

Y

20230530-09:29:52.722

UTC Timestamp of the order creation

Order Type
Description

1

Market (Taker only)

2

Limit

Order Side
Description

1

Buy

2

Sell

Time In Force
Description

1

Good Till Cancel (GTC) - Maker

3

Immediate or Cancel (IOC) - Taker

4

Fill or Kill (FOK) - Taker

P

PostOnly - Maker

Either OrderQty<38> or CashOrderQty<152> field should present.

Execution Report<8>

Sent by the server whenever an order receives a fill, whenever the status of an order changes, or in response to a NewOrderSingle<D>, OrderCancelRequest<F> and OrderCancel/Replace Request<G> message from the client.

Tag
Name
Required
Example
Description

37

OrderID

Y

1

Unique order Id, generated by the server

11

ClOrdID

Y

2

Unique identifier of the order as assigned by the client. ClOrdID<11> of the canceled order if OrdStatus<39> == 4 (canceled), ClOrdID<11> from the NewOrderSingle<D> or OrderCancel/ReplaceRequest<G> otherwise

151

LeavesQty

Y

1

Quantity open for further execution, value of type Size

17

ExecID

N

123

Deal id in case of ExecType<150> == TRADE. Same as OrderID<37> otherwise.

55

Symbol

N

BTC-USD

Instrument name

54

Side

N

1

“1” - Buy, “2” - Sell

38

OrderQty

N

1

Order quantity, value of type Size. If ExecType<150> == 5, quantity of the new order

44

Price

N

10

Order Price, value of type Price. If ExecType<150> == 5, price of the new order

31

LastPx

N

1000

Current fill price. Only present if this message was the result of a fill, value of type Price

32

LastQty

N

2

Current fill quantity. Only present if this message was the result of a fill, value of type Size

39

OrdStatus

Y

2

Identifies current status of order(see below)

150

ExecType

Y

2

Describes the specific Execution Report(see below)

58

Text

N

79

In case the order was declined by the Finery Markets, this field contains Finery Markets error code

136

NoMiscFees

N

1

If present should always be 1 Following group describes markup applied to the deal

137

=> MiscFeeAmt

N

10

Required if NoMiscFees<136> is present. Markup size.

139

=> MiscFeeType

N

8

Required if NoMiscFees<136> is present. Should always be 8 for Markup.

958

CounterpartyID

N

1234

FineryMarkets id of the counterparty

41

OrigClOrdID

N

42

ClOrdID<11> of the replaced order, if ExecType<150> = 5(Replaced).

Order Status
Description

0

New

1

Partially filled

2

Filled

4

Canceled

5

Replaced

8

Rejected

Exec Type
Description

0

New

F

Trade

4

Canceled

5

Replaced

8

Rejected

ExecType<150> indicates the reason why the Execution Report<8> message was sent. And Order Status indicates the current state of the order.

For every order Execution Report<8> with ExecType<150> == 0 should be generated.

When no further execution is possible Execution Report<8> with either ExecType<150> == F and OrderStatus<39> == 2 or ExecType<150> == 4 and OrderStatus<39> == 4 should be generated.

Order Cancel Request<F>

The Order Cancel Request<F> message requests the cancellation of all of the remaining quantity of an existing order. Note that the Order Cancel/Replace Request<G> should be used to partially cancel (reduce) an order).

Tag
Name
Required
Example
Description

37

OrderID

N

1

Unique order Id, generated by the server, of the order to cancel

11

ClOrdID

Y

2

Unique identifier of the request as assigned by the client

41

OrigClOrdID

N

3

ClOrdID <11> of the order to cancel

54

Side

Y

1

Side of the order(see above)

60

TransactTime

Y

20230530-09:29:52.722

UTC Timestamp of the order creation

Either OrderID<37> or OrigClOrdID<41> should be present.

Order Cancel Reject<9>

The Order Cancel Reject <9> message is issued by the server upon receipt of a Order Cancel Request<F> or Order Cancel/Replace Request<G> message which cannot be honored.

Tag
Name
Required
Example
Description

37

OrderID

N

1

Unique order Id, generated by the server, copied from request message

11

ClOrdID

Y

2

Request Id assigned by the client, copied from request message

41

OrigClOrdID

N

3

ClOrdID <11> of the previous non-rejected order, copied from request message

434

CxlRejResponseTo

Y

1

Identifies the type of request that a Cancel Reject <9> is in response to(see below)

102

CxlRejReason

N

99

Reject Reason Code. If CxlRejReason == 99, Text<58> field contains FineryMarkets error code.

58

Text

N

Invalid OrderID.

Human-readable reject reason

39

OrdStatus

Y

0

Reserved for future use. Always 0.

CxlRejResponseTo
Description

1

Order Cancel Request<F> was rejected

2

Order Cancel/Replace Request<G> was rejected

Order Cancel/Replace Request<G>

The Order Cancel/Replace Request<G> (a.k.a. Order Modification Request) is used to change the parameters of an existing order. Do not use this message to cancel the remaining quantity of an outstanding order, use the Order Cancel Request<F> message for this purpose.

It is possible, that the "Cancel" part succeeds and "Replace" part fails. In this case ExecutionReport<8> with OrdStatus<39> == 4 (Canceled) issued for the canceled order as well as the OrderCancelReject<9> referencing the OrderCancel/ReplaceRequest<G> with the "Replace" failure reason.

Tag
Name
Required
Example
Description

37

OrderID

Y

1

Unique order Id, generated by the server, of the order to cancel/replace

11

ClOrdID

Y

2

Request Id assigned by the client

41

OrigClOrdID

Y

1

Request Id assigned by the client for the original order

44

Price

Y

3

Price, value of type Price

38

OrderQty

Y

4

Initial size of replace result will be OrderQty - (old order initial size - old order remaining size)

40

OrdType

Y

1

Order Type (see above) should be the same as in the original order

54

Side

Y

1

Side of the order(see above) should be the same as in the original order

60

TransactTime

Y

20230530-09:29:52.722

UTC Timestamp of the order creation

Last updated