Lee los saltos de interés abierto, evita el error más común y mira cómo la estrategia oficial lo usa a la inversa.
Un bloque grande se enciende en el mapa de calor del resumen. ¿Están las ballenas entrando en largo? Cazador de ballenas te dice qué tan inusual es el movimiento del interés abierto y del volumen. La dirección es otra pregunta, y ahí es donde más gente lo malinterpreta.
Cazador de ballenas (Whale Hunter, WH) es el indicador de cambios de posición de Blave. Suma el cambio de interés abierto (Open Interest, OI) y el volumen de 5 minutos de los perpetuos USDT-M de Binance dentro de la ventana que elijas (el timeframe) y convierte esa suma en un z-score frente a los últimos 30 días de la moneda. Tiene dos puntuaciones:
| Puntuación | Qué suma | Cómo leerla |
|---|---|---|
score_oi | Cambio neto del OI dentro de la ventana (en monedas) | Positivo = el cambio de OI superó el promedio de 30 días, normalmente un aumento neto. Negativo = por debajo del promedio, normalmente una disminución neta. |
score_volume | Volumen total dentro de la ventana (en monedas): un nivel de volumen, no un cambio de volumen | Positivo = más activo que los últimos 30 días. Negativo = más tranquilo que los últimos 30 días, no que el volumen esté cayendo. |
Al ser un z-score, el valor no tiene límites fijos y todas las monedas quedan en la misma escala. Pero "alto" siempre es relativo a los últimos 30 días de la propia moneda: si su OI crece de forma sostenida durante meses, su propio promedio lo absorbe. Las insignias de estado de Studio usan estos umbrales (ejemplo con score_oi):
| Valor | Insignia en Studio | Significado |
|---|---|---|
| ≥ +3 | Aumento excesivo | Aumento neto del OI muy por encima de lo normal en 30 días, un valor extremo |
| +2 ~ +3 | Aumento considerable | Aumento neto del OI claramente por encima de lo normal |
| +0.5 ~ +2 | Aumento | Aumento neto del OI por encima de lo normal |
| −0.5 ~ +0.5 | Sin etiqueta | En línea con lo normal de 30 días |
| ≤ −0.5 | Disminución / considerable / excesiva | Simétrico al lado positivo, con umbrales en −0.5, −2 y −3: el OI se cierra más rápido de lo normal |
El signo de Cazador de ballenas solo dice qué tan inusual es el movimiento de OI o volumen; no tiene dirección. Un OI en aumento significa que se abrieron posiciones nuevas, pero pueden ser largos o cortos. Para juzgar la dirección, vuelve al precio o combina WH con un indicador direccional como la concentración de tenedores.
La "ballena" del nombre es una metáfora. Los datos son el total del mercado de perpetuos de Binance: no hay cuentas individuales, no se distingue a unos pocos grandes operadores de una multitud de pequeños, y no incluye otros exchanges.
score_oi de 24h de BTC cae por debajo de −0.7 (el OI se cierra de forma inusualmente fuerte) y sale cuando se recupera por encima de 0.2. Solo largos. Backtest mostrado en la Biblioteca de estrategias de Blave (2023-01-01 a 2026-07-13, comisión de 0.05% por lado): rentabilidad total 268.17%, Sharpe 1.46, drawdown máximo −22.5%, prueba de significancia MCPT p = 0.005. En cambio, perseguir los bloques grandes no tiene hoy ninguna estrategia verificada detrás.De los tres usos siguientes, solo el primero corresponde a una estrategia oficial publicada que pasó los controles de la biblioteca. Los otros dos son esbozos de cómo combinar señales, sin backtest: verifica tú mismo cada umbral.
La lógica es sencilla. Cuando la disminución neta del OI en la ventana de 24h se vuelve inusual (score_oi < −0.7), una gran parte de las posiciones se cerró en ese periodo. La estrategia compra y queda fuera del mercado cuando la puntuación se recupera por encima de 0.2. Esta es la función de señales de la estrategia oficial btc_whale_1h:
ENTRY_TH = -0.7
EXIT_TH = 0.2
def compute_signals(df, entry_th=ENTRY_TH, exit_th=EXIT_TH):
# df['WH'] = score_oi de 24h de BTCUSDT, leído en cada vela de 1h
signal = pd.Series(np.nan, index=df.index)
signal[df['WH'] < entry_th] = 1.0 # OI cerrado de forma inusual -> largo
signal[df['WH'] > exit_th] = 0.0 # la puntuación se normaliza -> sin posición
return signal
ENTRY_TH = -0.7 y EXIT_TH = 0.2 salen de una meseta del escaneo de parámetros, no de una corazonada: los umbrales de entrada entre −1.3 y −0.6 y los de salida entre 0.0 y 0.3 quedan en la zona robusta, y el Sharpe de la meseta es 0.884 veces el del punto elegido.
Las alertas del sitio de Blave usan esta condición: cuando el score_oi y el score_volume de 1h superan ambos 2, la alerta dice que el interés abierto y el volumen subieron con fuerza. Sirve como filtro para encontrar monedas donde está pasando algo:
oi = fetch_whale_hunter(SYMBOL, INTERVAL, START, END, hdrs,
timeframe='1h', score_type='score_oi')
vol = fetch_whale_hunter(SYMBOL, INTERVAL, START, END, hdrs,
timeframe='1h', score_type='score_volume')
# ambas puntuaciones > 2: misma condición que la alerta del sitio
active = (oi['alpha'] > 2) & (vol['alpha'] > 2)
Esto es un filtro, no una señal de entrada: no da dirección y no tiene backtest. Para operarlo, añade al menos una comprobación direccional y haz tu propio backtest.
Como WH no tiene dirección, una combinación natural es dejar que responda "¿está pasando algo inusual?" y delegar la decisión de entrada en un indicador direccional, como la concentración de tenedores. La estructura de abajo es un esbozo; sustituye compute_direction_filter por tu propia condición:
wh_active = df['WH'] > 2 direction_ok = compute_direction_filter(df) # p. ej., una condición de concentración de tenedores signal = pd.Series(np.nan, index=df.index) signal[wh_active & direction_ok] = 1.0 signal[~wh_active] = 0.0
Esta combinación no tiene backtest y el umbral de 2 se toma prestado de la alerta del sitio. Escanea los parámetros y revisa el rendimiento después de comisiones antes de usarla.
WH tiene dos ajustes fáciles de confundir. El timeframe es la ventana en la que se suma el cambio de OI o el volumen: 15min, 1h, 4h, 8h, 24h o 3d, con 24h y score_oi por defecto. El intervalo de velas (de 5min a 1d en los gráficos de Studio, el interval de una estrategia) solo fija cada cuánto se lee el valor. La estrategia oficial lee la puntuación de ventana de 24h en velas de 1h.
| Timeframe | Qué cubre un valor | Notas |
|---|---|---|
15min / 1h | Cambio de OI o volumen en los últimos 15 minutos o 1 hora | Ventana corta: no reutilices los umbrales de 24h, escanéalos aparte |
4h / 8h | Cambio en las últimas 4 u 8 horas | Entre las ventanas cortas y la diaria; escanea tus propios umbrales |
24h | Cambio en las últimas 24 horas | Por defecto; la ventana que usa la estrategia BTC Cazador de ballenas inverso |
3d | Cambio en los últimos 3 días | La ventana más larga: una gran apertura de posiciones permanece en el valor durante 3 días |
Blave midió BTC, ETH y 1000PEPE de 2024-09 a 2026-09: con la ventana predeterminada de 24h, los percentiles 1 y 99 de la puntuación de OI rondan −2.6 y +3, con extremos de unos ±10. Cuanto más corta la ventana, más gruesas las colas: en 1h los extremos ya superan ±20. La puntuación de volumen está sesgada a la derecha (los valores negativos rara vez bajan de −2), así que no le apliques los umbrales simétricos de la puntuación de OI. Los umbrales no sirven entre configuraciones: vuelve a escanear cuando cambies el timeframe o la moneda. No lleves −0.7 a otra configuración.
| Página | Qué muestra |
|---|---|
| Resumen | Mapa de calor de bloques: cambia el timeframe y el cambio de OI o de volumen. Muestra las 30 monedas principales con valor mayor que 0, con el área del bloque proporcional al valor y de mayor a menor; el color es la variación de precio en la misma ventana. |
| Historial | Barras de WH de una moneda sobre el precio, con selectores de timeframe, tipo de puntuación e intervalo del gráfico, más el campo stat. |
| Dispersión (Pro) | Instantánea actual de todas las monedas: el eje x es la puntuación de OI y el eje y la de volumen, solo con líneas de cero y sin nombres de cuadrantes. La mitad inferior significa volumen más tranquilo que en los últimos 30 días, no que esté cayendo. |
Son ideas para combinar señales, no resultados verificados:
| Combinación | Para qué |
|---|---|
| WH + concentración de tenedores | WH encuentra monedas con cambios de posición inusuales; la concentración de tenedores ayuda a juzgar si esas posiciones se inclinan al largo o al corto. |
| WH + Intensidad taker | Cuando el OI cae con fuerza, revisa la Intensidad taker en la misma ventana para ver compras o ventas agresivas y ayudar a distinguir si hubo liquidaciones. |
El endpoint de la API es GET /whale_hunter/get_alpha, con symbol, period, timeframe (24h por defecto), score_type (score_oi o score_volume) y fechas de inicio y fin; en Blave Agent la función es fetch_whale_hunter. Solo devuelve velas cerradas. Sin fecha de inicio obtienes los últimos 365 días, y los rangos de más de 365 días se recortan. El historial empieza el 2021-12-01 (o en el listado de la moneda). La respuesta trae además un objeto stat que describe la lectura más reciente, y sus nombres no coinciden del todo con lo que calculan:
| Campo | Qué calcula en realidad |
|---|---|
up_prob | Una regresión logística entrenada con los últimos 365 días usa WH para predecir si el precio subirá o bajará 24h después y devuelve la probabilidad de subida. Los datos de entrenamiento incluyen el periodo actual, así que es una estimación dentro de la muestra, no una tasa de acierto fuera de la muestra. |
avg_up_return /avg_down_return | Rentabilidad media a 24h de todos los resultados al alza o a la baja de los últimos 365 días, sin distinguir el nivel de WH. |
exp_value | up_prob × avg_up_return + (1 − up_prob) × avg_down_return, en decimal, no en porcentaje. |
is_data_sufficient | Si los datos de la moneda empiezan hace más de 365 días, no si este nivel de lectura tiene suficientes muestras. |
stat es una estimación dentro de la muestra. Verifica cualquier umbral con tu propio backtest.