Crypto Arbitrage Guide – What It Is and How to Find It

What is crypto arbitrage?

Crypto arbitrage refers to a tactic for profiting from the price differences of a digital asset on different trading platforms.

In short, crypto arbitrage involves purchasing a digital asset at a lower price on one exchange and then selling it at a higher price on a different exchange.

This piece centers on identifying discrepancies in cryptocurrency pricing across various exchanges for the purpose of executing a crypto arbitrage. It will delve into the methods for determining the potential for a crypto arbitrage and utilizing it to generate a profit.

Why does crypto arbitrage occur?

According to traditional financial theory, markets are believed to be efficient, which would mean that arbitrage opportunities do not exist. However, in practice, traders have discovered ways to take advantage of market inefficiencies.

There are various factors that contribute to the occurrence of crypto arbitrage, some of the most significant include:

Liquidity variance across several exchanges

Different exchanges have unique order books with varying levels of liquidity for a specific asset. An order book is a list of current buy and sell orders for a particular asset.

For instance, if we are buying Bitcoin, it may be more cost-effective to convert it to cash on a specific exchange without incurring a loss. This can be linked to the order book of that exchange.

If one exchange has a shallow order book and the other has a deep one, it would be prudent to purchase the asset on the latter as the former may result in paying a higher price.

But why does this happen if both order books display the same price for the asset? This happens because one exchange (with the shallow order book) may have small orders of BTC at the highest level of its book price. By buying these orders, we automatically move to the lower levels of the order book to complete our order, resulting in paying a higher price.

Different types of exchanges

Exchanges are not all the same. Some are more suitable for retail investors while others cater more to institutional investors. The different behaviors and preferences of these two types of traders create crypto arbitrage opportunities.

For instance, institutional traders tend to have gaps between their large limit market orders, while retail traders do not.

This gap enables us to purchase a specific asset on a retail trader exchange and then sell it on the other one. With the use of algorithmic trading, most arbitrages can be executed quickly, resulting in an instantaneous profit.

Withdrawal and deposit times vary across exchanges

The potential for crypto arbitrage increases because of the differing deposit and withdrawal times among exchanges. If it were possible to transfer fiat and crypto assets instantly, the market disparities between various exchanges would disappear. Exchanges with faster transfer times are able to catch up to the market quicker, while others lag behind and gradually reach updated market sentiment levels.

Additionally, the cost of transferring fiat/crypto holdings also varies, leading to even more arbitrage opportunities.

The supply and demand vary across countries

Because different countries have varying levels of supply and demand, crypto arbitrage opportunities can arise.

For example, if Japan has a neutral sentiment towards Ethereum while the US is bullish, we can purchase ETH in Japan and sell it in the US.

Foreign currency rates

An example of how crypto arbitrage can be created by varying currency exchange rates is trading Lithium. If the USD gains strength against the JPY while the asset price for Lithium remains the same on Japanese and US exchanges, an arbitrage opportunity is created.

In this scenario, we convert USD to JPY, purchase Lithium on a Japanese Exchange and then sell it on a US exchange.

Other reasons for the occurrence of crypto arbitrage include:

  • Tight capital controls outside of the US and EU
  • Lack of traders (i.e. market makers)
  • Regulations across exchanges
  • Spreads
  • Costs

What are the Pros and Cons of crypto arbitrage?

The Pros:

  • The crypto arbitrage strategy is a low-risk option, as buying and selling the asset simultaneously eliminates the risk present in long-term investments. This strategy thrives in volatile markets and allows traders to profit without taking on excessive risk.
  • Additionally, this method is not reliant on bull or bear markets, allowing for the potential to earn money regardless of market direction. However, it is worth noting that there may be more arbitrage opportunities during large bull markets as traders may be more focused on riding the market trend than seeking out arbitrage opportunities.

The Cons:

  • Transaction fees – Arbitrage traders can be impacted by transaction fees imposed by exchanges, which can greatly reduce their profits as compared to swing traders who may not be as affected by such fees.
  • Exchanges and cryptocurrencies are unpredictable – Crypto exchanges can experience technical difficulties, such as freezing or crashing during high-volume periods, which can cause delays and additional costs for traders. Additionally, there is always the risk of an exchange shutting down and potentially causing the loss of all assets held on the platform.
  • Technology – To excel in crypto arbitrage, it is essential to use advanced technology that enables fast trades, allowing for a profit to be made.
  • Minimum mispricing – In order to be successful in crypto arbitrage, the difference in price, also known as mispricing, must be significant enough to offset the costs associated with the trade, such as transaction fees and market stability.
  • Regulations – Regulatory measures such as KYC and AML can affect the ability to perform cross-border crypto arbitrage, as they may impose additional requirements and restrictions on the movement of funds between different countries or exchanges. This can make it more difficult or costly to take advantage of mispricings across different markets.
  • Experience – To be successful in crypto arbitrage, it is important to have a good understanding of the market and experience in trading. Without considering all the potential risks and variables, new traders may make hasty decisions and potentially lose out on profits.

