Advanced Order Types and Functions

Our goal is to provide a fundamental understanding of the order types and functions that you might come across on different exchanges.

Advanced Order Forms Featured


Once upon a time, not too long ago, having the ability to use advanced orders on crypto and bitcoin exchanges was considered to be innovative and very sought after features.

Fortunately for us, the cryptocurrency exchanges have evolved quite a bit since then, and what was considered to be innovative a few years ago is now what most users expect to find.

A lot of exchanges, particularly the major ones, have more or less adapted the same options when it comes to advanced orders. Because of this, I figured the best thing would be to write a general guide on what the different types of settings mean and how they work. This means the information here will apply to all major exchanges, with perhaps one or two that parameters that are exchange specific.

Our goal here is to provide a fundamental understanding of the order types and functions that you might come across on different exchanges. If there is more information you would like to see here, feel free to let us know.

Order Types

Market Order

A market order is an order type that gets immediately executed at the current price in the market. This is an order that is used when you have a particular urgency to execute, or you want to have guaranteed fills at the current market price. 

When using market orders, you will be subjected to what’s called “taker fees.” The reasoning for this is that you are “taking” liquidity from the market by removing orders from the order book. 

PRO: Guaranteed Fills
CON: Taker Fees and Slippage

A limit order is an order placed with a specific minimum or maximal value the trader is willing to buy or sell. This means the trade can only be executed if the market price reaches your set limit price. 

Limit Order

A limit order is an order placed with a specific minimum or maximal value the trader is willing to buy or sell. This means the trade can only be executed if the market price reaches your set limit price. 

Unlike market orders, you will not be guaranteed that the market reaches your price, thus you are not guaranteed to your orders filled at your desired limit price. 

When using limit orders, you will on most exchanges, receive a small payment known as “maker rebate or maker fee.” The reasoning behind this is because you are rewarded for “making” liquidity and creating thicker order books for other users that are not using limit orders. 

Note: Despite it being the norm, Binance and FTX do not give regular traders a rebate when using limit orders. Binance has a set fee regardless of whether you are a maker or taker and FTX only allows users who get access into their special programs a rebate. 

PRO: Maker Fee Rebate and No Slippage
CON: Not Guaranteed Fills

Conditional Order

Conditional orders might be presented visually in different ways. Some exchanges such as ByBit will have an own tab that says “conditional” and others will display the order types you need to create a functionality order.

ByBit Conditional Order
ByBit Conditional Order

These orders can either become market orders or limit orders. This is all depending on the conditions you set to trigger the orders.

See the the gallery at the top of the post if you want to review the differences between ByBit, FTX, Binance, and BitMEX.

On the majority of exchanges, we will have to use a combination of stop-limit orders and stop-market orders to create our conditional orders.

Post Only Orders

If you want to ensure that any limit orders don’t get executed as market orders, you can activate “Post Only Orders.” This will ensure that any limit order placed in the market doesn’t get filled with any existing orders, if it does, it will be automatically cancelled. 

The purpose of this is usually to ensure that you reap the benefits of limit orders, such as rebate fees when trading and no slippage. 

This is only possible to use with limit orders.

Reduce Only Orders

This is a way to ensure that all orders will only reduce your position, no matter if you are long or short. 

It can be useful in some scenarios, let me illustrate. Imagine you are long 100 contracts with a take profit at $10 000 and a sell at $9 500 as a stop loss. What can happen is, you reach your $10 000 target and price goes down to $9 500 and now you have opened a $100 short position since your 100 long contracts were closed at $10 000. If you were to activate reduce only this would not be possible. 

Thankfully most trading platforms are developed so that your stop losses and take profits are connected to the same position, meaning if one gets triggered and filled, the position closes completely. 

If your stop-loss solution requires you to have TWO different orders, one for your current or desired position and one stop-loss, then yes, reduce only would be very wise to use. 

One Cancels the Other Order (OCO)

OCO order Binance
OCO Order on Binance

This is a type of conditional order that is a combination of a regular limit order and stop-limit order. It allows you to place to limit orders at the same time. It will execute the order that it decides can get partially or entirely filled first, the other one will get cancelled. 

OCO orders are not standard amongst the major crypto exchanges, but you will be able to find them at Binance. 


Stop Loss Long
Stop-Loss Long Position

Stop-losses are used to minimize the risk and drawdown of any given trade. It allows us to set predefined risk levels, which will automatically stop the trader out of his trade if they are reached. Stop-losses are an essential tool to avoid taking more than necessary losses in a losing trade. Take-profit will look similar to the illustration above, if you were to flip it upside down. In essence, take-profit is the opposite of a stop-loss.

Stop-Limit Order

