Skip to main content

Crypto Arbitrage 

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

Exactly what a concept! Make 3 trades in rapid succession when you will find favorable exchange rates and voila! Profits in seconds and no contact with volatility.

How does this work?

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

Let's image these 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 then she trades for 12 almonds.

She has profited 2 almonds through these trades as a result of anomalies in the exchanges.

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

What at first seems to be simple often is often not.

A couple of considerations to see in the real-world of crypto markets:

  • price discrepancies between markets are anomalies, they need to be sniffed out deliberately
  • once an arbitrage opportunity is located it must be executed rapidly or you will end up left by having 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 enter that after we've covered more details…

Broken triangles?

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

It is possible this one second later the USDT / BTC exchange was no more available at the limit price: BTC / USDT: 0.00002973 nevertheless go now that individuals have the BTC perhaps the remaining 2 trades remain possible. We simply cannot know this when we initiate the arbitrage exchange.

Each Binance REST API call takes no less than 200ms, according to where we are located (where your code is running). Binance servers are situated 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. Obviously there might be some inability to execute a limit order as specified in that instant so you'll find so many ways an arbitrage execution may fail to complete.

Comments