Skip to content
Tous les guides sur les options et contrats à terme
Échantillonnage événementiel des marchés financiers10 min de lecture

Filtre CUSUM : l’échantillonnage des événements financiers expliqué

Découvrez comment CUSUM cumule les rendements logarithmiques pour sélectionner des événements, choisir le seuil et éviter les biais temporels et les fuites de données.

Dans ce guideCe que sélectionne le filtre CUSUM

Bref résumé

Le filtre CUSUM cumule de petits rendements logarithmiques dans deux trajectoires distinctes, l’une positive et l’autre négative, puis marque un événement dès que l’une dépasse un seuil défini. Il sélectionne ainsi des moments de mouvement cumulé suffisant au lieu d’échantillonner chaque barre temporelle. Le filtre choisit le moment de l’événement, mais ne prédit pas sa direction, ne crée pas à lui seul une étiquette d’apprentissage et ne garantit ni stabilité, ni liquidité, ni profit.

Ce que sélectionne le filtre CUSUM

Un échantillonnage à chaque clôture quotidienne peut accorder trop de place à des observations calmes et répétitives, tandis qu’une comparaison ponctuelle du prix brut peut se déclencher plusieurs fois quand le cours oscille près d’un niveau. CUSUM additionne les écarts successifs séparément à la hausse et à la baisse. Il enregistre un nouvel instant seulement lorsqu’un mouvement suffisant s’est accumulé depuis la dernière remise à zéro.

López de Prado présente le filtre symétrique dans le chapitre 2 d’Advances in Financial Machine Learning, consacré à l’échantillonnage événementiel. La documentation de filtrage de mlfinpy décrit son usage pour sélectionner des instants avant de mesurer les rendements ultérieurs. Le principe est antérieur à son application financière : les travaux de Page sur les schémas d’inspection continue étudient l’accumulation des écarts pour repérer un changement persistant.

Mettre à jour les deux cumuls

À partir de cours de clôture positifs P, calculez le rendement logarithmique rₜ = ln(Pₜ/Pₜ₋₁). Mettez ensuite à jour un cumul positif et un cumul négatif :

$$S^+_t = max(0, S^+_{t-1} + r_t)$$ $$S^-_t = min(0, S^-_{t-1} + r_t)$$

Dans ce guide, un événement est marqué lorsque S⁺>h ou S⁻<−h. Le cumul qui a déclenché l’événement est remis à zéro, tandis que l’autre continue d’évoluer avec les rendements suivants. Un nouveau mouvement peut alors s’accumuler. h doit être strictement positive et exprimée en unités de rendement logarithmique. Par exemple, h=0,005 correspond à environ un demi-point de pourcentage de mouvement logarithmique cumulé, et non à une variation de prix fixe à chaque barre.

Le texte explicatif de la bibliothèque évoque l’atteinte du seuil, alors que le code publié teste strictement S⁺>h ou S⁻<−h et remet à zéro le cumul déclencheur. Consultez l’implémentation CUSUM de mlfinpy. Le choix entre > et ≥ en cas d’égalité exacte est donc une convention d’implémentation à documenter, pas une divergence de principe. La règle de remise à zéro et l’ordre des vérifications peuvent aussi varier selon la version utilisée.

Exemple hypothétique : le déclenchement du filtre

Supposons les clôtures suivantes : 100,00 → 100,20 → 100,40 → 100,60 → 100,40 → 100,20 → 100,00, avec h=0,005 en unités de rendement logarithmique. Sur la hausse, le mouvement cumulé de 100,00 à 100,60 vaut ln(100,60/100,00)=0,005982, soit environ 0,598 %. À la clôture de 100,60, il dépasse le seuil et marque un événement haussier ; le cumul positif est alors remis à zéro.

Sur le parcours inverse, de 100,60 à 100,00, le cumul vaut ln(100,00/100,60)=−0,005982. Il passe sous −0,005 et déclenche un autre événement à la clôture de 100,00. Ces valeurs sont uniquement illustratives : elles ne proviennent pas du marché et ne représentent pas des prix d’exécution. En pratique, la clôture n’est connue qu’une fois la barre terminée. Une évaluation de trading doit respecter l’heure de disponibilité du signal et retenir un prix d’exécution ultérieur plausible.

Choisir un seuil fixe ou dynamique

Un seuil fixe h est simple à expliquer et à reproduire. Il peut toutefois générer beaucoup d’événements pendant une période calme et peu pendant une période très volatile. On peut aussi faire varier hₜ à partir d’une estimation glissante de la volatilité ou d’une autre mesure. Cette estimation doit être causale : elle ne peut utiliser que les données disponibles au moment de la décision. Évitez les fenêtres centrées et les valeurs révisées à l’aide d’observations futures.

Avec un seuil dynamique, précisez ses unités, son alignement temporel avec rₜ et la conduite à tenir si l’estimation de volatilité manque. L’adaptation ne rend pas automatiquement les événements comparables : l’estimation choisie change leur fréquence selon les régimes de marché. Documentez la longueur de fenêtre, le traitement des valeurs absentes et le fait que le cours de clôture courant soit ou non disponible lors du calcul du seuil.