This is a type of conditional limit order that does not execute until the market price reaches the set trigger price. Stop-Limit orders are primarily used as a risk management tool and as a tool be able to enter markets automatically at their desired price.  

Once your stop price has been reached, it will trigger to place your limit orders in the market. Hence the name, Stop(price)-Limit(order). To ensure that your limit orders get to execute as limit orders it is wise to place limit orders a few dollars below the stop price. 

Let’s say you placed you stop price at $10 000, and your limit order at $10 000 as well. Once other orders reached $10 000, your stop price would execute your limit orders. However, chances are there are already orders at $10 000, meaning that your limit orders would automatically turn into market orders. We naturally can’t place buy limits and sell limits on top of each other, the one that is placed last will force a trade and thus become a market order. 

This is why I recommend placing a few dollars below to ensure that you get to execute your orders as limit orders and save fees. If this is not the intention one would be more suited to use stop-market orders. 

On Binance there is no longer an option for Stop-Market unfortunately. This means the trader will have to use Stop-Limit instead to achieve a similar execution. This can be done in two ways, if the limit price is either set to precisely the trigger price or if you need a guaranteed fill, the limit price can be placed slightly over the trigger price. This will cause the stop-limit to act as a stop-market.

Stop-Market Order

The stop-market orders are very similar to the stop-limit order. The main difference is when the market price reaches the stop price, your orders will immediately be executed as market orders. 

If your stop price is at $10 000 and the market price touches this price, the stop-market order will then execute your market buys the very instance market price becomes $10 000. 

If you trade with a significant position size, it can sometimes be inconvenient using this order type. Imagine this, price dumps into your market buys at $10 000 in this example, but starts recoiling back up immediately due to the weak sell pressure. Your market orders get executed, but since the price is recoiling up your buy price suddenly becomes higher than you would like.

Stop-Market orders are very common to use as a stop loss. Meaning, after price moves against the trader’s direction, it will eventually trigger the stop price where the trader has set to either buy if the trader is short or sell if the trader is long.

This will close out the whole trade, the trader is guaranteed a fill which means no matter what the trade will be closed to ensure the trader can’t lose more than his set risk for the trade.

Take Profit Order

A Take Profit order has some similarities to a Stop Order. A Stop will execute when the price moves against the traders position, while a Take Profit order does the opposite. It executes when the price moves in a favorable direction to the traders position. 

It means this order type is used to secure profits and close out trades. For example, if you bought long contracts at $10 000 and you are expecting a bullish movement to what you identify as the next level of resistance at $10 300. You can then set a take profit of around $10 300 to guarantee that your trade closes if the price is reached and you secure your unrealized profits. 

A lot of traders use layered take profit orders or multiple take profit levels to ensure that they progressively secure their profits as price moves in their desired direction. 

There are two types of Take Profit Orders:

Take Profit Limit Order

ByBit and Binance do not have dedicated tabs for “take profit.” All stop-loss and take-profit orders are done through the “Conditional” and the “Stop-limit” windows.

Once the market price has reached your desired trigger price, you will automatically place out a limit to secure your unrealized gains. 

Take Profit Market Order

We are using stop-limits below trigger price on Binance to trigger an execution thus it effectively works as a market order.

Once the market price has reached your desired trigger price, you will automatically execute market orders to close out your trade. 

The benefit of utilizing the take-profit orders is that the trader does not have to close the position at the desired time manually. This reduces the chance of missing the opportunity to close the trades at the perceived optimal opportunity. 

Trailing Stop / Trailing Take Profit

On Binance you will have to trade futures in order to be able to use the “Trailing Stop” feature.

Another method to stop-loss our trades or to take profit is to use a trailing mechanism that has become available on most large exchanges in recent times. 

It is a useful tool to limit losses and protect gains when the price moves in a direction that is not favorable for the trader. 

Trailing Stop
Trailing Stop

I will illustrate the process of a Trailing Stop and note that the same mechanics are behind Trailing Take Profit. 

If you were in a position and the price was $10 000, let’s say you wanted to cut your losses if the price were to go down $200, but at the same time if the price were to go higher, you would like to maximize profits.  

You could place a trailing stop at $9 800, meaning if the price went down $200, you would get stopped out of your position. However, if the price goes up to $10 400, your trailing stop would be moved to $10 200, effectively functioning as a take profit order and securing profits if the price were to reach $10 200 again. 

As illustrated, the trailing order mechanism can be a robust method to reduce risk and secure profits. 

Some exchanges will ask you to place a trailing order in dollar value from the current price, others will ask you a percentage from the current price (callback rate); both will work the same way. 

Price When Placing Orders

ByBit Trigger Price
ByBit Example

