Filtro CUSUM: amostragem de eventos nos mercados financeiros
Entenda como o filtro CUSUM simétrico transforma retornos logarítmicos em horários de eventos, como escolher limiares fixos ou dinâmicos e como evitar look-ahead.
Neste guiaQual pergunta o filtro CUSUM responde
Resumo breve
O filtro CUSUM registra o instante em que desvios consecutivos e na mesma direção dos retornos logarítmicos acumulam além de um limiar. O resultado são horários de eventos para montar uma amostra, não uma previsão da direção dos preços, um rótulo de resultado ou uma garantia de que o mercado seja estacionário.
Qual pergunta o filtro CUSUM responde
Quando um modelo recebe uma linha para cada pregão, períodos sem mudanças relevantes podem dominar a amostra. O filtro CUSUM oferece uma regra para selecionar os momentos em que movimentos na mesma direção se acumularam o suficiente. Todos os retornos continuam sendo examinados; apenas os candles que atendem à condição são registrados como eventos. Aqui, “filtro” significa selecionar horários de observação, não gerar um sinal de compra ou venda.
A ideia da soma cumulativa (CUSUM) vem do monitoramento estatístico sequencial. E. S. Page discute esquemas de inspeção contínua em seu artigo de 1954. Para dados financeiros, o capítulo 2 de Advances in Financial Machine Learning situa a amostragem na construção de estruturas de dados. A documentação do mlfinpy descreve o filtro CUSUM simétrico para selecionar candles acionados por movimentos acumulados.
Calcule duas somas a partir dos retornos logarítmicos
Para um preço de fechamento positivo (P_t), calcule o retorno logarítmico (r_t=\ln(P_t/P_{t-1})). O filtro mantém duas somas iniciadas em zero: uma positiva e uma negativa. As recorrências são S+_t = max(0, S+_(t-1) + r_t) e S-_t = min(0, S-_(t-1) + r_t). A soma positiva preserva o acúmulo acima de zero; a negativa, o acúmulo abaixo de zero.
Com um limiar simétrico (h>0), registre o instante (t) se S+_t > h ou S-_t < -h. Depois de um evento de alta, zere S+; após um evento de baixa, zere S-. Os próximos retornos continuam sendo processados. Isso é diferente de disparar apenas quando um retorno isolado ultrapassa o limiar: vários retornos pequenos com o mesmo sinal podem se acumular até gerar um evento.
A regra para a igualdade exata deve ser escolhida antes. O texto da documentação do mlfinpy descreve um acumulado que atinge ou ultrapassa o limiar, enquanto a implementação consultada usa comparações estritas > e <. Se (S=h) exatamente, as convenções divergem. Escolha e documente a regra de igualdade; o nome CUSUM, por si só, não define esse comportamento.
Acompanhe uma trajetória hipotética de preços
Suponha que os fechamentos sejam 100,00 → 100,20 → 100,40 → 100,60 → 100,40 → 100,20 → 100,00 e que (h=0,005) em unidades de retorno logarítmico, ou 0,5%. Os preços e resultados são apenas ilustrativos, não são dados de mercado nem preços de execução.
Durante a alta, a variação logarítmica acumulada de 100,00 até 100,60 é ln(100,60 / 100,00) = 0,005982, aproximadamente 0,598%. A soma positiva ultrapassa o limiar no fechamento de 100,60. Esse instante vira um evento de alta, e a soma positiva é zerada. Em seguida, o preço cai. Quando a trajetória retorna a 100,00, a soma logarítmica desde o reset é ln(100,00 / 100,60) = -0,005982. A soma negativa fica abaixo de -h, tornando 100,00 um evento de baixa.
Os dois eventos resultam da regra de amostragem. O primeiro não significa que o filtro prevê uma nova alta; o seguinte tampouco é uma recomendação de venda. Para conferir uma implementação, acompanhe os retornos e acumulados candle a candle e confirme que os horários seguem as regras escolhidas para limiar e reset.
Escolha um limiar compatível com a escala do mercado
Um limiar fixo é fácil de auditar: todo acumulado é comparado com o mesmo (h). Mas um movimento de 0,5% pode ser grande em um mercado tranquilo e comum em uma fase volátil. Um limiar dinâmico pode acompanhar a escala da volatilidade, por exemplo, h_t = k × σ_(t-1), em que (k) é um multiplicador escolhido e (sigma) é uma medida de volatilidade dos retornos.
Para evitar look-ahead, defina quando (sigma) fica disponível. Se a decisão de amostragem ocorre após o fechamento de (t), usar um limiar calculado com dados até (t-1) é uma escolha causal clara. Mantenha consistentes o estimador, a janela, a escala por candle ou anualizada e o tratamento de extremos e valores ausentes. Não escolha (k) apenas porque ele produz uma sequência histórica atraente; avalie-o fora da amostra.
Um limiar baixo demais gera muitos eventos, inclusive movimentos pequenos que podem desaparecer diante de ruído, spread, comissão e slippage. Um limiar alto demais gera poucos eventos e pode deixar passar movimentos relevantes. Não há valor universal. Compare o número de eventos, o intervalo entre eles, a estabilidade entre períodos e os custos posteriores para um conjunto razoável de parâmetros.
Mantenha preços e horários causais
O retorno logarítmico exige preços positivos. Um instrumento cujo preço pode chegar a zero ou ficar negativo não pode ser processado diretamente com o log do preço; retorno simples ou outra transformação altera a escala e o comportamento do filtro e deve ser definida e validada de novo. Confira também os ajustes de desdobramentos e dividendos. Um fechamento ajustado apenas por desdobramentos não é uma série de retorno total, e uma série contínua de futuros pode conter saltos de rolagem que não representam o movimento de um único contrato negociável.
Um evento acionado no fechamento só é conhecido depois que esse preço foi registrado. As variáveis do modelo podem usar informações realmente disponíveis naquele instante ou antes dele, mas o backtest não deve presumir uma execução no mesmo fechamento que acionou o evento, a menos que a regra de execução e os dados sustentem essa hipótese. Muitas vezes, a ordem é simulada depois do gatilho, incluindo spread, slippage, impacto de mercado, financiamento e comissão.
O filtro retorna horários de eventos; ele não torna toda a série igualmente espaçada. Candles sem eventos ainda podem ser necessários para variáveis baseadas em tempo, volatilidade e condições de mercado. Não aplique fórmulas que pressupõem intervalos iguais entre observações — como a anualização de estatísticas — sem conferir os intervalos reais e a definição do horizonte.
Separe amostragem, testes de estabilidade e rótulos
O mesmo nome pode designar procedimentos diferentes. O filtro CUSUM de preços desta explicação acumula retornos logarítmicos direcionais para selecionar eventos. Um teste econométrico, como o teste CUSUM de estabilidade da regressão e resíduos recursivos, examina padrões residuais em relação à hipótese de parâmetros estáveis; não é esta regra de amostragem de preços. Nenhum dos dois torna os dados ou o processo estacionários só porque um limite foi ultrapassado.
O filtro não define o alvo de aprendizado. Depois de selecionar o horário do evento, as variáveis devem usar apenas informações disponíveis naquele instante. O rótulo (y) é construído separadamente a partir de um resultado futuro, segundo uma regra explícita. O método triple-barrier para rotular eventos financeiros responde a outra pergunta: qual barreira é atingida primeiro depois do evento. O CUSUM não atribui esse rótulo automaticamente, não prevê a direção e não garante liquidez ou lucro.
Na validação, reconstrua cada limiar usando apenas os dados então disponíveis, preserve a ordem temporal e evite vazamento entre intervalos de rótulos sobrepostos. Avalie spread bid-ask, custos, funding, slippage, capacidade e atraso entre sinal e execução. Menos eventos não provam que a estratégia seja melhor; métricas e hipóteses de execução precisam corresponder à pergunta de implantação.
Perguntas frequentes
Q1O filtro CUSUM é igual ao teste CUSUM econométrico?
Não. Este filtro acumula retornos logarítmicos de preços para selecionar eventos. O teste CUSUM de regressão usa resíduos recursivos para avaliar a estabilidade do modelo segundo hipóteses e valores críticos próprios.
Q2Um limiar de 0,5% serve para todo mercado?
Não. A frequência de acionamento de um limiar fixo depende da volatilidade, frequência dos candles e instrumento. Compare limiares fixos e dinâmicos com informações disponíveis causalmente e avalie os custos posteriores.
Q3O horário CUSUM significa que uma ordem foi executada no fechamento?
Não. O horário só é conhecido quando o fechamento fica disponível. Simule o envio e a execução após o gatilho com dados e hipóteses de custo adequados.
Fontes e leituras adicionais
Relatar um problema
Vamos preparar um e-mail com o link deste artigo. Mark só receberá o relato depois que você enviar
Verificação rápida
Terminou o guia? Confira o que aprendeu com 3 perguntas
Pergunta 01
O que faz o filtro CUSUM registrar um candle como evento?
Escolha uma resposta para ver a explicação
Glossário de opções
The current IV's position between a lookback-period low and high; one outlier can distort it, so it should not be read as a standalone signal.
Ler o guia completoIV percentileThe percentage of observations in a lookback window below the current IV; the result depends on the data series, window, and treatment of missing or extreme values.
Ler o guia completoVIXA constant 30-day expected-volatility measure for the S&P 500 calculated from a strip of SPX option prices; it is not the IV of an individual stock or contract.
Ler o guia completo