Definition of arbitrage
I guess that since for most cases cryptocurrencies have attracted us here, majority of you know what arbitrage is in economic terms, here is the definition for those of you who are not familiar with the idea:
Arbitrage is the simultaneous purchase and sale of an asset to profit from a difference 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.
It is not difficult to notice that for a given time prices of cryptocurrencies differ on various exchanges. I suspect that some of you have even tried to take an advantage of this condition by acting upon the following or similar scheme:
buy BTC on A -> sell BTC on B
Trading pair: BTC/USD
Where A, B: different exchanges
For: BTC/USD on A < BTC/USD on B
Transactions happen in time
You may find it surprising, but the above does not represent an instance of arbitrage.
When having a closer look at the definition provided, we see:
simultaneously resell this good or asset in another market
It seems that the very essence of arbitrage is to buy and sell the same asset simultaneously.
To understand the importance of the above statement, consider the following example:
buy BTC on A at t -> sell BTC on B at t+n
Where t is the time of the first transaction and n is the time between the first and the second trade.
Intuitively, we can conclude that with the increase of n increases the uncertainty as to the price of BTC on B.
Price relations between A and B
If there are differences in price between A and B we can assume two possible scenarios:
- Fixed price relation - for each t (BTC price on A < BTC price on B)
- Variable price relation - for some t (BTC price on A < BTC price on B)
Let us analyze the first possibility.
If the relation is constant, the price of BTC on B is always higher comparing to the price of BTC on A
Unfortunately, this does not mean that the following scheme always brings profit:
buy BTC on A at t -> sale BTC on B at t+n
Excluding transaction costs, the above generates profit only if:
BTC price on B at time t+n does not fall to or below BTC price on A at time t.
- BTC price on B at t+n matches price on A at t, the amount of USD after the trades does not change comparing to the amount prior to trades - we are break even (excluding fees)
- BTC price on B drops below BTC price A, the amount of USD after the trades lowers comparing to the amount prior to trades - we end up with a loss (excluding fees)
The above seems to implicate that the uncertainty of BTC price on B at t+n is the core problem of arbitrage.
We also see, that the degree of uncertainty is 0 for n=0, hence it looks like, in order to solve the above problem, both transactions must be performed at the same time.
The question is how to buy BTC on one exchange and sell it on a different one at the same time.
Different nature of the problem
Someone suggested the following idea.
Let us assume that the price relation is variable and we exclude fees.
We store the same amount of funds in USD and BTC on both exchanges.
When an arbitrage opportunity occurs we see that:
(BTC price on A > BTC price on B) or (BTC price on A < BTC price on B)
When one of the above happens, we are selling BTC on the the exchange where the price is higher and at the same time we are buying the exact amount of BTC sold on the exchange where the price is lower (we can do that, because as it was assumed on both exchanges we store the same amount of USD and BTC).
It might seem that such procedure allows to generate profit, because the amount of USD increases comparing to the quantity before the whole operation takes place.
There is still a problem however.
When waiting for an arbitrage opportunity, we store BTC on both exchanges and its value is susceptible to change over time.
In other words, using the method suggested, we are able to carry out the transactions at the same time (solves the problem of BTC value between the first and the second transaction), but we end up with a new problem of variable value of BTC stored while waiting for an arbitrage opportunity.
In the above example, we see that the overall issue boils down to the following question:
How to maintain a fixed BTC value between arbitrage opportunities and between buying and selling operations?
Some of you are probably familiar with the mechanism of leverage that is used when trading on FOREX.
In a nutshell, when using it, we borrow money for the purpose of increasing the investment capital. For example, if the leverage is 1:10, our investment is 1/10 of the amount we trade with. This is called margin trading.
After opening a position, whenever the price goes in the opposite direction to the direction of our trade (short/long) the temporary loss gets substracted from the margin (our initial investment prior to borrowing), therefore our position is active until we either close it or the loss reaches a certain limit expressed in % of the margin (such percentage is defined by broker).
Leverage in action
Let us say that we buy x amount of BTC and additionally (using other funds) open a short position with leverage 1:10, such that y is our margin and y * 10 = x
As a result:
- If BTC price increases over time by k%, the BTC we hold gain k% on value (in USD), while at the same time we have a loss of k% expressed in BTC on our short position.
- If BTC price drops over time by k%, the BTC we hold lose k% on value (in USD), while at the same time we gain the k% in value short position.
It would seem that the above is almost a perfect way to fix the BTC value in time (excluding fees).
The problem of margin deposit
Unfortunately, there is another problem, namely to open a margin position we need to have BTC (our y) that is the margin.
Since y is used to fix the value of x over time, nothing fixes the value of y over time and because of that we can still generate a loss due to the decrease in value of BTC that is our y.
The above problem can be solved by taking into account the fact that the margin amount must also be leveraged
We have to increase the value of y (that secures x) by j (that secures y) that j = 1/10y.
Of course, even if we do so, the value of j is now not fixed over time.
This problem goes to infinity.
The use of leverage allows to maintain a fixed BTC value over time because with each next step of calculating the required margin deposit, the value that must be fixed gets lower up to the point when it represents no significant impact on the overall outcome of an instance of arbitrage.
Assuming that the difference in prices is higher than the fees we must cover (leverage costs + exchange costs + margin value issue) the arbitrage is possible and carries a relatively low risk when using the model presented.