Exchanges will allow you to choose between multiple price groups such as last traded price, index price or market price when selecting your trigger price for your conditional orders. How many alternatives there are and how each price index is setup depends on the exchange.

If the last traded price is not based on a balanced index consisting of multiple exchanges, I would advise not using it. Why? The less volume the price index has and the fewer exchanges it is based on, the easier it is to manipulate and the more fragile it will be when or if exchanges go down. 

Fortunately, over the years, most of the unbalanced indexes have shown their flaws and thus numerous exchanges have taken precautions to secure that their exchange prices will be challenging to manipulate.

We can see that with ByBit, FTX, BitMEX and Binance to name some of the big ones. EXamples here: 

Keep in mind that there is a tiny variation in terms of USD value between the different prices, the least weighed alternative will usually be slightly more volatile than the heavier weighted indexes. This will often mean that for traders trading on a very low time frame, the least weighted option would usually be preferable to remove perceived lag from price action. 

Order Status

Even though not all exchanges show you these statuses, these terms are universally used so if you have problems and need to describe the stage of your order, these would be the precise terms to use.

You can describe your orders with three different statuses: 


This means the market price has not reached the trigger price of your stop order, and it remains to be executed.


The market price has reached the trigger price of your stop order and has been executed, but has not been filled. This is only possible with stop-limit and limit orders as all market orders always get filled, naturally. 


The market price has reached the trigger price of your stop order and has been executed, and the order has also been filled. 

Fill Types 

Fill types ByBit
Fill Types on ByBit

On some exchanges such as ByBit and BitMEX, you will be able to choose between three different fill types, often referred to as “time in force.” 

Good-till-Cancelled (GTC)

The orders will remain active until you decide to close them manually. 

Immediate-or-Cancel (IOC)

Any remaining orders that were not able to get filled at the current best price will be cancelled. 

Fill or Kill (FOK)

Unlike Immediate-or-Cancel orders, Fill or Kill orders require the entire order to get filled, otherwise the order will be cancelled. For example, if you can get 85% of your orders filled at the current price, it will cancel the order as it requires always to be able to fill 100%. 

Other Advanced Order Functions

The average crypto trader does not frequently use these order functions except for Post-Only. However, I can assure you for large position traders these order types are common and well known. Nonetheless, it could be wise to understand what functions are possible to get a more holistic understanding of what is going on when trading on exchanges. 

These functions can be combined with the discussed order types above. Note: A lot of exchanges don’t provide these orders directly to the user, but it is still possible to use them through API with your coding or third party applications. 

Hidden Orders

BitMEX Hidden order
BitMEX Example

A hidden order is a limit order that does not appear in the order book for others. 

You can use this option if you don’t want others to shift sentiment, potentially influencing your fills. For example, if I were to put in large buy orders, others might see this as a bullish signal and stack orders up on top of mine, thus leaving me unfilled in the desired period. 

Iceberg Orders

Honest Crypto Iceberg Orders
Iceberg Orders – Click to Enlarge

Iceberg orders are a type of hidden orders, where only a part of the order is displayed in the order book for people to see while the rest remain hidden. Iceberg orders are much like completely hidden orders used to minimize the impact on the price while being slightly hider to identify. 

Isolated vs Cross Margin

Due to the substantial increase in risk when using cross-margin, it is not recommended to any novice or inexperienced traders. You must understand that you will risk your whole account balance when using cross-margin and not just your position. 

Isolated Margin 

This is completely isolated from the balance, this means the trader is only risking to lose the specific collateral attached to the position using isolated margin and not the whole account. 

In other words, it severely limits the downside the trader can experience, unlike cross-margin. 


This uses all the available account balance of the trader to maintain the position. If the position were to be liquidated using cross-margin, the trader would lose the whole account balance. 

Some exchanges don’t have automatic converting of different assets, for example, if you hold ETH and are trading a BTC pair this does not necessarily become collateral for BTC. On FTX, it would become collateral on the same sub-account but not on ByBit. 

Differences Between Exchanges 

When we select leverage, exchanges will typically give us the option on the leverage slider to choose between the leverage applied or cross-margin use.

 It’s a little different on Binance and FTX, on Binance we will have to explicitly choose “margin” and not “spot” markets, then decide between two alternatives, on BTC/USDT it will be between cross-margin 5X and Isolated 10X. This is very aggressive, considering you are risking your whole account and something I never would recommend. 

On FTX, you will not find cross-margin labeled anywhere, it is because it is already activated. The difference on FTX is we use different sub-accounts, so each sub-account is an isolated-position. Inside the sub-account, the trades will be treated as cross-margin in the sens your collateral will be converted to cover up for losses if necessary.