Índice de Calor de Perpetuos
Cómo se calculan el percentil por activo y el score global de peso igual, qué significan los contadores de amplitud, y hasta dónde llegan los datos.
Consulta el widget en vivo en /perpetuals/positioning.
Fuentes de datos
El Índice de Calor lee un único archivo aguas arriba: data/research/heat_index.json, escrito por el cron de PPI shadow-log en cada disparo horario a las :05 UTC. Ese mismo cron mantiene los archivos ppi_log.jsonl por activo. Así que el índice hereda a nivel de datos la cadencia de liquidación del PPI, un nuevo dato por liquidación de financiación de Binance. Eso son 8 horas para los seis activos originales y 4 horas para HYPE, aunque el FE haga polling cada cinco minutos.
El PPI en sí es un z-score móvil de 180 liquidaciones sobre las tasas de financiación USDT-M de Binance por activo. A 3 liquidaciones diarias eso son unos 60 días de contexto; HYPE liquida el doble de veces en Binance, así que sus 180 liquidaciones cubren unos 30 días. El shadow logger lleva capturada cada liquidación de Binance desde 2024-07-07 para los seis originales, 3 al día, lo que deja cada uno de esos logs en torno a 2.360 muestras a septiembre de 2026. El log de HYPE arranca a mediados de 2025, una vez que su propia historia de Binance llenó la ventana de 180 liquidaciones, y guarda unas 2.580 muestras a la cadencia más densa. Esos logs por activo son la distribución histórica contra la que se mapea el percentil.
Percentil por activo
Para cada activo cubierto el índice ranquea el valor actual del PPI contra el propio log de ese activo, que arranca el 2024-07-07 para los seis originales y a mediados de 2025 para HYPE. La fórmula es bisect_right directo: cuántas muestras históricas son menores o iguales al valor actual, dividido por el total y multiplicado por 100.
percentil_pct = bisect_right(sorted(historia), ppi_actual)
/ len(historia) × 100Un score de 92 en BTC significa que el funding-z de BTC de hoy está por encima del 92% de todos los funding-z de BTC observados desde 2024-07-07. Cada activo se gradúa contra su propia curva, así que un BTC 92 y un DOGE 12 en el mismo día son dos afirmaciones sobre posición-dentro-de-la-historia por activo, no que las tasas absolutas sean iguales.
Agregado global
El score de mercado es el promedio de peso igual de los siete PPI actuales por activo, mapeado al percentil del mismo agregado de peso igual computado históricamente sobre cada timestamp donde los siete activos tienen valor. Un activo entra en el agregado solo si tiene a la vez PPI actual y log; no hay sustitución por timestamp para el que falte, y la serie histórica es una intersección estricta.
HYPE le cuesta a esa ventana compartida por partida doble. Su log arranca a mediados de 2025, lo que trunca la intersección a esa fecha, y Binance lo liquida cada 4 horas frente a las 8 del resto, así que solo sus liquidaciones de 00:00 / 08:00 / 16:00 coinciden con las demás. La ventana compartida tiene unos 1.290 timestamps a septiembre de 2026, frente a unos 2.360 por activo en los seis originales. El payload publica ambas cifras: n_history para la ventana compartida y n_history_per_asset para la profundidad por activo.
agg_actual = mean([ppi.btc, ppi.eth, ppi.sol, ppi.bnb,
ppi.xrp, ppi.doge, ppi.hype])
agg_historico = [mean(ppi_por_activo(t)) for t in timestamps_compartidos]
pct_global = bisect_right(sorted(agg_historico), agg_actual)
/ len(agg_historico) × 100Peso igual, no peso por OI. BTC domina el open interest al rondar el 60% del OI total de perpetuos, así que un composite con peso por OI seguiría a BTC de cerca. El peso igual saca amplitud a la superficie. Cuando cinco de siete activos corren calientes juntos el score sube, aunque BTC solo no haya roto.
Contadores de amplitud
Junto al percentil global, el payload expone dos contadores: cuántos de los siete activos están actualmente en las bandas Hot o Euphoric, y cuántos están en Cold o Panic. El widget los renderiza como “1 de 7 perps en zona caliente”.
La amplitud separa un cambio amplio de régimen de una explosión de un solo activo. Score global 75 con breadth_hot=5 significa que la mayor parte del mercado está tibia a la vez. Score global 75 con breadth_hot=1 significa que un activo está en un extremo alto y está empujando el promedio él solo. Mismo número de portada, microestructura muy distinta.
Cacheo y frescura
El endpoint lee heat_index.json en cada petición y devuelve 503 si el archivo tiene más de dos horas. Más allá de ese plazo algo va mal aguas arriba (timer caído, cron de PPI fallando, disco lleno) y servir valores de calor obsoletos engañaría al FE más que un error honesto.
Cache-Control fija max-age de 5 minutos más stale-while-revalidate de 10 minutos, así un CDN puede absorber la mayor parte del tráfico sin servir nunca por encima de la edad real del archivo. El polling del FE coincide: refresco SWR cada cinco minutos. Como el archivo se actualiza cada hora, 11 de cada 12 peticiones de cliente devuelven bytes idénticos desde el CDN.
Limitaciones
- Descriptivo, no predictivo. Un Índice de Calor de 90 no predice un dump. Dice que las tasas de financiación actuales están en el 10% superior de las condiciones observadas en el período cubierto. La decisión recae en el lector.
- La ventana no cubre un ciclo completo de cripto. La fecha de inicio 2024-07-07 implica que la distribución histórica no incluye el bear 2018-2020, la manía de 2021, ni el contagio de 2022. El “percentil 99” de hoy es el percentil 99 de una muestra que no cubre todo el rango de comportamiento de financiación que ha producido cripto.
- BNB corre más estrecho que el resto. Medido en la publicación del 2026-05-21, el 58,7 % de los ciclos de BNB desde 2024-07-07 estaba en
Neutral, frente al 33-43 % en los otros cinco activos cubiertos entonces. Así que un percentil de 80 en BNB representa una desviación menor en términos absolutos de tasa que un percentil de 80 en BTC. El agregado de peso igual diluye esta asimetría pero no la arregla. HYPE entró después de esa medición y no está en la comparación. - El peso igual le da a DOGE el mismo voto que a BTC. Lectores con cabeza de capital deberían leer las barras por activo, no el composite, ya que el composite muestra amplitud y no exposición ponderada por capital.
- La financiación liquida en ciclo fijo, no continuamente. El valor de PPI que usa el Índice de Calor se actualiza con la financiación, así que el score puede quedarse sobre una cifra obsoleta hasta un intervalo de liquidación durante un movimiento rápido intra-ciclo: 8 horas en los seis originales, 4 en HYPE. El cron horario recoge la nueva liquidación dentro de una hora desde que imprime.
Versionado
Metodología versión v1.1.0, publicada el 2026-05-21, actualizada el 2026-09-02. Los cambios materiales en la ruta de cómputo (nueva ponderación, ajustes de umbral, entradas adicionales) suben la versión y actualizan dateModified en los datos estructurados de arriba. Las correcciones de redacción no.
v1.1.0 (2026-09-02): HYPE se sumó al agregado el 2026-07-20 como séptima entrada. Su log de PPI es más corto que el de los seis originales y Binance lo liquida el doble de veces, así que la ventana compartida detrás del percentil global queda hoy muy por debajo de la profundidad por activo. La sección del agregado detalla qué cuesta eso.
v1.0.0 (2026-05-21): lanzamiento inicial, seis activos.