Basic order types

Published on 16 Jun 2022Updated on 27 Nov 202411 min read

Limit order

A limit order is an order that buys or sells a custom amount at a specific price or better. After the order is placed, the system will post it on the order book and match it with the available orders - at the specified price or a price better than that.

Scenario 1: Assuming the current BTC market price is 42,000 USDT and you want to buy at 40,000 USDT. You can select Limit and set the buy price as 40,000 USDT. After the order is placed, the order will be filled automatically when the price drops to 40,000 USDT or below.

basic-order-type-1


Advanced limit order

While a regular limit order is Good till Canceled by default, an advanced limit order offers 3 order options — Post Only, Fill or Kill, and Immediate or Cancel.

Post Only

  • Post Only orders are guaranteed to enter the order book with the user being a market maker. If a Post Only order is able to match with an existing order instantly, it will be canceled.

Fill or Kill

  • A Fill or Kill order must be filled fully and immediately, otherwise the entire order will be canceled.

Immediate or Cancel

  • Immediate or Cancel orders must be filled immediately. Any unfilled portion of the order will be canceled

basic-order-type-2



For example, if a user wants to buy BTC and the order book is shown as below:

basic-order-type-3



Scenario 1

You would like to incur maker fees only and have selected Post Only. If you set the buy price as 30,000 USDT and there's no immediate matching sell order, your order won't be filled right away and will be placed on the order book, making you a market maker. If your buy price is 30,740 USDT and matches with a sell order instantly, your order will be canceled.


Scenario 2

You selected the Fill or Kill. If your buy price is 30,741 USDT and the order amount is 1 BTC, yet the total amount of available BTC on the order book is 0.882 BTC (0.855+0.026+0.001), your order will be canceled because it cannot be filled completely (1 - 0.882 = 0.118 BTC). In this example, if your order amount is 0.882 BTC or less, the order will be placed and filled.


Scenario 3

You selected the Immediate or Cancel. If your buy price is 30,741 USDT and the order amount is 1 BTC, and the total amount of available BTC on the order book is 0.882 BTC (0.855+0.026+0.001), part of your order will be filled and the rest will be canceled. 0.882 BTC will be filled while the remaining 0.118 BTC will be canceled.

Market order

A market order lets you instantly buy or sell at the best available market price. Each business line has their respective restrictions on the max order value of a single order as well as the max size of a single market order.

Scenario 1

You want to buy BTC at the current market price and you want your order filled immediately. You can place a market order and set its total amount as 20,000 USDT. Assuming BTC's current market price is 40,500 USDT, your order will be filled at around 40,500 USDT immediately after it's placed.

basic-order-type-4



Scenario 2

You want to your entire position at the market price as soon as possible. Our Market Close All feature helps you to achieve that.

basic-order-type-5

Price limit for expiry and perpetual futures

Background:
There is a maximum price for buy orders and a minimum price for sell orders. For market order, it will follow the same price limit rules as limit order, thus it is possible that the market order may not be filled when there is insufficient liquidity in the orderbook and will remain open.

Retrying with a new price limit
The system will try to update the price limit for any unfilled and open market order that users place directly or triggered by any strategy. The price will be updated every second until it is filled, up to 10 minutes.

Size limit for expiry and perpetual futures

Background:
There is a maximum number of contracts that can be placed in a market order. It is possible that users with large positions will not be able to close out their positions in one go. They would have to split up their close order into smaller orders to close.

Splitting of a large order
When users place market close all orders, if the position size is larger than the maximum number of contracts permissible per order, the system will help users break up the orders into smaller amounts. Orders will be placed one by one with each subsequent order only being placed once the previous order has been fully filled. The order size will be the smaller amount between the remaining position size and the max number of contracts for a market order. It minimises the hassle for users with large positions as they will not need to manually split up their orders into smaller amounts.

Reduce-only order

What is a reduce-only order?

A reduce-only order aims to only reduces your current position, as opposed to increasing it. This means you can only use it to close a position. In contrast, non reduce-only orders can reduce or increase your position.

In one-way mode, you can choose whether to place a reduce-only order to reduce your position. In hedge mode, all close orders are reduce-only by default, and all opening orders are non reduce-only.

