Cryptocurrency: Markets 101

grarpamp grarpamp at gmail.com
Sat Feb 25 21:02:10 PST 2023


How To Crypto 51: What is an order book, what are maker/taker fees,
what are order types and what is slippage?

How To Crypto 51: What is an order book, what are maker/taker fees,
what are order types and what is slippage?

A guide by MalletSwinging
TLDR

There is no TLDR for this post. I try to include them when possible
but there is no way for me to summarize this information. This is a
long, thorough and informative post so be prepared to spend some time
reading it if you decide to continue.
Intro

Welcome to another post in my series, How To Crypto by MalletSwinging.
I decided to write these posts because I see a lot of new Redditors on
this sub every single day. I know how confusing and overwhelming this
space can be and I want to make it easier for our greener members to
navigate crypto without feeling too embarrassed to ask questions.

In this post I am getting back to crypto basics. On my last post I
received a comment from a reader who asked ‘what is a stop loss?’ It
got me thinking that maybe instead of continuing with more complicated
trading posts I should make a few that can act as a foundation for
more advanced concepts I’ll introduce in later articles.

Today we are going to talk about order types available on a
centralized exchange, or CEX. A CEX is an exchange like Coinbase,
Binance, Crypto.com, Kucoin or one of the many other smaller players
in this space. We’ve seen centralized exchanges like FTX and Voyager
go belly up recently and users of those exchanges have lost some or
all of their crypto. This is why picking a reputable exchange to use
as a fiat onramp is an important choice.

Trading is also possible on a decentralized exchange (DEX) like
Sushiswap, Uniswap, Bancor and others. Many of the concepts in this
document pertain to DEX trades as well but for the purposes of this
article we will be looking at CEX orders and order books only.

I’m not here to debate CEX vs DEX or the (de)merits of each CEX; there
are plenty of posts in this sub that discuss those. This is a purely
informative post and contains no advice beyond what to expect when
placing buy or sell orders. To learn any of these concepts we must
first understand what an order book is.
What is an order book?

An order book is a list maintained by each centralized exchange that
contains every current and active buy or sell order on a specific
trading pair.

What’s a trading pair you ask? Great question, Mallet!

A trading pair contains exactly two assets. At least one of these on a
CEX will always be a cryptocurrency. The other can be another
cryptocurrency but it can also be a unit of fiat currency like USD or
EUR. Many times the second asset will be a stablecoin like USDT, USDC
or (gasp) BUSD.

A trading pair allows you to trade one of the two assets for the
other. If a trading pair is BTC/USD it means that I can trade BTC for
USD or I can trade USD for BTC. These are the only two assets
available to trade in this particular trading pair. If I have USDT and
I want to trade it for BTC I need to look for BTC/USDT which is a
completely separate pair from BTC/USD. Each trading pair has its own
order book.

An order book on a CEX for BTC/USD has every single current and active
order that has been placed on that exchange to trade BTC for USD or
USD for BTC. They do not cross over from one exchange to another,
meaning the order book on Coinbase will have different order amounts
and prices compared to the order book for the same pair on Binance.
Let’s take a look at how this is represented visually on Binance.us:

​

https://preview.redd.it/180sjlmnbdka1.png?width=577&format=png&auto=webp&v=enabled&s=502a5565630c8b6788dc390ee6d95a19f924b904

There is a lot of information to unpack here! First, the green numbers
on the left represent buy orders. This means these are orders from
users who have USD and want to buy BTC.

The red numbers on the left represent sell orders. These are orders
from users who have BTC and want to sell it for USD.

These are real orders placed by accounts on Binance.us. Some people
may have placed these orders manually but the majority of them are
placed by bots or automated trading strategies. For practical purposes
we don’t really care who placed these orders; we only care that they
exist.

Breakdown of what we are seeing in this order book:

​

The green and red bars on the right show relative order book sizes of
the crypto asset at the dollar price listed on the left. Since we are
coming at this scientifically we will use the actual numbers instead
of the bars.
Bids

The top green number ($24,880.40) represents the highest USD price
someone is willing to pay for BTC. This line is known as a bid.

Each green number represents a bid price. Each line represents real
USD that someone has locked and is willing to pay to buy BTC.

The white number directly to the right of the highest bid price
(0.130726) represents how much BTC they are willing to buy at that
price.

If you look to the second white number right of the first white number
you will see the total USD price ($3,252.52) that you would receive if
you sold them that 0.130726 BTC at their bid price. These two numbers
don’t necessarily mean that one person wants to buy all that BTC at
that bid price; this can be one or more parties that cumulatively want
to buy that amount of BTC at that bid price.

As we go down the list of bids we see subsequently lower green numbers
on each line. These represent the next highest bids currently in the
order book. Note that they will always be in descending numeric order
by price with the highest bid price at the top of the list. There are
more bids (aka buy orders) below the lowest one on this list but the
list is heavily truncated due to space constraints.