What types of arbitrage exist?

There are various methods to execute a crypto arbitrage, and I’ll discuss the most popular ones.

Spatial arbitrage

This type of arbitrage, known as cross-exchange arbitrage, involves purchasing a cryptocurrency on one exchange and then transferring it to another exchange to sell it at a higher price. However, factors such as transfer costs, transfer times, and spreads can limit the profitability of this strategy. Additionally, by the time the cryptocurrency is transferred to the second exchange, the price may have already changed. Despite these limitations, this type of arbitrage is relatively easy to execute.

2 Methods

  1. Long/short on exchange 1, transfer crypto/fiat to exchange 2, then short/long
  2. Long and short on 2 exchanges, then transfer the long to the other exchange, and cover the shorts.

Spatial arbitrage without transferring

This strategy is employed to eliminate the time and expense of transferring assets. It is also a preferred tactic among crypto day traders who engage in arbitrage.

Method 1

This method involves simultaneously buying and selling the same crypto asset on different exchanges in order to take advantage of price differences. The goal is to wait for the prices to converge and then close both trades, resulting in a profit. However, this method relies on the convergence of the mispricing, which may not always occur, making it a less reliable option for crypto arbitrage.

Method 2

This method of crypto arbitrage involves utilizing the balance and spreads of two different exchanges, such as Binance and BitMex. By comparing the prices of a specific asset, such as ETH-USD, on both exchanges, one can decide to buy the asset on one exchange and sell it on the other. In this example, we would move our USD to Binance and buy 1 ETH for $606. At the same time, we would sell 1 ETH on BitMex for $620. By doing this simultaneously, we are able to make a profit of $14, not including trading fees. This method eliminates transfer time and cost and is preferred by most crypto day trading arbitrageurs.

Triangular arbitrage

This tactic involves utilizing multiple exchanges to exploit differences in trading pairs. By taking advantage of the variety of markets and currency options offered by different exchanges, opportunities for triangular arbitrage can be found. For instance, a trader can trade BTC for ETH, then ETH to LTC and finally LTC back to BTC. If the price differences between these assets are substantial, a profit can be made. This method can be broken down into several steps, such as selecting a starting asset (e.g. BTC), trading it for a second asset (e.g. ETH) that is connected to the starting and following asset, then trading the second asset for a third one (e.g. LTC) and finally converting the third asset back to the starting one.

To take advantage of the differences in trading pairs across multiple exchanges, we can use a tactic called triangular arbitrage. This method involves exploiting the variations in the prices of different currencies on different platforms. For example, we can trade BTC for ETH, then ETH for LTC, and finally LTC back to BTC. If the differences in prices are significant, we can make a profit. In order to calculate the potential profit, we can use the bid and ask prices for each cryptocurrency and divide them by the ratios of the currencies in the triangle. For instance, starting with 1000 BTC, we can multiply by the ratio of ETH to LTC and divide by the ratio of LTC to BTC. By comparing this newly calculated value with the starting one, we can determine the size of the opportunity.

How to take advantage of arbitrage algorithmically?

As arbitrage opportunities last for a few seconds up to a few minutes, it is too time-consuming for a trader to calculate all the possibilities. This is where the algorithmic traders jump in with their cool algos that do the job quickly.

Some traders prefer making the final decision when it comes to their arbitrage and thus they make an alert program that scans across multiple exchanges and notifies the trader with arbitrage possibilities.

There are even third-party software that specializes in notifying subscribed traders with arbitrage opportunities. But beware! There are many scams out there when it comes to this software, so I would advise extensive research before picking one.

As this article is focusing more on how to find mispricing I won’t dabble further in how these algorithms are coded.

I’d advise the reader to check out our Binance and BitMex API guides so you get an idea of how to build an arbitrage.

How to find a crypto arbitrage?

When it comes to finding crypto arbitrage opportunities, it can be done by two main methods. Let’s cover both of them step-by-step.

Method 1

The first method involves using an exchange API from two different exchanges to compare the prices of the asset. This method is accurate but it suffers from not being scalable.

Allow me to show you how to do it. I’ll be using BitMex and Coinbase for this. Have in mind that we’re only going to look for the mispricing, we won’t fire any trades.

If you want to fire a trade, check out our Coinbase and BitMex API guides.

Let us begin by importing the relevant libraries that we need:

import bitmex
import requests
import json
import datetime
from coinbase.wallet.client import Client
from time import sleep

The next step is to validate our API Keys and API Secrets:

