El arbitraje de criptos INTRA-exchange no funciona

Chopin
Hats off, a genius!
#1
Ojo no estoy hablando del arbitraje INTER-exchange donde compras en un exchange a un precio y lo transfieres a otro Exchange diferente donde lo vendes más caro.

Hablo del arbitraje INTRA-Exchange donde pasas por varias monedas hasta acabar en la inicial con algo de beneficio, aprovechando las supuestas diferencias de precios. Por ejemplo compras bitcoin con euros, el bitcoin lo conviertes a Ethereum por ejemplo, luego el Ethereum a euros, de tal forma que por cada euro que pagaste al principio de la cadena al final obtienes digamos 1.01€, es decir un 1% de beneficio. Supuestamente, si encuentras la oportunidad correcta, esto funciona y da beneficio.

Hay miles de bots en internet que te buscan posibles rutas entre criptomonedas y cuando la encuentran hacen automáticamente la secuencia de conversiones para generar el beneficio y sus creadores dicen que funcionan.

Me he puesto a mirarlo en detalle y me he dado cuenta de que todos los programas cometen el mismo fallo. Usan el “precio” estándar de cada par de criptomonedas para buscar las oportunidades de arbitraje, es decir, el “spot price”; y esto es un error porque ese no es el precio al que se hace la transacción.

El precio será el ask price cuando la conversión implique comprar un par y el bid price cuando la conversión implique vender un par.

El ask price siempre es mayor que bid price y el spot price está entre ambos, de tal manera que si compras bitcoin con euros, luego cambias el bitcoin a euros otra vez, vuelves a comprar bitcoin, vuelves a cambiar a euros otra vez y repites el ciclo, acabas perdiendo dinero aún cuando el precio “official” (spot price) no cambie.

El spot price es el que podemos ver en la web de cualquier Exchange. Cuando la web muestra que el precio del bitcoin es por ejemplo 9000€, ese es el spot price. Pero cuando vas a realizar la operación de comprar o vender, tu precio real no es ese, es el bid/ask price en ese momento (suponiendo que haces una market order).

Los bid/ask prices no los muestran las webs pero los puedes obtener con sus APIs.

Tenía curiosidad sobre esto así que me he currado un programa en Matlab que funciona con cuatro exchanges: Kraken, Coinbase, Binance y Bittrex. Me he mirado la API de los cuatro exchanges y he programado lo necesario para:

- Descargar la lista completa de criptomonedas en cada Exchange.

- Descargar la lista completa de pares disponibles para trading y sus precios bid/ask instantáneos, en tiempo real y de manera continua.

- Para cada conjunto de pares de criptomonedas y precios bid/ask en ese momento, construyó una matriz con los precios correctos de conversión. Esto es básicamente un grafo donde cada nodo es una criptomoneda y cada enlace es la tasa de conversión. El grafo es con direcciones ya que la conversión entre dos criptomonedas tiene una tasa de conversión diferente dependiendo de la dirección en la cual se haga la conversión. Además el grafo no está conectado completamente ya que no es posible cambiar entre cualquier par de criptomonedas.

- Para cada grafo uso el algoritmo de Bellman-Ford para encontrar la ruta de máximo beneficio entre la criptomoneda que elijo como origen y todas las demás criptomonedas y luego vuelvo a la criptomoneda de origen para cerrar el ciclo. Esto lo hago probando varias criptomonedas de origen.

- Una vez calculadas las tasas de conversión efectivas de cada ciclo, añado los fees que te descuenta el Exchange.

Pues bien, en todos los casos la tasa neta es siempre menor que uno, es decir, pierdes dinero. La mayor tasa posible es 1 y se obtiene quedándote en la criptomoneda de origen, es decir, no saltando de una a otra.

La existencia de spreads (diferencia entre bid y ask prices) y las fees del exchange hacen imposible que el arbitraje Intra-Exchange funcione. Sigo creyendo que existen ineficiencias que harían posible sacar beneficio de este tipo de trading pero el problema es que los exchanges no te permiten convertir entre dos criptomonedas cualesquiera, siempre tienes que pasar por una de las populares (BTC, ETH, etc) antes de poder cambiar a otra. Por ejemplo, no suele ser posible cambiar directamente de DASH a DAI o a LINK (por poner un ejemplo). Esto quiere decir que entre el 70% y el 90% de combinaciones de trading entre las criptomonedas existentes no están disponibles y esto básicamente elimina cualquier posibilidad de que el arbitraje Intra-Exchange funcione.

El caso es que hay bots comerciales que valen una pasta y que dicen hacer arbitraje intra-Exchange. Me da que es un sacacuartos pero si alguien ha conseguido sacar provecho del arbitraje intra-Exchange me da que ha sido causalidad por el cambio de precios durante el proceso y no por el arbitraje en sí.
blacked
ForoCoches: Miembro
#2
Como no tengas algún tipo rebate o retrocesion de comisiones el spread se come cualquier posible opción de arbitraje.

Y si existiese, los propios exchanges se aprovecharían y con sus enormes volúmenes a ti no te quedaría nada
← A Criptomonedas