Different exchanges will show different amounts of both buy and sell
orders depending on how their site is designed. Most have the option
to view only buy orders or only sell orders.
Last sale price

The large red number right above that ($24,880.40) represents the last
sale price of any amount of BTC on Binance.us. Note that in this case
it is the same as the highest bid price. This is not always the case
but it is here. This likely means that a buy order at $24,880.40 was
only partially filled and what we are seeing is the remainder of that
buy order still on the order book.

The red arrow down arrow to the right of the last sale price
represents the direction the last sale price moved from the sale price
before that. All this tells us is that over the last two trades the
sale price of BTC went down by at least $0.01. If the arrow were green
and pointed up it would tell us that over the last two trades the sale
price of BTC went up by at least $0.01.

If you were to look on TradingView or any other charting platform this
sale price is what constitutes the current price of an asset.
Asks

Next, let’s look at the smallest red number directly above the last
sale price. This line is known as an ask.

The red number ($24,882.06) represents the lowest ask price which is
the lowest price someone is willing to sell BTC, priced in USD.

Each red number represents an ask price. Each line represents real BTC
that someone has locked and is willing to sell for USD.

The white number directly to the right of that (0.156284) represents
the amount of BTC someone has listed for sale at the lowest ask price.
This is real BTC that someone has locked for sale at the price listed
on the ask line.

*** Note to more advanced readers: There are enough arguments about
whether CEXs actually have the crypto assets in question in this sub;
please don’t bombard the comments section with this as it will just
confuse new users. Let’s assume for the sake of this lesson that they
do.

The second white number directly to the right of the first white
number is the total dollar amount it would cost to buy the entire
0.156284 of BTC at the lowest ask price of $24,882.06.

As we go up the list of asks we see subsequently higher red numbers on
each line. These represent the next lowest asks currently in the order
book. Note that they will always be in ascending numeric order (from
the bottom up) by price with the lowest bid price at the bottom of the
red list. There are more asks (aka sell orders) above the highest one
on this list but the list is heavily truncated due to space
constraints.

Different exchanges will show different amounts of both buy and sell
orders depending on how their site is designed.
Maker and taker fees

If you look at any exchange’s fee structure you will see two different
commission pricings; a maker fee and a taker fee. Since we are trading
BTC/USD on Binance.us (or Binance.com) there are technically no fees
for orders however most other trading pairs are charged a percentage
fee on the total value of each trade that is successfully executed. As
far as I know all non-Binance exchanges charge fees on all trades
regardless of trading pair. Some do charge tiered fees and some give
discounts for trading volume or for paying in their exchange token but
that’s not really important to understand here.

Here is the base Binance.us fee structure for pairs other than
BTC/USD(T) or ETH/USD(T):

​

https://preview.redd.it/noqhsgnubdka1.png?width=350&format=png&auto=webp&v=enabled&s=12529f7419b5504e0925f0836b561216ddfc7222
Maker orders

If you place an order on an order book that is not immediately filled
but does remain on the exchange’s order book it is called a maker
order. In other words, maker orders occur when you create liquidity on
an order book by putting one of the two assets in a trading pair up to
exchange for the other at a trade price that will not immediately be
filled. Limit orders can be maker or taker orders.

If you place a maker order and it is filled you are charged the maker
percentage (in this case 0.3%) on the entire trade value by the
exchange.
Taker orders

An order that removes liquidity from an order book immediately is
considered a taker order.

Market orders are always taker orders because they will always be
filled immediately and will therefore take liquidity off an order
book. Limit orders that are priced in such a way that they are filled
immediately and remove liquidity from an order book will be considered
taker orders.

If you place a taker order you are charged the taker order
percentage-based fee (in this case a whopping 0.45%) on the entire
trade value by the exchange.

It is possible for part of a limit order to be filled as a taker and
the rest to be filled as a maker. It is also possible for part to be
placed as a taker and for the rest to not get filled at all depending
on how you place your order and what happens in order book by other
parties after your order is placed.
Order types

Now that we understand the basics of how an order book works and how
maker/taker fees are determined let’s take a look at order types. In
crypto there are two main order types, limit and market. I will go
over Stop-limit orders (aka conditional orders) in my next post about
stop losses in the interest of keeping things simple here. All orders
require an asset pair so for the sake of simplicity we will again use
BTC/USD for our examples and assume we are looking at the same order
book I used above.
Market orders

A market order is an order that allows you to fill in a dollar amount
(in the case of a fiat or stablecoin-based pair like BTC/USD) and will
purchase that much crypto at the best price available from the
exchange’s order book. This option gives you the least amount of
control over how much you pay for an asset. Market orders, especially
larger ones and/or on low liquidity pairs, are subject to something
called slippage which I will go over in a moment.

