Analyse de Fourier du CAC 40 depuis mars 2003

L'analyse de Fourier est un outil mathématique puissant, couramment utilisé en traitement du signal (TV, télécoms, CDs et DVDs ...) et qui peut à l'occasion se révéler d'une aide précieuse dans l'étude des cours de Bourse lorsque les autres techniques sont prises en défaut (typiquement à cause d'une volatilité trop forte). Je vous propose de voir cela sur un exemple concret qui sera le CAC 40 depuis le 20 mars 2003 jusqu'à vendredi dernier. L'objet de l'étude est d'extrapoler la tendance sur les quelques jours à venir afin d'y voir un peu plus clair; on trouvera aussi un argument quantitatif pour répondre à la question "la correction actuelle est-elle similaire à celle de 2006 ?" déjà étudiée. Dans ce qui suit, il importe de retenir qu'aucune courbe ne correspond à une moyenne mobile!

Commencons par rappeler que l'analyse de Fourier s'applique à des signaux réguliers (comprendre "au moins continus") mais oscillants voire de moyenne nulle (c'est mieux mais pas indispensable) ou périodiques. L'objet est un peu comme en musique, d'identifier des fréquences fondamentales et harmoniques qui sont en quelque sorte des composants simples et essentiels, le reste pouvant etre considéré comme du "bruit" et donc négligé. Ce n'est pas tout à fait le cas des cours de Bourse, mais presque. Voyons pourquoi:

Soit I(t) la valeur positive de l'indice CAC40, la variable t représentant le temps mesuré en jours: nous décomposons I(t) en "tendance" et "fluctuations" selon la formule

pour tout t dans la durée étudiée, I(t)=T(t)+F(t)

avec T(t)=at+b une fonction affine représentant la tendance de fond, et F(t) une fonction inconnue mais oscillante au sein de laquelle on va chercher des fréquences remarquables.

Pour t choisi dans l'intervalle [20 mars 2003, 28 septembre 2007], un peu d'observation graphique nous permet de trouver T(t) sous la forme:

T(t)=3.2*t+2293.

La fluctuation F(t) est maintenant simple à calculer: on télécharge les 1162 jours de cotation sur son site préféré et l'on soustrait la tendance ci-dessus. On dit que l'on a "redressé" le signal.

Nous appliquons alors la Transformée de Fourier rapide (FFT) à F(t) afin de découvrir si certaines fréquences sont prépondérantes ou bien si le signal couvre tout le spectre: heureuse surprise, une dizaine de fréquences se distinguent! Ce calcul peut etre fait sur le package scientifique gratuit SciLab disponible ici (les intéressés peuvent me demander le code qui est très court). Parmi ces fréquences remarquables, on appelle "fondamental" le signal correspondant à la fréquence la plus basse, les suivantes sont les harmoniques. Clairement, les harmoniques les plus hautes apparaissent avec la volatilité (ceci fournit d'ailleurs une définition alternative de la volatilité des cours!).

Oscillcac On voit ci-contre la partie "redressée" du CAC 40 avec en surimpression le fondamental (en bleu), la première harmonique (en vert) et la somme des 5 suivantes (en bleu ciel): on distingue sans peine la période de grandes rotations de portefeuilles institutionnels (environ 500 jours), puis les ajustements de moindre importance (environ 200 jours). La volatilité augmente sensiblement avec le temps puisque le signal bleu ciel est très faible en 2003-2004. Observons finalement comment le fondamental et la première harmonique sont placées differemment en mai-juin 2006 et actuellement! Ceci répond à la question de la similitude des corrections.

Maintenant, pour extrapoler et ainsi effectuer une prévision à court terme, nous pouvons reconstruire une approximation de l'indice I(t) à l'aide d'une fonction J(t) obtenue comme suit:

J(t)=T(t)+fondamental+5 harmoniques.

Prev_cac Le choix de 5 harmoniques est arbitraire, cela dépend du seuil de complexité que l'on s'accorde, mais si F(t) est correctement décomposée alors peu d'harmoniques suffisent. L'interet est que J(t) est connue pour des temps t supérieurs au 28 septembre 2007: bien sur, J(t) n'est qu'une approximation reposant sur la décomposition de Fourier. On voit le résultat à gauche pour la semaine prochaine en bleu foncé (le noir correspondant au CAC 40 exact).

Critiques et limites du modèle: cette technique se base sur une décomposition "affine + somme de fonctions périodiques" de l'indice boursier. C'est un postulat qui, bien qu'arbitraire, n'est pas déraisonnable puisque les prix de nos warrants sont calculés à partir d'une décomposition "affine + marche aléatoire gaussienne" et la particularité d'un processus gaussien (ou "bruit blanc") est de "charger" une infinité de fréquences de Fourier. Ici, on travaille sur un cas particulier ou seul quelques fréquences sont prises en compte (c'est pourquoi J(t) n'est qu'une approximation).

Si l'ETE est validée et le CAC 40 baisse dans les semaines à venir, cela ne signifie pas que cette analyse de Fourier soit fausse. En effet, nous avons supposé tout au long du raisonnement que la tendance T(t) restait valable: si cette tendance est cassée, il devient nécessaire de recommencer une nouvelle analyse avec la nouvelle tendance et les résultats seront évidemment différents. En d'autres termes, les humains gardent le controle!

Remarque finale: les interventions de la FED ne perturbent pas le fondamental et la première harmonique. Cela signifie sans doute que ce genre de calcul est fait par nos banquiers centraux afin d'intervenir dans les "creux" des tendances lourdes des indices et pas à contre-courant ... de cette facon, ils augmentent leurs chances de succès.

 

22 Commentaires

  1. 1

    Philippe Ferreira

    L'application des méthodes quantitatives dans ce forum est intéressante. Cette façon de décomposer composante structurelle et cyclique me rappelle le filtre Hodrick Prescott que les économistes utilisent pour analyser les variables macroéconomiques.

  2. 2

    Laurent Gosse

    Il peut exister un catalogue de filtres de ce genre, qui vont répondre chacun à une facon de traiter le terme fluctuant F(t). Celui que tu indiques est expliqué ici:

    http://en.wikipedia.org/wiki/Hodrick-Prescott_filter

    La difference est que l'on travaille sur le logarithme de I(t), ce qui fait que la partie linéaire ressemble à ce qu'on appelle une "bulle speculative" (le tracer sur un plotter pour etre bien sur). Le reste est approché par un terme en dérivée seconde au carré, ce qui est caractéristique du bruit blanc.

  3. 3

    yann

    Trop de math tue les math.

    C'est bien d'utiliser de l'analyse de Fourrier en traitement du signal, de l'image ou en électronique, mais j'ai de sérieux doute quand à l'efficacité de tel méthode pour l'anticipation conjoncturel. N'est-ce pas la une méthode pour se rassurer, plutot qu'une méthode réellement prédictive. Qui plus est l'application d'analyse de fourrier et de la stochastique ne nécessitent-elles pas d'avoir un signal ergodique pour être applicable? Vous le dite vous même vous mettez comme hypothèse que le bruit du marché est un bruit blanc, c'est hautement irréaliste.

    De grand penseur et mathématicien comme Keynes se sont cassé les dents en essayant d'anticiper les variations du marché, ils n'y sont jamais parvenues. De plus vous savez trés bien qu'une telle méthode si elle existait serait immédiatement prise en défaut par l'application des raisonnement par anticipation, le fait que les acteurs du marché connaissent une tel méthode fausserait immédiatement leurs actions et rendrait la théorie caduc.

    Il faut s'y faire nul ne peut vraiment prévoir les affaires futur, tout juste peut on se dire que demain ressemblera PROBABLEMENT beaucoup à aujourd'hui mais qu'il tout aussi probable qu'il en aille autrement....

  4. 4

    Laurent Gosse

    "vous mettez comme hypothèse que le bruit du marché est un bruit blanc, c'est hautement irréaliste"

    En fait dans le cas traité ici, non. Si vous prenez le CAC 40 sur ces 4 ans et demi, que vous otez la tendance T(t), ainsi que le signal recomposé avec un fondamental et quelques harmoniques, vous obtenez VRAIMENT un bruit blanc.

    Pour le démontrer numériquement, c'est très simple: toujours avec SciLab, vous pouvez calculer l'auto-corrélation du signal restant. Et ce faisant, vous obtenez un pic en zéro puis une décroissance très rapide; ceci est la signature du bruit blanc en traitement du signal ...

    En fait, ceci constitue un critère pour choisir un peu plus rationnellement le nombre d'harmoniques à prendre en compte dans la reconstruction de J(t).

    Maintenant, je dirais que cette analyse ne me rassure pas du tout car je suis bear sur le CAC! :-) Pour ce qui est de l'ergodicité, j'admets cette hypothèse sans le dire, mais je ne crois sincèrement pas que cela ait une quelconque incidence sur le résultat. L'idée ici est plus d'aboutir à une décomposition un peu précise du type:

    I(t)=T(t)+FF(t)+BB(t)

    avec FF(t) la fluctuation exprimée en Fourier et BB(t) un bruit blanc restant supposé petit. On base la prévision sur les 2 premiers termes pour construire J(t) qui n'a qu'une valeur indicative ...

  5. 5

    Laurent Gosse

    Retour sur l'hypothese d'ergodicité pointée plus haut par Yann: celle-ci stipule que comme l'on n'observe qu'une portion finie d'un signal a priori infini (et apériodique), il faut supposer que cette réalisation finie contient TOUTE l'information fréquentielle disponible dans la version infinie originelle.

    Bon, c'est vrai que c'est central dans tout ce travail. Néanmoins, on n'a pas d'autre possibilité si l'on veut aller plus loin que la décomposition simple:

    I(t)=T(t)+PS(t)

    avec PS(t) un processus stochastique dépendant du temps t, voir http://fr.wikipedia.org/wiki/Processus_stochastique

    Maintenant, la vraie limitation de la méthode se trouve dans l'impossibilité de faire une vraie transformation de Fourier de F(t); numériquement la FFT introduit une certaine périodicité des signaux ... Là encore, comment faire autrement ?

  6. 6

    Lgib

    L'analyse de Fourier est un très bon outil d'ANALYSE. Vous avez montré de manière convaincante qu'il peut être utilisé pour lisser les courbes, "débruiter" les cours passés de façon plus rigoureuse que les moyennes mobiles par exemple.
    En revanche, pour la prévision, votre extrapolation ne vaut pas mieux que la lecture dans le marc de café.

  7. 7

  8. 8

  9. 9

    Anonyme

    "L'analyse de Fourier est un très bon outil d'ANALYSE."

    Je suis également d'accord. Cet un bon outil. Maintenant, de là en tirer un outil systématique d'aide à la décision, il y une limite que les Hedge Funds sont prêts à franchir...

  10. 10

    Jean-Christophe

    Laurent, puis-je avoir ton email pour te demander le code scilab stp ?

  11. 11

    Laurent Gosse

    Je pense mettre le code directement sur mon blog perso quand il sera "propre" (avec commentaires et plus lisible). Il faut savoir utiliser SciLab pour s'en servir.

    Par contre, je suis en train de voir si on peut remplacer l'étape Fourier par une étape Wavelets afin de faire disparaitre le probleme de la periodicite qui m'embete.

  12. 12

    Archimédiane

    Tous les intervenants devraient relire le livre que Benoît Mandelbrot a consacré au cours de la bourse, et où en substance il ne croit pas que des tendances soient décelables (que l'on voie ces courbes comme des fractales ou comme des phénomènes encore plus chaotiques).

  13. 13

    olivier

    Bonjour Laurent,

    je decouvre l'analyse technique, mais je suis en revanche plus au point sur les techniques de traitement du signal.
    Il me semble qu'il existe un moyen tres simple de verifier si cette technique d'analyse a du sens: realiser une etude retrospective sur le CAC et verifier la correlation entre l'extrapolation de Fourier et l'evolution reelle. As-tu essaye cela ?

    Olivier

  14. 14

    Laurent Gosse

    Au sujet de Mandelbrot, il faut savoir a quel niveau de complexité on se place: en toute generalité, il peut survenir que les tendances soient non-décelables. Dans ce cas, une analyse de Fourier donnerait un spectre completement rempli. Depuis 2003, nous avons une tendance très propre (j'ai analysé plus de 10 indices boursiers internationaux) et les fluctuations sont petites. Donc pour le chaos, c'est pas encore le cas!

    Par contre, il se produit autre chose: depuis janvier 2007 environ, les previsions Court-terme diffèrent des prévisions Long terme. Je vais surement poster là-dessus bientot car c'est interessant.

    La raison en est que la vieille tendance de 2003 semble partir en déliquescence.

  15. 15

    Laurent Gosse

    @Oliver: très bonne remarque, nous sommes d'accord là-dessus.

    Alors pour répondre à ta question, oui j'ai essayé. Et hors situation de crise genre printemps 2006, les prévisions sont bonnes. La raison est toujours celle avancée précédemment, à savoir que la droite de tendance est prépondérante dans l'évolution des indices. Je veux dire que les fluctuations F(t) sont cycliques et le bruit blanc BB(t) reste petit.

    Une autre facon de le dire (plus mathématique): si les fluctuations sont petites et regulières, on peut faire un prolongement par régularité au moyen de toutes les dérivées en "t" qu'on a à notre disposition.

    Cette régularité du signal apparait aussi en Fourier puisqu'à l'extrème, une fonction C-infini à une TdF à support compact (donc un nombre fini de frequences dans un calcul pratique FFT). Les cours de bourse sont a mi-chemin entre ce cas tres favorable et les fonctions Lipschitz: mon hypothèse ici est de dire que "c'est le bruit blanc qui est responsable de la perte de régulatité d'un signal assez propre" ...

    Je ne sais pas si c'est clair, tout ca ... :-)

  16. 16

    jennifer

    bonjour,
    je dois simuler un portefeuille de couverture composé d'une combi d'option (bull spread), et lui calculer la variance et la moyenne selon la fréquence de couverture... j'ai déjà pas mal avancé, mais j'ai du mal à comprendre comment on crée le vecteur "cours de l'actif" et comment on calcule la moy et variance sous scilab... De l''aide peut etre??? merci :)

  17. 17

    Laurent Gosse

    Jennifer: Ton message est un peu vague, mais à priori, voila 2 infos simples qui peuvent t'aider:

    1/ la moyenne d'un vecteur contenant une serie temporelle se calcule avec l'instruction "mean"

    2/ sa variance s'obtient avec "stdev"

    Pense à faire souvent "help" parce que l'aide en ligne ne tient pas le niveau de celle de matlab (malheureusement).

  18. 18

    Emmanuel Vallod

    Bonjour,

    Je viens de trouver votre article, et votre démarche est très proche de celle que j'applique, à l'exception d'un point, sur lequel vous pourrez peut-être m'éclairer.

    J'ai un signal de variance quotidienne du CAC40. A partir de ce signal je souhaite déduire une volatilité de long terme. Au préalable, je veux lisser le signal de variance pour atténuer l'amplitude de la variance au cours des périodes de crise et accentuer l'amplitude de la variance au cours des périodes d'accalmie.
    J'utilise donc une analyse de Fourier, et j'élimine les composantes fréquentielles qui ont une norme trop grande. J'en déduis ainsi une variance filtrée.
    Il me semble qu'en procédant ainsi je conserve uniquement la variance corrigée des tendances.

    Que pensez-vous de cette méthode de filtrage?

  19. 19

    Laurent Gosse

    Votre filtrage est un peu bizarre, au sens où (si j'ai bien compris), vous retirez les fréquences prépondérantes dans la décomposition fréquentielle. Vous moyennez donc le spectre "par le bas". Le problème, à mon sens, c'est que si vous obtenez un signal dont le spectre est pratiquement constant sur toutes les fréquences, eh bien il ressemblera diablement à un bruit blanc, c'est-à-dire une suite d'oscillations sans aucun contenu informationnel. Essayez de détailler plus ce que vous faites, parce que peut-etre n'ai-je vraiment pas du tout compris ...

  20. 20

    Emmanuel Vallod

    Vous avez bien compris, je moyenne en effet le spectre par le bas. Je pensais que cela permettait de s'affranchir fréquentiellement de la saisonnalité, et d'obtenir ainsi une variance corrigée. Mais cela devient effectivement gênant si l'on obtient un signal à spectre quasi constant, j'ai totalement omis ce point élémentaire.
    Cependant, je suis convaincu qu'un traitement fréquentiel du signal reste possible, et qu'il est préférable pour lisser la variance qu'un écrêtage temporel. Mais je ne vois plus bien comment procéder.

  21. 21

    Laurent Gosse

    Alors ok, je commence à piger. Ce que vous voulez faire, c'est obtenir une estimation un peu sophistiquée de la déviation standard (la volatilité historique, quoi) sur un indice boursier. Vous faites donc une FFT (après un detrending ?) du signal, et vous écrétez les fréquences très dominantes. Ce faisant, en supposant que vous ne detrendez pas, vous retirez à coup sur la tendance de fond, et les rotations saisonnières. Vous avez de bonnes chances d'obtenir ainsi un bruit blanc ou quelque chose d'approchant.


    Mais dans le cas où ce que vous cherchez est une estimation de la déviation standard historique des cours, ça n'est absolument pas gènant d'avoir un simili bruit blanc: je m'explique, si une fois otées les fréquences dominantes de la tendance et de la fluctuation, vous avez juste du bruit, alors il est complètement pertinent d'aller en chercher la variance (il devrait etre nécessairement de moyenne nulle, de toutes façons! l'avez-vous controlé ?).


    Cette variance vous donnera une idée de l'amplitude des oscillations aléatoires et sans signification particulière autour des "cotations significatives" (pour autant que ce concept soit bien défini, ce qui n'est pas évident puisque l'idée que les marchés soient efficients est en train d'etre abandonnée par tout le monde).


    D'une certaine façon, vous faites quelque chose de similaire à moi, mais en prenant les choses par le bout opposé.

  22. 22

    Emmanuel Vallod

    Merci pour ces explications qui me permettent de clarifier tout ça, je craignais hier que cette méthode soit incohérente.

    Effectivement, j'applique une FFT sans detrending au signal de variance, puis écrêtage des fréquences principales. Le signal que j'obtiens est bien de moyenne nulle et sa variance me donne un intervalle de fluctuations autour de la cotation significative(sous l'hypothèse d'efficience des marchés).

    En revanche je n'avais absolument pas pensé qu'il était possible de réaliser une prédiction du cours à partir d'une méthode d'analyse fréquentielle. J'avais conduit le raisonnement suivant : sélectionner un certain nombre d'harmoniques revient à appliquer un filtre réel au signal. En tant que système réel il est donc causal et ne peut pas permettre de prédire les valeurs futures. Passer par un filtre parfait est pour le coup une solution, mais cela ne devrait donner qu'une prédiction d'une tendance, fiable sous l'hypothèse que la volatilité de la volatilité est faible.

    Il me semble que cela correspond aux résultats que vous avez obtenus sur le CAC40 et dont vous parliez en Octobre 2007.

Ajoutez un commentaire

Merci de consulter notre charte de modération avant de poster votre commentaire.

elle ne sera pas publiée