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 propio de Blave de cambios de posicionamiento. Mide qué tan inusuales son el interés abierto (Open Interest, OI) y el volumen de los futuros perpetuos dentro del timeframe que elijas, frente al nivel habitual de la moneda. Tiene dos puntuaciones:
| Puntuación | Qué mira | Cómo leerla |
|---|---|---|
score_oi | Cambio del interés abierto dentro de la ventana | Positivo = el OI subió más de lo habitual en el periodo, normalmente un aumento neto; negativo = bajó más de lo habitual, normalmente una disminución neta |
score_volume | Volumen dentro de la ventana: el nivel de volumen, no su cambio | Positivo = más activo de lo habitual; negativo = más tranquilo de lo habitual, lo que no significa que el volumen esté bajando |
El valor no tiene límites: cerca de 0 es el nivel habitual, y cuanto mayor el valor absoluto, más inusual. Por encima de ±2 es poco frecuente y por encima de ±3, extremo, con la misma escala para todas las monedas; escanea tú mismo los umbrales con un backtest. En una moneda que lleva mucho tiempo sumando posiciones, sumar es lo habitual, así que el valor no se queda alto todo el tiempo. Las insignias de estado del Estudio de datos usan estos umbrales (con score_oi como ejemplo):
| Valor | Insignia en el Estudio de datos | Significado |
|---|---|---|
| ≥ +3 | Aumento excesivo | El OI sube mucho más de lo habitual, 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 | Más o menos como de costumbre |
| ≤ −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. Mira el total de todo el mercado y no ve cuentas individuales, así que no distingue si son unos pocos grandes jugadores o un montón de minoristas.
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 vuelve a lo habitual -> sin posición
return signalENTRY_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.0Esta 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 el tramo de tiempo de cambio de OI o de volumen que mira: 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 del Estudio de datos, 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) | La instantánea más reciente de todas las monedas: puntuación de OI en el eje horizontal y de volumen en el vertical, solo con las líneas del cero y sin clasificar cuadrantes. La mitad inferior significa volumen más tranquilo de lo habitual, no que el volumen esté bajando. |
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, usa Intensidad taker para ver con qué fuerza compraban y vendían los traders de forma agresiva en el mismo periodo y ayudarte a saber si hubo liquidaciones de por medio. |
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 | Significado |
|---|---|
up_prob | La probabilidad, estimada por el modelo, de que el precio haya subido 24 horas después. Es una estimación, no una tasa de acierto garantizada. |
avg_up_return /avg_down_return | La subida media cuando el precio subió 24 horas después y la caída media cuando bajó, 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 hay suficiente historial; con false, toma estos números solo como referencia. |
stat es una estimación, no una tasa de acierto. Valida cualquier umbral con tu propio backtest.