Market orders are always taker orders.

Let’s say I have $5,000 and assume the order book I used in the
example above is currently in place. I want to buy $5,000 worth of BTC
and I don’t care what price I pay for it as long as it’s close to the
last sale price. I fill out my market order form like this:

​

https://preview.redd.it/ldvcmlvxbdka1.png?width=974&format=png&auto=webp&v=enabled&s=029174492b56e919421ce48f7d7e87bc73aaac49

I can choose to place this as a total USD amount or a total BTC amount
in the field market Total with the down arrow next to it. Here I’ve
chosen total USD amount for the sake of being consistent.

Here is the same order book for the sake of not have to scroll up or down:

​

https://preview.redd.it/de4plawybdka1.png?width=577&format=png&auto=webp&v=enabled&s=027074132e2286ae2a5486d08fc777226970bdbd

The moment press Buy I will purchase the exchange will buy $5,000 of
BTC at the best available price. Assuming the order book was exactly
as the image above at the moment I pressed Buy here I will buy:

0.156284 BTC at $24,882.06 for $3,888.670.007498 BTC at $24,882.73 for
$186.570.037163 BTC at $24,883.30 for $924.76

This is a good segue into the next section, slippage.
Slippage

As you can see in the example above, the last sale price of BTC was
$24,880.40 but our average buy price was around $2 higher than that.
This is known as slippage. Slippage occurs when there is not enough
liquidity on an order book to cover an entire buy or sell at the last
sale price. In the example above there was a relatively low amount of
slippage (less than 0.01%.)

When trading high liquidity, high volume pairs in small amounts there
is usually relatively low slippage like this.

When trading relatively low liquidity, low volume pairs like
JASMY/USDT there will usually be considerably more slippage because
the order book is often less competitive and therefore more spread
out.

Note that if I had placed a sell market order for 0.1 BTC I would have
experienced no slippage in this case as there is enough liquidity on
the order book to cover my entire sell order at the last sale price.

Slippage is something I personally usually try to avoid as I like to
know exactly how much I’ll pay for something before I buy it. If you
don’t like the sound of slippage either, welcome to the world of limit
orders.

For funsies, here is what a chart looks like when someone places a BIG
market sell order on an order book and incurs a ton of slippage. You
can see the long red wick indicating that a market sell order cleared
out an order book. This drove the last sale price down before other
others swept in and filled the order book back up, bringing the last
sale price back into congruence with the rest of the chart.

​

https://preview.redd.it/w03oyyh6fdka1.png?width=1333&format=png&auto=webp&v=enabled&s=6302066f82e903d21b2bb61aafc335544b70e099
Limit orders

A limit order is a buy or sell order in which a user has a specific
amount of one asset that they wish to trade for a specific amount of
another asset. As I mentioned earlier these can be either maker or
taker orders depending on how you place them

Let’s say that we have $1,000 and we want to buy 0.05 BTC with that
exact amount of dollars. A little basic math tells us that in order to
buy 0.05 BTC with $1,000 the price for one BTC will need to be
$20,000.

Here’s the math behind that:

[our dollar amount] / [our desired amount of BTC] = [price of BTC
required for trade] / [one BTC]

Since we are trying to figure out the price of BTC required for trade
we can effectively make that variable X and then solve for said X. I
hope you remember your high school algebra!

$1,000 / 0.05 = X / 1

In this case X is equal to $20,000. If you get stuck on this it might
be a good idea to do a quick refresher:
https://www.khanacademy.org/math/algebra-basics

This means that if I want to buy 0.05 BTC for $1,000 I need the price
to come down from $24,880.40 to $20,000 and there needs to be at least
0.05 BTC available at $20,000. Since I don’t want to pay more than
$20,000 but I also don’t want to sit at my computer or phone and wait
for the price to drop I decide to use a limit order and leave it on
the order book permanently as a GTC (good ‘til canceled) order.

Here is an image of how I would place this order. The black boxes are
me obfuscating some info I don’t want to share on here:

​

https://preview.redd.it/r7c843t3cdka1.png?width=975&format=png&auto=webp&v=enabled&s=96ef21e75e6ce4161ddd2edc8e098f8e00d2e1fe

If I fill in the price and BTC amount I want to purchase the total USD
amount will be filled in automatically. You must have the USD amount
in the Total box available and unlocked in your trading account in
order to place this trade. When I press the green Buy BTC button the
trade will be placed.

The TIF (time in force) option specifies how long your order will
remain on the order book. Binance.us gives these common options:

GTC, or Good ‘til Canceled – this means that the order will stay on
the order book in perpetuity, or until it is filled or canceled. If I
had used the $1,000 example buy at $20,000 per BTC above as a GTC
order my $1,000 will remain locked meaning I cannot use it for other
trades or withdraw it from the exchange.

