Crypto Arbitrage 

Exploring the so-called ‘3-way arbitrage'trading strategy on Binance crypto currencies. Is this hype or is it profitable?

Exactly what a concept! Make 3 trades in rapid succession when you discover favorable exchange rates and voila! Profits in seconds and no experience of volatility.

How does this work?

Let's break this down using a ridiculously simple bartering scenario. Once we exchange one crypto-currency for another we're bartering or exchanging fungible assets.

Let's image the following scenario:

  • Jane has 10 almonds
  • Will has pineapples and will trade each for 5 almonds
  • Christine has mangoes and will trade evenly for a pineapple
  • Xavier has almonds and will trade 6 for each mango

So in this arbitrage opportunity, Jane trades 10 almonds for 2 pineapples, and these for 2 mangoes which in turn she trades for 12 almonds.

She has profited 2 almonds through these trades because of anomalies in the exchanges.

Above is exactly the same kind of 3-way arbitrage with crypto currencies.

What initially is apparently simple often is usually not.

A few essential things to see within the real-world of crypto markets:

  • price discrepancies between markets are anomalies, they need to be sniffed out deliberately
  • once an arbitrage opportunity is found it must be executed quickly or you will be left with an incomplete execution (1 or 2 trades as opposed to 3)
  • the trades must be done as a Limit-Order at the particular price identified in the arbitrage exploration (we'll try this out in a bit)
  • transaction fees will begin to erode the profitability of these trades (we'll examine this directly in our code)

There's another key thing to comprehend about arbitrage trades but we'll get into that once we've covered more details…

Broken triangles?

The information above proves a clue, because another line didn't show exactly the same arbitrage obtainable in 17:00:30 therefore it was gone.Had we initiated a trade for BTC it might have executed but then a trade for AR might not have. We can't be sure with only this information.

It is possible any particular one second later the USDT / BTC exchange was no longer offered by the limit price: BTC / USDT: 0.00002973 but go now that we have the BTC perhaps the residual 2 trades continue to be possible. We just cannot know this once we initiate the arbitrage exchange.

Each Binance REST API call takes no less than 200ms, depending on where we're located (where your code is running). Binance servers are observed in Japan. A control order (a ‘Taker') isn't instantaneous, it could take another 500ms+ to come back so our total time for 3 limit orders could realistically extend out to ~2secs. Needless to say there could be some inability to execute a limit order as specified for the reason that instant so there are many ways an arbitrage execution may fail to complete.

Comments