Arbitrer entre bruit et nombre d’événements

Un seuil plus bas détecte plus tôt les mouvements cumulés, mais augmente le nombre d’événements et peut rendre l’échantillon sensible au bruit à court terme. Un seuil plus haut écarte davantage de petites variations, mais peut retarder ou manquer des mouvements utiles à l’étude. Il n’existe pas de valeur optimale universelle. Choisissez h selon la question de recherche, examinez le nombre et la distribution temporelle des événements, et ne l’ajustez pas en observant les performances de l’échantillon de test final.

Le nombre d’événements CUSUM n’est pas censé égaler celui des barres temporelles. De nombreuses barres peuvent passer sans événement ; après une remise à zéro, une nouvelle séquence de mouvements peut en déclencher un autre peu après. Ces intervalles inégaux sont voulus. Si les variables ou le modèle supposent des pas de temps réguliers, représentez explicitement le temps écoulé ou utilisez une structure adaptée au lieu de considérer chaque ligne événementielle comme une durée identique.

Distinguer filtrage, test de stabilité et étiquetage

CUSUM désigne plusieurs méthodes. Le filtre présenté ici cumule les rendements logarithmiques des prix et applique un seuil opérationnel pour sélectionner les temps d’échantillonnage. Un test CUSUM économétrique examine plutôt des résidus récursifs ou une statistique apparentée afin de tester la stabilité des paramètres d’une régression selon un modèle, une distribution de référence et des limites critiques déterminés. Le seuil h du filtre n’est pas une valeur critique de test. Voir le guide du test CUSUM de stabilité de régression et des résidus récursifs.

Sélectionner le début d’un événement ne revient pas à étiqueter son résultat. CUSUM choisit quand commencer ; une règle distincte mesure ensuite ce qui arrive. Avec la méthode des barrières triples, par exemple, le résultat dépend de la première barrière de prix ou de temps atteinte. Voir le guide des barrières triples et de l’étiquetage des événements financiers. Le filtre ne prédit donc pas la direction future, n’attribue pas y et ne garantit ni stationnarité, ni liquidité, ni rentabilité.

Respecter l’horodatage et évaluer avec réalisme

Avec des rendements de clôture, l’événement n’est confirmé qu’à la clôture de la barre, pas à son ouverture. Si une variable utilise le cours de clôture courant, il ne faut pas supposer qu’il était connu avant sa formation. Définissez le moment de calcul des variables, celui où un ordre pourrait être envoyé et le prix ultérieur retenu pour simuler l’exécution. Générer un signal à la clôture et supposer une transaction au même cours peut introduire un biais temporel.

Le rendement logarithmique requiert des prix positifs. Si une série contient zéro ou une valeur négative, ln(Pₜ/Pₜ₋₁) n’est pas défini sous sa forme habituelle ; cela peut concerner certains contrats ou certaines séries transformées. Vérifiez les sauts de prix, les opérations sur titres, les changements d’échéance des contrats à terme, les observations manquantes et les fuseaux horaires. Indiquez la source des cours, la fréquence, le calendrier de marché et le traitement des données absentes.

Si un résultat est mesuré sur un horizon futur fixe, les fenêtres de plusieurs événements peuvent se chevaucher. Conservez leurs horodatages et utilisez une validation chronologique ou tenant compte de ces chevauchements, plutôt qu’un découpage aléatoire des lignes. Intégrez le spread, les commissions, le slippage, le financement ou l’emprunt et l’impact de marché si la cible doit être négociable. Un échantillonnage plus structuré ne prouve pas à lui seul l’existence d’un signal ou d’un profit.

Questions fréquentes

Q1Le filtre CUSUM prédit-il la prochaine direction du marché ?

Non. Il détecte un événement après un mouvement cumulé à la hausse ou à la baisse, mais ne prédit pas la suite. Une prévision exige une cible, des variables et une évaluation distinctes.

Q2Le seuil doit-il être fixe ?

Non. Il peut être fixe ou varier dans le temps. S’il est dynamique, l’estimation doit reposer sur les informations disponibles au moment de la décision ; ses unités et son alignement temporel doivent être documentés.

Q3Chaque événement CUSUM est-il une occasion de trading ?

Non. Un événement marque un échantillon ou le début d’une mesure ultérieure. Liquidité, spread, coûts, exécution et résultats hors échantillon sont des questions séparées.

Sources et lectures complémentaires

Signaler un problème

Nous préparons un e-mail avec le lien de cet article. Mark ne reçoit le signalement qu’après son envoi

Vérification rapide

Guide terminé ? Vérifiez vos acquis avec 3 questions

Question 1 / 3

Question 01

Dans ce guide, quelle condition marque un événement ?

Choisissez une réponse pour voir l'explication

Glossaire des options