Here is a step by step guide how to make money on arbitrage with cryptocurrencies:
Step 1: Find opportunities (between exchanges or within exchange)
Step 2: Take a decision whether to buy or not to buy:
1) Estimate amount of fees: transaction, transfer, network, wallet fees
2) Be aware of risks: transaction and transfer time, market volatility
3) Estimate the amount of taxes
In this article we consider each step in great detail. The first step is of course essential, but please do not underestimate the following steps as well.
If you are experienced crypto trader, then you might skip the next section and jump to the finding opportunities. Otherwise we remind you on the terminology we will use in this article.
Terms to know
Arbitrage — “is the simultaneous purchase and sale of an asset to profit from an imbalance in the price. It is a trade that profits by exploiting the price differences of identical or similar financial instruments on different markets or in different forms.” Investopedia
Fiat or fiat money — “is a currency without intrinsic value that has been established as money, often by government regulation. Fiat money does not have use value, and has value only because a government maintains its value, or because parties engaging in exchange agree on its value”, Wikipedia. For example, dollars or Euros are fiat money.
Crypto asset — is a digital asset which utilises cryptography, peer-to-peer networking, and a public ledger to regulate the creation of new units, verify transactions, and secure the transactions without the intervention of any middleman. There are 4 types of crypto assets:
- Cryptocurrency (e.g. BTC)
- Platform tokens/cryptocommodities (e.g. ETH)
- Utility tokens (e.g. OMG)
- Transactional tokens (e.g. Stellar)
Volatility — “In finance, volatility (symbol σ) is the degree of variation of a trading price series over time as measured by the standard deviation of logarithmic returns”, Wikipedia
Deposit — amount of fiat money you have decided to put into crypto exchange to buy cryptocurrencies
Withdrawal — amount of cryptocurrencies you have sold for fiat or transferred to another exchange
Order book — a ledger containing all outstanding orders-instructions from traders to buy or sell bitcoin.
Find arbitrage opportunities
Arbitrage is is the practice of taking advantage of a price difference between two or more markets. For example, an arbitrage opportunity is present when there is the opportunity to instantaneously buy something for a low price and sell it for a higher price.
To find an arbitrage opportunity is an essential step. There are two major kinds of the crypto arbitrage:
- Arbitrage between exchanges and
- Arbitrage within an exchange.
Let us have a look at each of them and consider pro’s and con’s.
Arbitrage between exchanges
Arbitrage between exchanges is the most obvious type of arbitrage, because it is very similar to the fiat currency arbitrage (e.g. forex arbitrage) or to the sports arbitrage. The idea is simple: benefit from the differences in prices for the same coin but on different exchanges. For example, see the different prices for Bitcoin in US dollars for different exchanges on the Figure 1, where the price for 1 Bitcoin ranges between 6600 and 8730 US dollars. In this example you would buy for 6600 USD on and sell for 8730 USD, theoretically making 2130 USD or 32% in profits for one single transaction. Sounds good, right? Please do not rush to follow this particular example and read further.
Let us split the process in steps:
- Register on both exchanges of your choice
- Deposit fiat on one exchange and buy a Bitcoin or any other cryptocurrency
- Transfer cryptocurrency to the other exchange
- Sell your crypto asset for fiat
- Withdraw the profit
The first catch is that almost always you have to pay a fixed fee for each step. The subject of fees is quiet complex, you can read all about in the section below. But just to give you an idea, you might pay as little as 3% of your crypto asset or as much as 15%, depending on the exchanges.
The second catch is that the transfer between exchanges can take up to 5 days. Since the volatility of cryptocurrencies is high, the theoretical profit might diminish during this time.
It is possible to reduce the amount of fees and also waiting time. Here is how you could do it step by step:
- Register on the exchange 1 and 2
- Deposit fiat on exchange 1
- Deposit fiat on exchange 2
- For a part of deposit buy a cryptocurrency on exchange 1, now you have fiat and crypto on this exchange
- For a part of deposit buy a cryptocurrency on exchange 2 , now you have fiat and crypto on this exchange
- When arbitrage opportunity presents, buy a cryptocurrency on the exchange 1 and sell the same amount of the cryptocurrency on the exchange 2 at the same time, or vice versa.
Here there is no transfer of the cryptocurrencies between exchanges, that means neither waiting time, nor fee for this step. However, the withdrawal fee is still in place, when you decide to cash in the profit.
Obviously, arbitrage between exchanges is connected to several risks, see section on arbitrage risk below.
Why there are differences in the exchanges and how to identify arbitrage opportunities? Here are few ideas:
- Liquidity (see example above): difference in the trading volumes at different exchanges, meaning difference in supply and demand, affects the prices. On the established exchanges prices fluctuate less than on the smaller or new ones.
- Geography (while something can happen in the morning in Europe, that influences prices, the most of people in US are still sleeping, hence the price difference due to the geography)
- Listings (price difference when a crypto coin gets listed in one of the major exchanges).
Arbitrage within an exchange
Arbitrage within an exchange is similar to the triangular arbitrage, also known as cross-currency arbitrage. The step-by-step process is then as follows:
- Start with deposit of some amount of fiat on an exchange
- Buy cryptocurrency 1
- Sell cryptocurrency 1 and buy cryptocurrency 2
- Repeat steps 2 and 3
- Sell cryptocurrency 2 for fiat
- Withdraw the profit
You could substitute fiat with yet another cryptocurrency, or repeat step 2 many times with different cryptocurrencies. In the last case, it will be not a triangular arbitrage, but polygonal arbitrage.
By staying within an exchange and applying the same process over and over again to different cryptocurrencies, the major fee (withdrawal of cryptocurrency) is eliminated.
The catch in this case though is that the opportunity is less obvious than in case of arbitrage between exchanges.
Here is an example of triangular arbitrage. Let’s say that you have deposited some funds to an exchange and bought USDT, which you might consider a crypto equivalent of USD. You want to buy 1 Bitcoin (BTC). Of course you could buy 1 BTC for 6527.06 USDT (on 20th of August 2018, 04:26 CET).
Or you could use the triangular arbitrage strategy:
- Buy Ethereum or ETH for USDT, 1 ETH = 302.15 USDT
- Buy BTC for ETH, 1 ETH = 0.04643 BTC, or 1 BTC = 21.5378 ETH
Then your BTC would cost 21.5378*302.15 = 6507.64 USDT.
That means, to buy BTC via ETH you saved 19,41 USDT, which is about 0.3% of the Bitcoin price. If you sell immediately 1 BTC for 6527.06 USDT, you will make 0.3% profit of these 2 transactions.
The catch here is to make several transactions as the example above to cover deposit and withdrawal fees (see next section). The best practice is to run a bot that identifies the opportunity and if it is higher than a certain threshold (that includes fees and taxes), buy and sell while you are sleeping.
It can be even more complex, you could have bought first number of Litecoins (LTC), then ETH for LTC, BTC for ETH and finally cash out BTC for USDT. In this case you would make 0.306% profit (on 20th of August 2018, 04:26 CET).
Given the fact that the number of cryptocurrencies is approaching 2000, the combinations are endless, see example on Figure 1.
By now, hopefully, you have identified an arbitrage opportunity and know how much percent you will gain if the orders will be executed in the ideal/theoretical case. Now let’s have a look how much fees you have to pay and what risks are associated with every trage.
Fees at exchanges:
There are three major sources of fees at the exchanges:
Fee #1: Fiat deposit/withdrawal fee is taken by an exchange for deposit/withdrawal of money from your bank account or by a credit card payment.
- Credit card payment is instant, you immediately can use your funds. However, the fee ranges between 3% to 8%. WEX exchange charges 15% for the fiat withdrawal.
- The wire transfer to the exchange deposit account has usually a small transaction fee (see below), but it can take several days.
- Direct deposit (might be even slower than the wire transfer, moreover direct deposits outside of country incur the conversion fee, e.g. in US it is 2.5%)
Fee #2: Transaction fee
Depending on the exchange, the transactions are charged with
- Fixed fee
- Maker fee
- Taker fee
The fixed fee is obvious: independent of the coin, volume and order books, the fee stays always the same. It ranges between 0.02% and 0.1%.
The maker and taker fee have been introduced by the Kraken exchange and some other exchanges followed.
“A trade gets the taker fee if the trade order is matched immediately against an order already on the order book, which is removing liquidity. A trade gets the maker fee if the trade order is not matched immediately against an order already on the order book, which is adding liquidity.”
Basically, if you want to sell/buy and you put the price such that your order will be executed immediately, then you pay lower fee (taker fee). Otherwise your order has to stay for some time and for the exchange it is less beneficial, in which case you pay the maker fee. Usually the maker fee is 2–3 times more than the taker fee.
These fees might change dependent on the amount of your order : the more you buy/sell the smaller the fee. Some exchanges only charge the taker fee, in this case the maker fee is 0%. See an overview of the fees per exchange here.
Fee #3: Cryptocurrency deposit/withdrawal.
Usually, deposit of a cryptocoin is free, but if an exchange needs to create a new address for your chosen coin, then they will charge blockchain (or network fee), see below. Withdrawals fee are depending on the crypto coin, for example Kraken charges for Bitcoin withdrawal 0.0005 Bitcoin and Binance charges twice as much 0.001 Bitcoin. Also some exchanges don’t charge withdrawal fee, for example GDAX.
Let’s have a real life example with fees of an arbitrage on Coinbase, where you can buy Bitcoin directly. Let’s say that you want to buy Bitcoin for 10,000 USD at Coinbase via credit card (because it is the instant way of buying crypto). Coinbase charges 4% for this credit card transaction, that means you have 9600 USD left to buy Bitcoin. The prices are following (on 31st August of 2018):
- 1 BTC = 7044,32 USD
- 1 ETH = 283,49 USD
- 1 ETH = 0.04032 BTC
The arbitrage opportunity is to buy BTC via ETH: 9600 USD -> 33,86 ETH -> 1,3653815 BTC, whereas if you would buy BTC directly you would get: 9600 USD -> 1,3628001 BTC. The gain from this arbitrage opportunity is 0.2581% (equal to 18,18 USD=0.00258139 BTC). If your orders are executed immediately, then 0% fees apply. However, if your order gets stuck in the order book, then the fee per 1 transaction is 0.3% (taker fee). Let’s assume that you have got lucky and do not have to pay transaction fees. In this case, you would need 22 transactions similar to these to cover the credit card fee for the deposit only.
Finally you need to pay the withdrawal fee. We suggest to use a wire transfer which has a little fixed fee (0,15€, 1£, 25USD).
You see, fees might be a profit killer, so you have to be very careful with the choice of the exchange.
Few ideas to minimize the fees:
- Ideally match your transaction such that the order will be executed immediately
- Use exchanges with no/little crypto withdrawal fee
- Check carefully the fiat withdrawal fee on the exchange
- Use wire transfer instead of the credit card or the direct deposit
- Use exchanges with the deposit account
Fees on blockchain or network fees
Every crypto coin is connected to a blockchain. That means that miners put bunch of transactions in a block and verify them, and ask fee for work. This fee is called blockchain fee or network fee.
Some exchanges don’t take fee for the deposit or the withdrawal of a cryptocurrency. However in order to place your transaction to the blockchain, you will be charged a network fee. For example, you would place your freshly bought Bitcoin from Coinbase to your wallet or offline storage. At the moment of writing this article, the Bitcoin network fee was less than 1 USD.
Fees on wallets
Many free wallets take a transaction fee to support development and maintenance of the wallet software. You could check the fee in your wallet settings. Moreover, if the wallet creates a new address to store your cryptocurrency, it has to be added to the cryptocurrency blockchain. In this case, the network fee occurs (see above).
There are several risks associated with the crypto arbitrage. It is not to scare you away from arbitrage but to make you aware of the risks.
Risk #1: Hacking risk
There have been well known attacks resulting in millions of stolen Bitcoins (see top five hacks here).
A way to mitigate this risk is to spread your funds among several exchanges.
Another way is to keep the amount you are ready to lose on exchanges and the rest in the cold storage.
Risk #2: Execution risk due to fast moving market or market volatility: you need to perform at least 2 transactions for an arbitrage, which ideally should be executed immediately. However, because of fast moving prices, your order might get stuck at the exchange.
That means you also have to pay a taker fee.
A way to mitigate this risk is to use a bot that is doing trading for you.
Risk #3: Movement risks between exchanges/blockchains: most of the exchanges need a few days time to validate deposit and withdrawal. Here you can read a list of issues the author encountered .
Also, this risk category includes
- Wallet maintenance
- Network is down
To mitigate this risk, use well known exchanges with large trading volume.
Risk #4: Price decline risk: the trading funds will decline with higher % than profit from arbitrage.
Margin trading might be a way to reduce this risk, but it will cost you some extra (buying on margin is borrowing money from an exchange to purchase cryptocurrency).
Risk #5: “Know your customer” (KYC) is posing a risk if you are just starting to trade on an exchange. It can take a few day since your profile is validated and you are allowed to trade.
Risk #6: Withdrawal limits might be a risk if you want to withdraw more funds than allowed at the exchange
In the adrenalin rush of the investment and trading it is very easy to forget, that ones a year you need to calculate taxes on your cryptocurrency assets (unless you are living in China). The subject of taxation of the cryptocurrencies is very complex. The tax laws for natural person and legal entity are different. The tax laws are also different per country.
Taxes might actually reduce your profits and it is not easy to keep them in mind by posting a transaction order. By ignoring taxes, a crypto trader or crypto investor fails to get a very important piece of information to make a trade.
The taxes might be as simple as in the Netherlands, where cryptocurrencies are considered as a capital (overige bezittingen). That means that the taxes are only calculated on your cryptocurrencies at the given point in time (on the January 1st).
Or the taxes might be as complicated as in US, where cryptocurrencies are considered as assets, which means that you have to pay tax on every transaction.
Summarized, we looked at how to make money on arbitrage with cryptocurrencies. Basically, we have identified 2 important steps. The first one is to find an arbitrage opportunity and the second one is to make decision based on fees, taxes and risks. The important factors to consider are
- Exchanges: some have higher fees, some take longer transaction times, some are more trustworthy
- Kind of arbitrage you want to execute, because for the arbitrage across exchanges you need relatively more investments than within one exchange.
- Market volatility: some coins fluctuate more than others
- Country of your residence, since as a private person or a company you might have to pay taxes
- Your funds/investment in fiat and/or in cryptocurrencies on one or across exchanges. Remember, that to trade across exchanges you need to have a fiat and the crypto available on these in order to maximize your profits on arbitrage.
In my opinion it is also important to understand that you need several arbitrage transactions to cover your deposit, withdrawal fees and evenual taxes.
By taking into the account all these ingredients: fees, risks, taxes, you can increase your chances of success in the crypto arbitrage.