El mapa de liquidaciones que tienes en el gráfico no mide lo que crees

Dos hallazgos incómodos sobre los indicadores de niveles de liquidación: no observan posiciones reales, y el mapa que dibujan no se puede backtestear.


Artículo 1 de Ventaja Mecánica III. Las dos temporadas anteriores iban de un bot en Polymarket que pasó de 80 $ a 9 $. Esta cambia de mercado: hay una creencia muy repetida sobre Bitcoin, seis años de datos públicos, y un intento honesto de comprobarla. Spoiler: no se sostiene, y el camino hasta averiguarlo es más interesante que la conclusión.


Lo has oído mil veces, y probablemente lo has dicho: el precio va a cazar liquidaciones. Que Bitcoin se mueve entre pools de liquidez. Que los grandes saben dónde está apalancada la gente y empujan el precio hacia allí, porque ahí hay liquidez garantizada esperando.

Es una idea con buena pinta. Tiene mecanismo, las liquidaciones son órdenes forzadas de mercado, así que sí hay liquidez de verdad en esos niveles, tiene culpables, y encima tiene herramienta: los mapas de calor de liquidaciones y los indicadores que te pintan las líneas en el gráfico.

Yo tenía uno puesto. Un indicador de TradingView, sobre el perpetuo BTC/USDT de Binance, con el filtro en 10 BTC para que solo saliesen las posiciones gordas. Y quería contestar tres preguntas encadenadas:

  1. ¿Esto define de verdad los movimientos?
  2. Si es que sí, ¿cuánto?
  3. ¿Se podría montar una calculadora que devuelva dirección y probabilidad?

Antes de poder contestar ninguna, me topé con dos cosas que no esperaba. Este artículo va de esas dos.

Hallazgo 1: nadie está observando posiciones reales

Fui a buscar el indicador. Y lo primero: con ese nombre hay dos, de autores distintos. Ninguno de los dos publica el código: los dos están marcados como protected. Puedes usarlos, no puedes leerlos.

Eso ya es un problema. Si vas a construir una estrategia sobre la salida de un programa, y no puedes ver qué hace ese programa, estás midiendo una caja negra. Pero lo interesante vino al leer la descripción que el propio autor de uno de ellos publica.

Traducido a lo esencial: el indicador calcula las posiciones nuevas a partir del interés abierto y dibuja dónde se liquidarían suponiendo unos niveles de apalancamiento — 100x, 50x, 25x.

Léelo otra vez, porque es la parte que importa.

No hay ninguna observación de posiciones reales. No existe. Ningún exchange publica dónde tiene cada trader su precio de liquidación — eso es información de cuentas individuales, y no sale de ahí. Lo único público es el agregado: cuántos contratos hay abiertos en total, momento a momento.

Así que lo que ves en el gráfico es una inferencia: cuando el interés abierto sube, alguien ha abierto posición; se supone que la abrió al precio de ese momento; se supone que iba a 25x, o a 50x, o a 100x; y de ahí se deduce a qué precio reventaría.

Puede que sea una inferencia útil. De hecho hay un argumento serio a favor: si mucha gente mira el mismo mapa aproximado, el mapa mueve el precio aunque sea aproximado. La profecía se autocumple. Pero es un mecanismo distinto del que cuenta la creencia popular, y conviene no confundirlos.

Lo que no puedes hacer es decir «hay 40 millones a punto de liquidarse en 62.500» como si eso fuera un dato observado. Es una estimación con tres supuestos encadenados dentro:

  1. Que el aumento de interés abierto son posiciones especulativas nuevas — y no una cobertura, o una pata de un arbitraje de basis que no va a liquidarse nunca.
  2. Que se abrieron a ese precio, en esa vela.
  3. Que van a ese apalancamiento, que es un número que ha elegido el autor del script.

Cada uno por separado es razonable. Encadenados, el margen de error se multiplica. Y la frase honesta —»si esas posiciones fueran a 50x y se hubieran abierto aquí, reventarían por ahí»— tiene bastante menos épica que la del hilo de Twitter.

Hay una versión de la creencia que sobrevive a esto, y es la interesante: da igual que la estimación sea mala, mientras todos miren la misma estimación mala. Si medio mercado tiene el mismo indicador abierto y opera hacia esas líneas, las líneas mueven el precio por su cuenta, sin necesidad de que haya nadie realmente liquidándose ahí. Es un mecanismo distinto —reflexividad, no liquidez— pero predice más o menos lo mismo, así que la prueba empírica vale para los dos.

Hallazgo 2: el mapa no tiene histórico, y eso te impide backtestearlo

Vale, pensé: pues me traigo el histórico del mapa y lo pruebo contra lo que hizo el precio después. Es lo primero que haría cualquiera.

Fui a la API de Coinglass, que es de donde salen la mayoría de estos mapas. Tiene dos endpoints que suenan intercambiables y no lo son en absoluto:

Parámetros¿Puedes pedir una fecha pasada?
liquidation-heatmap — el mapaexchangesymbolrangeNo. range solo admite ventanas que terminan ahora: 12h, 24h, 3d, 7d, 30d, 90d, 180d, 1y
liquidation-history — lo ya ocurridoexchangesymbolintervalstart_timeend_time

El mapa no tiene start_time. No existe forma de preguntar cómo se veía el 3 de marzo a las 14:00. Solo puedes pedir «los últimos N días vistos desde hoy».

Y esa distinción es la que decide si puedes hacer un backtest honesto o no.

Para que un backtest valga, necesitas el mapa tal y como se veía en el instante t. Si usas un mapa recalculado hoy, estás metiendo información del futuro en una decisión del pasado. Es el look-ahead clásico, y produce resultados preciosos y completamente falsos.

De paso, el precio: el endpoint del mapa exige el plan Professional, 699 $ al mes. Y ojo con la letra pequeña de la profundidad histórica, que va por plan: el de 29 $ te da seis días de histórico en intervalo de un minuto. Que un endpoint acepte fechas no significa que tenga años detrás.

Entonces, ¿esto se puede investigar o no?

Aquí es donde estuve a punto de tomar la decisión equivocada. Mi conclusión inicial fue: si no hay histórico del mapa, hay que empezar a grabarlo hacia delante y esperar meses a tener muestra.

Es un salto injustificado, y me lo señalaron: tenemos años de información en internet, ¿cómo vamos a ponernos a recolectar datos y esperar semanas?

Tenía razón, y el error de razonamiento merece nombrarse porque es fácil de cometer:

Lo que no tiene histórico es el mapa ya masticado por un proveedor. El dato crudo del que se deriva sí lo tiene.

Si el mapa no es más que interés abierto más un supuesto de apalancamiento, entonces con interés abierto histórico en crudo puedes reconstruirlo hacia atrás tú mismo. Y reconstruirlo en cada instante t usando solo datos anteriores a t no es look-ahead: es exactamente lo que hay que hacer.

Eso arregla los dos problemas de golpe. Deja de ser una caja negra, porque el cálculo es tuyo y los supuestos están escritos. Y deja de costar 699 $ al mes.

Solo falta una cosa: que exista ese interés abierto histórico, con suficiente resolución y suficientes años.

Existe. Está gratis, no hace falta ni clave de API, y llega hasta septiembre de 2020 con dato cada cinco minutos. Lo cuento en el siguiente artículo, porque tiene un detalle divertido: está en un sitio que la propia documentación de Binance no menciona.

Deja un comentario