Arbitrage is the simultaneous purchase and sale of an asset to profit from a difference in the price [Investopedia]. A cryptocurrency arbitrage scheme could have for example the following steps:
- Trader chooses market places M_1, M_2, …, M_n to sign up to and trade in.
- Trader chooses cryptocurrencies C_1, C_2, …, C_k to trade in each exchange.
- In each exchange M_i, i = 1, …, n, trader buys each currency C_j, j = 1, …, k, with X USD. The required initial capital equals to n * k * X USD, e.g. having n = 20, k = 4 and X = 1000 USD, the initial capital should be at least to 80,000 USD.
This finishes the setup phase. The next two steps show how to exploit inconsistent prices:
- Whenever the value of the currency pair C_a / C_b in exchange M_i is more than in exchange M_j (after expenses), the trader simultaneously buys C_b with C_a in M_i and C_a with C_b in M_j (see figure 1).
- After the trades have completed, the trader evens out the accounts by sending the purchased C_b’s from M_i to M_j and C_a’s from M_j to M_i. Thus, without any market risk (assuming instantaneous successful execution of trades), the trader ends up having more currencies after the arbitrage than before it (see figure 1).
Figure 1: An example arbitrage between two exchanges and two currency pairs. The upper set of matrices contains exchange rates and lower set the amount of each currency the trader has on her accounts. In the leftmost set is the initial situation, in the central set the arbitrage result and in the rightmost set the situation after accounts have been balanced.
Overview of the problem
The resources required to set up the arbitrage scheme grow larger by each included exchange and currency. On the other hand, having too few exchanges or currencies included by the scheme causes the trader to miss too many arbitrage opportunities.
Therefore the trader must choose only some of the exchanges to participate in and currencies to trade. Many qualitative variables guide these selection processes e.g. trustworthiness and reliability of the exchange, trading volume and expenses, availability and usefulness of the coin etc.
A quantitative approach can help in the selection process but more than that it enables the trader to estimate and further maximize the number of arbitrage opportunities for a certain number of exchanges and/or coins (from a preselected set of exchanges and/or coins). In the next section we present the historical data required to perform such an analysis followed the analysis itself.
Description of the data
The data used in this analysis is gathered from CoinMarketCap between 2018-01-30 and 2018-07-29 with a few weeks pause in the middle of February (due to technical problems).
The observed data contains the USD based price of the last trade of each currency in each exchange gathered at five minute intervals. Thus not every trade is observed and some trades are observed more than once. Additionally, due to technical limitations, not all observations are gathered at the precisely same instant causing additional inconsistencies in the quoted prices. Finally, this approach does not consider the market depth nor the bid/ask spread, both of which can have a significant effect on the availability and usefulness of an arbitrage.
The data excludes all currency/exchange combinations where the previous 24 h volume does not exceed 1,000,000 USD. This way the most unreliable prices are ignored. An arbitrage is considered to exist if the difference in price exceeds 2 % (to either direction) and as such should be able to cover the expenses in most cases.
Results of analysis
On a typical day there exists some 500,000 arbitrage opportunities according the gathered data. Figure 2 shows the daily fluctuation in the number of opportunities. March and April form the low point in the observed data but since then the trend has been upwards with substantial daily variation.
Figure 2: Number of arbitrage opportunities observed per day. The data has a two week gap in the middle of February and a smaller one in May.
These opportunities occur in most of the exchanges, as Figure 3 shows. In fact, a trader needs sign up to 20 exchanges in order to cover half of the observed arbitrages.
Figure 3: Ratio of covered arbitrage opportunities as a function of number of exchanges participating in the arbitrage scheme.
During the observed time period the ranks of the ten exchanges with the most arbitrage opportunities have changed significantly. Comparing the first half of the period with the latter half, BCEX, CEX, DragonEX and Exrates have entered the list while the remaining six exchanges had their position altered by at least three ranks.
The currencies with most arbitrage opportunities are BTC, ETH and USDT with LTC as the runner-up. Of the traditional currencies, USD based pairs create most arbitrage opportunities.
Figure 4 shows how the number of included currencies affects the ratio of arbitrages the trader is able to cover. With only four currencies it is possible to cover half of the arbitrage opportunities and with ten currencies nearly 85 %.
Figure 4: Ratio of covered arbitrage opportunities as a function of number of currencies participating in the arbitrage scheme.
Conclusion
Cryptocurrency arbitrage opportunities are present and exploitable but spread out among several exchanges. This makes implementing an arbitrage scheme burdensome and non-trivial.
During the time period when the CoinMarketCap data was gathered, the ten exchanges with most arbitrage opportunities were OKEx, BCEX, Binance, CEX, Huobi, DragonEX, BtcTrade.im, Trade By Trade, HitBTC and Exrates. They covered 24 % of all observed arbitrage opportunities.
If the trader were to start arbitrage trading BTC, USDT, ETH and LTC in these ten exchanges she would cover barely 13 % of arbitrage opportunities. The number of exchanges needs to double to 20 in order to increase the cover to 25 %. With accounts in 50 exchanges each having a position in 10 currencies the trader is able to take advantage of 79 % of all observed price inconsistencies. The initial capital required by such setups are 80X and 500X, respectively, where X should be at least a few hundred USD to cover the expenses.
Arbitrage is nevertheless a risky business. The trader needs a fault tolerant automation for executing arbitrage trades simultaneously or risk the market moves against her in the meantime. Additionally, an exchange might be hacked or file for bankruptcy at any moment causing even more losses. Finally, picking a wrong coin can cause the trader to accumulate coins whose value diminish by time.
Alkuperäinen kirjoitus on julkaistu LinkedIn-palvelussa.