Order Types
VALR offers a few ways to execute trades on our exchange. Options include:
- Simple Buy/Sell
- Market
- Limit
- Stop-Loss and Take-Profit
Simple Buy/Sell
The easiest way to swap one asset for another on VALR.
Simple buy/sell let's you swap a specific amount of one asset for another at the best price we can source from either the VALR exchange or our liquidity partners.
Simple orders have protections in place which limit a trader's ability to accept a quote that is significantly different from the current market price. If an order can only be filled at a price that is >2% away from the market price because of its size or lack of liquidity, a confirmation screen will be presented that lets you either cancel the order or accept slippage.
For example, swap 2,000 ZAR for BTC, receive a quote to receive 0.0028 BTC and confirm the swap.
This order type is available across all trading pairs.
Market
A market order executes immediately. All you have to do is enter how much you want to spend to either buy or sell an asset on VALR. This order is immediately placed on the exchange and filled at the best available price on the orderbook as a taker order.
For example, set a market order to spend R20,000 to buy BTC. A market order will spend R20,000 and give you as much BTC as possible at the best available price. The entire order will be filled, starting from the best offer to sell BTC. Market orders can fill at a range of prices through the orderbook.
This order type is available for all crypto to fiat pairs.
Limit
A limit order lets you define both the amount and price at which you wish to buy or sell an asset.
You will need to input two of three fields including (1) price, (2) amount in crypto and (3) total fiat amount of an order. Using a limit order means your order will only be completely filled when it either crosses the orderbook for the full amount to be traded or when an opposite order matches against it.
For example, set a limit order to sell 1 BTC at a price of R600,000 per BTC. That limit order will be sent to the exchange and will be executed either because:
- It crossed the orderbook and matched a bid (buy order) to buy BTC at or above R600,000 per BTC or;
- Another trade later decides to place an order that is willing to buy BTC at or above R600,000 per BTC.
This order type is available for all crypto to fiat pairs.
Stop-Loss and Take-Profit
The stop-limit order type on VALR is used to create either stop-loss or take-profit orders. Whether the stop-limit order type triggers a stop-loss or take-profit depends on where the stop price is set relative to the last traded price:
- Stop-limit sell order, stop price is below last traded price: stop-loss order
- Stop-limit sell order, stop price is above last traded price: take-profit order
- Stop-limit buy order, stop price is below last traded price: take-profit order
- Stop-limit buy order, stop price is above last traded price: stop-loss order
Stop-limit orders are sent as limit orders on VALR, not as market orders.
Stop-Loss
A stop-loss order is used to limit the downside of holding a particular asset.
If the order is a buy, it is intended to limit downside from holding ZAR and an order will be sent to buy crypto when the last traded price exceeds the stop price.
If the order is a sell, it is intended to limit the downside from holding crypto and an order will be sent to sell crypto when the last traded price drops below the stop price.
As an example, set a stop-limit sell order to limit downside of a 1 BTC holding. The current market price is R500,000 and you wish to limit getting anything less than R450,000 if the price of bitcoin drops below R470,000. This trade can be set up using the following inputs:
- Select stop-limit order type on BTCZAR orderbook
- Set order to sell
- Stop Price: R470,000
- Limit Price: R450,000
- Amount: 1 BTC
Take-Profit
A take-profit order is used to lock in the growth of holding a particular asset.
If the order is a buy, it is intended to lock in the growth of holding ZAR and an order will be sent to buy crypto when the last traded price drops below the stop price.
If the order is a sell, it is intended to lock in the growth of holding crypto and an order will be sent to sell crypto when the last traded price exceeds the stop price.
As an example, set a stop-limit sell order to capitalise on an increase in the price of Bitcoin for a 0.5 BTC holding. The current market price is R600,000 and you wish to place an order to sell bitcoin at a price of R620,000 if the price increases to R625,000. This trade can be set up using the following inputs:
- Select stop-limit order type on BTCZAR orderbook
- Set order to sell
- Stop Price: R625,000
- Limit Price: R620,000
- Amount: 0.5 BTC
This order type is available for all crypto to fiat pairs.
Time in Force
The amount of time that an order will remain active can be edited for Limit and Stop-Limit order types.
- Good till Cancelled (default)
- Fill or Kill
- Immediate or Cancel (IOC)
Good till Cancelled
The default way to trade, which means that the order remains active until it is either filled or cancelled by you.
Fill or Kill
A fill or kill order is the opposite of a post only order. This order type will only be sent to the exchange if the full amount would cross the orderbook and be filled as a taker. Fill or kill implies that the whole order must be filled, if the order would only be partially filled the whole order will be cancelled.
For example, set a fill or kill limit order to buy 5 ETH at a price of R20,000 per ETH.
Placing a fill or kill buy order will be cancelled entirely if:
- The best offer to sell is at a price greater than 20,000 OR
- There is less than 5 ETH available on the orderbook at a price of at most R20,000.
Otherwise, that order will be filled in its entirety and the trader will receive 5 ETH minus fees.
This order type is available for all crypto to fiat pairs.
Immediate or Cancel (IOC)
An IOC order will only be sent to the exchange if at least some part of the order would cross the orderbook and be filled right away as a taker. IOC implies that a part of the order can be filled and also that any unfilled portion of the order will immediately be cancelled.
For example, refer to a theoretical VALR orderbook below:
Set an IOC limit order to sell 5 ETH at a price of R19,490 per ETH. This order will sell into the existing bids (buy orders) at any price greater than or equal to 19,490. The remainder of the order will be cancelled. In this example, 1 ETH will be traded and 4 ETH will be cancelled.
This order type is available for all crypto to fiat pairs.
Order Restrictions
The following limitations can be placed on orders:
- Reduce Only
- Post-Only
- Post-Only Reprice
Reduce Only (futures only)
selecting reduce only will ensure that any order placed can only reduce an existing position. Any orders that would increase a position will fail if they are reduce only.
When multiple reduce only orders are placed, priority is given to the orders closest to market price (more likely to be matched). Additional reduce only orders will have their quantities reduced or will be cancelled.
Post-Only
A post-only order is a limit order that is designed to avoid crossing the orderbook and as a consequence paying taker fees. A post-only will only be sent to the VALR exchange if it would not execute against an existing order immediately. If a post-only order would match immediately, it is cancelled.
For example, refer to a theoretical VALR orderbook below:
Setting a buy order at or below R600,000 using post-only mode will send that order to the exchange. Setting a buy order above that price will be cancelled.
Similarly, setting a sell order at or above R600,001 using post-only mode will send that order to the exchange, while setting a sell order below that price will be cancelled.
This order type is available for all exchange pairs.
Post-Only Reprice
Post-only reprice works similarly to post-only except for the fact that in scenarios where the order is placed at a price that would match, the order is instead repriced to a certain distance away from the other side of the book, as measured by tick size. The default is that the order is placed 1 tick away from the other side of the book if the order would otherwise match, however, the number of ticks away from the other side of the book can be configured via the VALR API.