Filtro CUSUM explicado: muestreo de eventos financieros
Aprende cómo CUSUM acumula rendimientos logarítmicos para seleccionar eventos, cómo fijar el umbral y cómo evitar sesgos temporales y fugas de información.
En esta guíaQué selecciona el filtro CUSUM
Resumen breve
El filtro CUSUM acumula pequeños rendimientos logarítmicos en dos recorridos separados, uno positivo y otro negativo, y registra un evento cuando uno supera un umbral definido. Así selecciona momentos de movimiento acumulado suficiente en lugar de tomar una muestra en cada barra temporal. El filtro solo determina cuándo empieza un evento: no predice la dirección, no asigna por sí mismo una etiqueta de entrenamiento y no garantiza estabilidad, liquidez ni rentabilidad.
Qué selecciona el filtro CUSUM
Tomar una muestra en cada cierre diario puede dar demasiado peso a observaciones tranquilas y repetidas, mientras que una comparación puntual del precio bruto puede dispararse varias veces cuando el precio ronda un nivel. CUSUM acumula desviaciones consecutivas por separado, hacia arriba y hacia abajo, y registra un nuevo instante solo cuando se ha reunido suficiente movimiento desde el último reinicio.
López de Prado presenta el filtro simétrico como parte del muestreo basado en eventos en el capítulo 2 de Advances in Financial Machine Learning. La documentación de filtrado de mlfinpy explica cómo seleccionar instantes de eventos antes de medir rendimientos posteriores. La idea antecede a su aplicación financiera: el trabajo de Page sobre esquemas de inspección continua estudia la acumulación de desviaciones para detectar cambios persistentes.
Actualizar los dos acumuladores
A partir de precios de cierre positivos P, calcula el rendimiento logarítmico rₜ = ln(Pₜ/Pₜ₋₁). Después actualiza un acumulador positivo y otro negativo:
$$S^+_t = max(0, S^+_{t-1} + r_t)$$ $$S^-_t = min(0, S^-_{t-1} + r_t)$$
En esta guía se registra un evento cuando S⁺>h o S⁻<−h. Se reinicia a cero el acumulador que disparó el evento, mientras que el otro continúa con las observaciones siguientes. Así, un nuevo recorrido puede empezar a acumularse tras el reinicio. h debe ser positiva y estar expresada en unidades de rendimiento logarítmico. Por ejemplo, h=0,005 equivale aproximadamente a medio punto porcentual de movimiento logarítmico acumulado, no a un importe fijo de cambio del precio en cada barra.
El texto explicativo de la biblioteca habla de alcanzar el umbral, mientras que el código publicado comprueba las condiciones estrictas S⁺>h o S⁻<−h y reinicia el acumulador que cruza el límite. Consulta la implementación del filtro CUSUM en mlfinpy. Por tanto, decidir entre > y ≥ cuando el valor coincide exactamente con el umbral es una convención de implementación que se debe documentar, no un desacuerdo sobre la idea central. La lógica de reinicio y el orden de las comprobaciones también pueden variar según la versión.
Ejemplo hipotético: cuándo se activa el filtro
Supongamos estos cierres: 100,00 → 100,20 → 100,40 → 100,60 → 100,40 → 100,20 → 100,00, con h=0,005 unidades de rendimiento logarítmico. En el tramo alcista, el movimiento acumulado de 100,00 a 100,60 es ln(100,60/100,00)=0,005982, aproximadamente un 0,598 %. Al cierre de 100,60 supera el umbral y se registra un evento alcista; el acumulador positivo vuelve entonces a cero.
Después, el recorrido de 100,60 a 100,00 acumula ln(100,00/100,60)=−0,005982. Al cierre de 100,00 queda por debajo de −0,005 y se registra otro evento. Son valores ilustrativos, no datos observados del mercado ni precios a los que se pudiera ejecutar una operación. En la práctica, el cierre solo se conoce cuando termina la barra; una evaluación de negociación debe respetar el momento en que se conoce la señal y usar un precio de ejecución posterior plausible.
Umbral fijo o umbral dinámico
Un umbral fijo h es fácil de explicar y reproducir, aunque puede generar muchos eventos durante un régimen de baja volatilidad y pocos durante uno de alta volatilidad. Como alternativa, hₜ puede variar según una estimación móvil de volatilidad u otra medida. Esa estimación debe ser causal: solo puede usar datos que ya estaban disponibles en el momento de decisión. Evita ventanas centradas y estimaciones revisadas con observaciones futuras.
Con un umbral dinámico, documenta sus unidades, cómo se alinea con rₜ y qué ocurre cuando faltan datos de volatilidad. Adaptar el umbral no vuelve automáticamente comparables los eventos: la estimación elegida también cambia la frecuencia de muestreo entre regímenes. Especifica la longitud de la ventana, el tratamiento de valores ausentes y si el cierre actual ya estaba disponible cuando se calcula el umbral.
Equilibrar el número de eventos y el ruido
Un umbral menor detecta antes los movimientos acumulados, pero aumenta el número de eventos y puede volver la muestra sensible al ruido de corto plazo. Uno mayor filtra más variaciones pequeñas, aunque puede omitir o retrasar movimientos relevantes. No existe un valor universalmente óptimo. Elige h según la pregunta de investigación, examina la cantidad y distribución temporal de los eventos y evita ajustarlo mirando el conjunto de prueba final.
El número de eventos CUSUM no tiene por qué coincidir con el número de barras temporales. Pueden pasar muchas barras sin evento; tras un reinicio, una nueva racha de movimiento también puede activar otro evento poco después. Esos intervalos desiguales son intencionados. Si las características o el modelo presuponen pasos de tiempo iguales, incorpora explícitamente el tiempo transcurrido o usa una estructura adecuada, en vez de tratar cada fila de evento como si durara lo mismo.
No confundir muestreo, estabilidad y etiquetado
CUSUM se refiere a métodos distintos. Este filtro acumula rendimientos logarítmicos del precio y usa un umbral operativo para seleccionar instantes de muestreo. En cambio, una prueba CUSUM econométrica analiza residuos recursivos u otro estadístico relacionado para evaluar la estabilidad de los parámetros de regresión con una distribución de referencia y límites críticos específicos. El umbral h del filtro no es un valor crítico de esa prueba. Consulta la guía de la prueba CUSUM de estabilidad de regresión y residuos recursivos.
Seleccionar el inicio de un evento tampoco equivale a etiquetar su resultado. CUSUM elige cuándo comienza la observación; otra regla puede medir lo que sucede después. En el método de las triple barrera, por ejemplo, el resultado se define por la primera barrera de precio o de tiempo que se alcanza. Consulta la guía del método de las triple barrera y el etiquetado de eventos financieros. El filtro por sí solo no predice la dirección, no asigna y ni garantiza estacionariedad, liquidez o beneficio.
Respetar la hora de la señal y validar con realismo
Con rendimientos de cierres diarios, el evento se confirma al cierre de la barra, no al principio. Si una característica usa el cierre actual, no se puede suponer que ese precio se conocía antes. Define cuándo se calculan las características y cuándo se podría enviar una orden; para evaluar una estrategia, usa una ejecución posterior coherente. Generar la señal con el cierre y atribuir una operación a ese mismo cierre puede introducir un sesgo temporal.
Los rendimientos logarítmicos requieren precios positivos. Si una serie incluye valores cero o negativos, ln(Pₜ/Pₜ₋₁) no está definido en su forma habitual; esto importa para algunos contratos y series transformadas. Revisa saltos de precio, ajustes corporativos, cambios de contrato en futuros, observaciones ausentes y zonas horarias. Registra la fuente del precio, la frecuencia, el calendario de negociación y el tratamiento de datos faltantes.
Si luego mides un resultado en un horizonte fijo, los intervalos de distintos eventos pueden solaparse. Conserva las horas de los eventos y usa validación cronológica o consciente de esos solapamientos, en vez de repartir filas al azar. Incluye diferencial entre compra y venta, comisiones, deslizamiento, financiación o préstamo e impacto de mercado si el resultado pretende ser negociable. Un muestreo más estructurado no demuestra por sí mismo que haya una señal predictiva o beneficios.
Preguntas frecuentes
Q1¿El filtro CUSUM predice la siguiente dirección del mercado?
No. Detecta un evento después de un movimiento acumulado ascendente o descendente, pero no anticipa qué ocurrirá a continuación. La predicción requiere un objetivo, características y una evaluación separados.
Q2¿El umbral tiene que ser fijo?
No. Puede ser fijo o variar en el tiempo. Si es dinámico, la estimación debe usar solo información disponible en el momento de decisión, y conviene documentar sus unidades y alineación temporal.
Q3¿Todo evento CUSUM es una oportunidad de negociación?
No. Un evento marca una muestra o el inicio de una medición posterior. La liquidez, el diferencial, los costes, la ejecución y el rendimiento fuera de muestra son cuestiones independientes.
Fuentes
Informar de un problema
Prepararemos un correo con el enlace de este artículo. Mark recibirá el aviso cuando lo envíes
Comprobación rápida
¿Ya leíste la guía? Compruébalo con 3 preguntas
Pregunta 01
¿Qué condición activa un evento según esta guía?
Elige una respuesta para ver la explicación
Glosario de opciones
Posición de la IV actual entre el mínimo y máximo del periodo; un solo valor extremo puede distorsionarla, por lo que no conviene usarla como señal aislada
Leer la guía detalladaPercentil de IVPorcentaje de observaciones de un periodo que quedan por debajo de la IV actual; depende de la serie, ventana y tratamiento de ausencias y extremos
Leer la guía detalladaVIXMedida de volatilidad esperada constante a 30 días del S&P 500 calculada con precios de opciones SPX; no es la IV de una acción o contrato individual
Leer la guía detallada