bitmex_api_key = 'EeE092m3lwJism5mAFc4plfX' 
bitmex_api_secret = 'kgRLOsB7QOfauIyyNj5VOvPQ8ueLCuWWxwXTAI4ABcqqEMqk'

coinbase_API_key = 'cTgYvXpaksr5fFgr'
coinbase_API_secret = 'Css2cMN9kTjPNh2XvuHLM9HrdVcX3ty5'

Now, let’s set up the clients:

client = bitmex.bitmex(api_key= bitmex_api_key, api_secret=bitmex_api_secret)

clientb = Client(coinbase_API_key, coinbase_API_secret)

The next step is to create a loop that will check for the percent change between the two cryptocurrencies (BTC) prices. If the percent hits the 1.5% mark, we will want the program to notify us.

Have in mind that for BitMex, we need to process the position endpoint result in order to get what we need. When it comes to Coinbase, we’ll need to convert the obtained JSON string into a float value in order to calculate the percentage.

Depending on your API package and limit you’ll freely tweak the sleep times between API calls.

while True:
    positions = client.Position.Position_get(filter=json.dumps({"symbol": 'XBTUSD'})).result()[0][0]
    bitmex_btc = {}
    bitmex_btc["markPrice"] = positions["markPrice"]
    print('BitMex: ',bitmex_btc['markPrice'])
    coinbase_btc = clientb.get_spot_price(currency_pair= 'BTC-USD')
    print('Coinbase: ',coinbase_btc['amount'])
    percent = float(((float(coinbase_btc['amount']) - bitmex_btc['markPrice']) * 100) / bitmex_btc['markPrice']) 
    sleep (1)
    if percent < 1.5:
        print ('No arbitrage possibility')
        if percent == 1.5:
            print ('ARBITRAGE TIME')

Method 2

The second method involves using data pulling APIs and websites that can scan across multiple exchanges, i.e. CoinGecko or CoinMarketCap. This method is less accurate than the previous one but is vastly scalable.

For this example, we will use CoinGecko, which is a data provider and a crypto tracking website. If you want to learn more about CoinGecko and check out their API, visit the following link:

Let’s begin by importing the relevant libraries we need:

import json
from time import sleep
from pycoingecko import CoinGeckoAPI
cg = CoinGeckoAPI()

Now, we’ll call the CoinGecko API function that pulls the Bitcoin data for all exchanges it has:

coin_tickers = cg.get_coin_ticker_by_id(id='bitcoin')

The next, thing we want to zoom onto is the ‘tickers” part as it holds the last price data value. I will also make a new variable “btc” upon which we will make our data pulling and calculations.

btc = coin_tickers['tickers']

The next step is to create a list of all the recent price values. To identify opportunities that deviate 1.5% from the benchmark currency, we will calculate an average starting price for comparison. It’s important to keep in mind that data may contain errors or inaccuracies, which is why the final part of the if statement filters out any outliers. In this example, without it, one BTC value was listed at over $500,000.

all_prices = []
for i in btc:
    if i['target'] == 'USDT' or i['target'] == 'USD' and i['last']<500000:
starting_price = sum(all_prices)/len(all_prices)
processed = []

The next step is to establish a process that retrieves data, computes the percentage deviation, and adds it to a list of processed values. The program should then display only those values that meet a certain criteria. In the event that the data does not meet the criteria, the process should repeat at a predetermined interval.

while True:
    for exchange in btc:
        if exchange['target'] == 'USDT' or exchange['target'] == 'USD' and exchange['last'] < 500000:
            percent = float(((starting_price - exchange['last']) * 100) / exchange['last'])
            if percent >= 1.5 and exchange['last'] >= 100:
                processed.append(str(exchange['market']['name']) +':'+ str(exchange['last']))
        if len(processed) == 0:

What are the dangers of crypto arbitrage?

Crypto arbitrage methods carry some danger with them and I’ll share the most notable ones with you:

High fees

It’s important to note that some exchanges not only charge withdrawal fees, but also charge fees for deposits. These fees can add up quickly, with some exchanges charging as much as $20 per deposit.


Many crypto arbitrage opportunities are fleeting, as the markets are constantly fluctuating and adjusting. If the market conditions change while you are executing a crypto arbitrage, it can often result in a loss.


When engaging in crypto arbitrage, it is important to be mindful of the coins and exchanges you are trading with. Attempting to sell delisted coins with low volume can result in being stuck and losing a significant amount of your initial investment. Additionally, even if a coin has volume, it may not be suitable for your desired buying and selling prices, and it is crucial to consider the exchange’s depth, as it may not be as reliable as it appears.

Transaction issues

Technical glitches and bugs on exchanges can cause unexpected issues, such as overloads, withdrawal problems, crashes, and wallet issues, which can disrupt the arbitrage process that relies on speed and efficiency.

Latest articles


Related articles

Leave a reply

Please enter your comment!
Please enter your name here