If I had placed a GTC order for 1 BTC at $24,882.06 (assuming we are
still using the order book above) I would have purchased 0.156284 BTC
for $3,888.67 and the remainder or my order (in this case $20,993.39)
would remain on the order book as a buy order for the remaining
0.843716 BTC at a price of $24,882.06. The $20,993.39 would be locked,
unavailable for other trades or withdrawals. The trade that was
executed for $3,888.67 would be considered a taker order and the other
$20,993.39 would be considered a maker order.

IOC, or Immediate or Cancel – this means that my order will be
executed immediately. If it cannot be filled in full it will fill as
much of the order as possible and then cancel the rest of the order.
If I had used the $1,000 example buy at $20,000 per BTC above as an
IOC order, since the current price of BTC is $24,880 none of my $1,000
order would be filled and my order would be canceled.

If I had placed an IOC order for 1 BTC at $24,882.06 (assuming we are
still using the order book above I would have purchased 0.156284 BTC
for $3,888.67 and the rest of the order would be canceled. the
remainder of my $24,882.06 (in this case $20,993.39) would remain in
my account balance and it would be unlocked, available for other
trades or withdrawal. The $3,888.67 I spent would be considered a
taker order.

FOK, or Fill or Kill – this means that if my entire order cannot be
placed for the exact amount I specified, none of the order will be
filled and it will be immediately canceled. If I had used the $1,000
example buy at $20,000 per BTC above, since the best available price
for BTC is $24,882.06 none of my $1,000 order above would be filled
and my order would be canceled.

If I had placed a FOK order for 1 BTC at $24,882.06 (assuming we are
still using the order book above) I would have purchased no BTC at all
since there is not enough on the order book for me to buy 1 BTC at
that price. The entirety of my $24,882.06 would remain in my account
balance and it would be unlocked, available for other trades or
withdrawal.
Other order options

There are some other options we can check here, namely Iceberg and
Post Only. These options probably won’t be relevant to you as a newer
trader but I’ll explain them anyway.

Post only – this option means that your order will only be processed
as a maker order and not a taker order. If you place an order as Post
Only and it is impossible for it to be placed onto the order book
without it being filled it will be immediately canceled.

Iceberg – this option allows you to break a very large order up into
smaller chunks to avoid disrupting a market with one giant buy or
sell. As a newer trader it is unlikely that you will need this option,
at least not during the beginning of your journey. Once you click this
option it will allow you to specify a chunk size that will break your
order up into multiple smaller, more obfuscated orders.

Sell orders are identical to buy orders except you are interacting
with the other side of the order book. I considered redoing all of
these examples as sell orders but I think anyone still reading will
understand the concept.
What happens if I place a limit order that will clear multiple levels
of an order book?

Another great question! Thanks for asking, Mallet; you really ask the
best questions. Let’s again assume this is our order book:

​

https://preview.redd.it/6hgamiy6cdka1.png?width=577&format=png&auto=webp&v=enabled&s=2665ac344efa1456ecedf24e0eef79668ce76bf8

Let’s assume I want to buy 1 BTC and I’m willing to pay up to
$24,883.66 for it but not a penny more. I fill out my form and press
Buy BTC.

​

https://preview.redd.it/z6zm4tt7cdka1.png?width=434&format=png&auto=webp&v=enabled&s=97b63aa88b593b7a0abe5593c2ab7330c54d54a3

As long as the order book has not changed I will immediately buy:

0.156284 BTC at $24,882.06 for $3,888.670.007498 BTC at $24,882.73 for
$186.570.221031 BTC at $24,883.30 for $5,499.980.413122 BTC at
$24,883.66 for $10,279.99

This means I will have purchased a cumulative total of 0.797935 BTC
for a cumulative dollar amount of $19,855.21. The amount I have
purchased here will be considered a taker order.

I will then see the remainder my buy order appear on the order book
for the remainder of my requested BTC (0.20207BTC) at a price of
$24,883.66. If the remainder of my buy order is filled by someone
else’s subsequent sell order this part of it will be considered a
maker order.
Conclusion

That’s about it! At this point you hopefully have a clear
understanding of how an order book works, how to determine the fees
you will pay on trades and the difference between market and limit
orders. Armed with this knowledge you might be ready to jump into one
of my more advance articles:

How to crypto 101: How to grid trade

How to crypto 201: What is leverage?

Stay tuned for my next post which will be How To Crypto 53: What is a
conditional order and how do I use one to set up a stop loss? What is
a stop loss, anyway?

***Edit: thank you for the awards, u/tommo_graham, u/rootpl and
u/Bailszy! You absolutely didn't have to do that but they are much
appreciated.


More information about the cypherpunks mailing list