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. Whenever 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 in turn she trades for 12 almonds.

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

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

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

A couple of essential things 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 located it must be executed quickly or you will be left by having 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 start to erode the profitability of those trades (we'll examine this directly inside our code)

There's another key thing to understand about arbitrage trades but we'll enter into that after we've covered more details…

Broken triangles?

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

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

Each Binance REST API call takes at the least 200ms, according to where we are located (where your code is running). Binance servers can be found in Japan. A limit 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. Obviously there might 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 go now.

Comments