Crypto Arbitrage

Exploring the so-called ‘3-way arbitrage'trading strategy on Binance crypto currencies. Is this hype or can 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 experience of volatility.

How does this work?

Let's break this down utilizing a ridiculously simple bartering scenario. Once we exchange one crypto-currency for another we're 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 every 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 due to anomalies in the exchanges.

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

What initially is apparently simple often is generally not.

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

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

There's another key thing to understand about arbitrage trades but we'll enter into that when we've covered more details go deal now

Broken triangles?

The information above proves a touch, because another line didn't show the exact same arbitrage available in 17:00:30 therefore it was gone.Had we initiated a trade for BTC it could have executed but a trade for AR mightn't have. We can't make sure with only these details.

It's possible any particular one second later the USDT / BTC exchange was no more available at the limit price: BTC / USDT: 0.00002973 however now that we have the BTC perhaps the rest of the 2 trades continue to be possible. We simply cannot know this when we initiate the arbitrage exchange.

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

Comments