You can have a maximum of 150 reduce-only open orders under a single position. Subsequent orders will fail to be placed upon exceeding the limit.

The details are as follows:
If you place a reduce-only order, and the order is used to open position or increase your position, the order will fail. The error message is illustrated below:

basic-order-type-6


When you place an order, if the conditions for having open reduce-only orders are not met, the system will automatically modify the amount of your open reduce-only orders or cancel your open reduce-only orders. This ensures that after your open orders are modified or canceled, a position in the opposite direction will not be created. You can check your order history to find out the reason for order cancellation.

basic-order-type-7


Whether the system automatically modifies or cancels your reduce-only order is determined by your position size, as well as by the priority in which your orders will be filled. Orders with a lower priority (worse price) are canceled to ensure those with a higher priority (better price) can be placed successfully.

How is the priority of my reduce-only orders determined?

The higher the price of your buy order, the higher the priority. The lower the price of your sell order, the higher the priority. If orders have the same price, those placed earlier will have higher priority.

Example (BTC-USDT Perpetual, hedge mode):

Scenario

Position

Open Orders

Current order

Result

No position, place an order to close long

None

None

100 contracts to close long

Order failed

Open position, place a an order to close long, amount exceeds open position

100 contracts, long

None

200 contracts to close long

Order placed. The order amount is modified to 100 contracts

Open position, place another order to close long at a better price

100 contracts, long

Order 1: 80 contracts to close long at 17,000
Order 2: 20 contracts to close long at 18,000

50 contracts to close long at 16,000

Order placed. Order 1's amount will be modified to 50 contracts, while order 2 will be canceled. Total amount of open orders to close long adds up to 100 contracts.

Open position, place another order to close long at a worse price

100 contracts, long

Order 1: 80 contracts to close long at 17,000
Order 2: 20 contracts to close long at 18,000

50 contracts to close long at 19,000

Order failed. (The current order is sorted to the back and the total amount of order 1 and 2 with better prices is equal to position size)


Example (BTC-USDT Perpetual, one-way mode):

Scenario

Position

Open Orders

Current Order

Result

No position, place reduce-only order

None

None

Reduce-only order to buy 100 contracts

Order failed

Open position, place a reduce-only order in the same direction as the position

100 contracts, buy

None

Reduce-only order to buy 100 contracts

Order failed

Open position, place a reduce-only order with an order amount exceeding position size.

100 contracts, buy

None

Reduce-only order to sell 200 contracts

Order placed. The order amount is modified to 100 contracts

Open position with existing open reduce-only orders. Place another reduce-only order and the total amount of all orders exceed the position size.

100 contracts, buy

Order 1: Reduce-only order to sell 80 contracts at 17,000
Order 2: Reduce-only order to sell 20 contracts at 18,000

Reduce-only order to sell 50 contracts at 16,000

Order placed. Order 1's amount will be modified to 50 contracts, while order 2 will be canceled.

Open position with existing open reduce-only and non-reduce-only orders. Place another reduce-only order and the total amount of all orders exceed the position size.

100 contracts, buy

Sequence 1:17,000 (price), 80 contracts, sell, reduce-only Sequence 2:18,000 (price), 20 contracts, non-reduce-only

Reduce-only order to sell 50 contracts at 16,000

Order placed. Order 1's amount will be modified to 50 contracts and order 2 will remain. (Non-reduce-only orders can result in a position opening in the opposite direction)

How to place a reduce-only order in one-way mode

Reduce-only orders can only be manually selected in one-way mode. If you do not select the reduce-only option, your order will be a non-reduce-only order.
There can be both reduce-only orders and non-reduce-only orders in your account at the same time.

Placing an order on the order page


On the order page (limit order, market order, advanced limit order, TP/SL and trailing TP/SL order), you can choose "Reduce-only" to place an order.

basic-order-type-8

Submit a TP/SL order along with an open order

When submitting a TP/SL order along with an open order,the TP/SL order is a reduce-only order by default.

basic-order-type-9


Placing an order on the position page

basic-order-type-10

On the position page, TP/SL, Close, and Close all, are all reduce-only orders by default.