New Order Single
To submit a new order, the client needs to send a NewOrderSingle message. All orders are submitted from the client’s perspective to Kraken exchange to place bid/offer on the Kraken Order book. A range of order types, Time-In-Force (TIF) and order flags can be specified by the parameters below.
The supported order types are:
market
: The full order quantity executes immediately at the best available price in the order book.limit
: The full order quantity is placed immediately with a limit price restriction to only trade at this price or better.stop-loss
: A market order is triggered when the reference price reaches the stop price (from an unfavourable direction).stop-loss-limit
: A limit order is triggered when the reference price reaches the stop price (from an unfavourable direction).take-profit
: A market order is triggered when the reference price reaches the stop price (from an favourable direction).take-profit-limit
: A limit order is triggered when the reference price reaches the stop price (from an favourable direction).trailing-stop
: A market order is triggered when the market reverts a specified distance from the peak price.trailing-stop-limit
: A limit order is triggered when the market reverts a specified distance from the peak price.
- FIX Specification
- Spot Example
- Futures Example
MESSAGE BODY
D
Unique identifier of the order. The ID can be one of the following formats:
- Ever-Increasing Positive Numbers : Ever-increasing positive numbers, such as microseconds timestamps, to ensure the uniqueness and sequential nature of the identifiers. (Spot only)
Example : Using the current microsecond timestamp as the ClOrdID, such as1623448294234000
(Max 18 characters) - Timestamp-First v4 UUIDs : A timestamp-first v4 UUID might look like
1b4e28ba-2fa1-11d2-883f-0016d3cca427
, where the initial part (1b4e28ba-2fa1
) of the UUID represents the timestamp. The timestamp granularity to generate the first part need to be 10 microseconds maximum such as162344829423400
.
The execution model of the order.
- Possible values:
1
: market2
: Limit3
: Stop-loss4
: Stop-loss-limitR
: Take-profitT
: Take-profit-limitU
: Trailing-stopV
: Trailing-stop-limit (Spot only)
Limit Price of the order to be placed in the Order Book. This field is denominated in Quote Currency.
Order quantity in terms of the base asset.
Iceberg qty. This will indicate the Qty to show on the book. Only possible on Limit order. The Minimum value is 1 / 15 of order_qty. (Spot only)
Side of the order.
- Possible values:
1
: Buy2
: Sell
Pair in the format BASE/QUOTE.
Time-in-force specifies how long an order remains in effect before being expired.
- Possible values:
1
: GTC (Good till canceled)3
: IOC (Immediate or Cancel)6
: GTD (Good till date) - (Spot only)
If more than one instruction is applicable to an order, this field may contain multiple instructions separated by space.
- Possible values:
E
: Reduce-Only - Reduces an existing margin position without opening an opposite long or short position worth more than the current value of your leveraged assets.P
: Post-Only - Cancels the order if it will take liquidity on arrival. Post only orders will always be posted passively in the book.v
: viqc - Orderqty (tag 38) expressed in quote currency. (Spot Only)n
: nompp - Disables Market Price Protection (MPP). This feature protects market orders from filling at a bad price due to price slippage in an illiquid or volatile market. See MPP support article.f
: Cumulative fee in base currency - base is the default for sell orders. (Spot Only)q
: Cumulative fee in quote currency - quote is the default for buy orders. (Spot Only)s
: Single fee - Mandatory and only supported fee option for derivatives - fee sent on the execution report are based on the trade.
The reference price to track for triggering orders.
- Possible values:
1
:Related to index price5
:Related to last trade price Default value:
5
Self Trade Prevention (STP) is a protection feature to prevent users from inadvertently or deliberately trading against themselves. To prevent a self-match, one of the following STP modes can be used to define which order(s) will be expired. (Spot only)
- Possible values:
0
: Cancel both - both arriving and resting orders will be canceled.1
: Cancel Newest - arriving order will be canceled.2
: Cancel Oldest - resting order will be canceled. Default value:
1
The engine will reject any order entered into the matching engine after this time. This provides extra protection against latency on time sensitive orders. The timestamp should be at least 2 seconds and at most 60 seconds in the future.
8=FIX.4.4|9=140|35=D|34=2|49=MYCOMPID|52=20230707-13:56:08.000|56=KRAKEN-TRD|11=1688738168|38=0.01|40=2|44=1000|54=1|55=BTC/USD|59=1|60=20230707-13:56:08.277|10=222|
8=FIX.4.4|9=181|35=D|34=2|49=damien2_DRV|52=20250303-14:09:32.902|56=KRAKEN-DRV-TRD|11=9e58120f-182b-4dce-9609-8ca7cdd174f0|18=s|38=0.1|40=2|44=1000|54=1|55=PF_ETHUSD|59=1|60=20250303-14:09:32.896|10=148|
Kraken will validate each order it receives by checking that the user sent all the required FIX fields for the order.
- FIX field level validation will result in session level reject.
- Business rule validation failures will result in rejection in the form of an business level reject
- Once the order is accepted and Acked, any further Business rule validations that will result in an execution report with an unsolicited cancel status.