@Eric/Takapoto
Etant donné l'énorme contribution de Takapoto sur Andlil je me permet de partager mon travail.
La méthode FHS nécessite de 1. mettre en place un process 2. Choisir/coder les fonctions appropriées 3. Savoir ce qu'on fait quand même (minimum de bagage en stats) et 4. Savoir où on veut aller avec ce type de modélisation
C’est un travail purement statistique. Sous R/Matlab cela se fait très facilement. Vous pouvez très probablement trouver des librairies toutes faites en VB6 ou dotnet. Voilà les étapes :
- Obtention de la série de prix cible (tick, 1 mn, 1H, daily...) à votre guise. Plus vous avez de points de données, plus cela prendra du temps, logique (toutes choses égales par ailleurs)
- Calcul des returns (arith ou log, log de préférence mais par expérience la diff est marginale)
- Vous sélectionnez un modèle autoregressif ("arima" par exemple sous Matlab) en incluant un modèle de variance (testez avec garch et ses dérivés comme egarch, etc...). Pourquoi ? Parceque vos rendements ne sont pas normaux, que les résidus tendent à être auto corrélés et avec des sauts de variances (voir garch). Le but est de reproduire à l'infini des trajectoires ayant les mêmes propriétés que votre série de
rendement
- Vous estimez ensuite les paramètres de ce modèle ("estimate" sous matlab)
- Maintenant que vous avez votre modèle, vous pouvez en extraire les séries résidus + variance ("infer" sous matlab)
- Ensuite vous allez standardiser vos résidus (std_res=res/sqrt(var)). Un petit test de JB pour s'assurer que la résultante est à peu prêt normale
- Vous êtes prêt pour simuler vos trajectoires. Vous avez besoin :
* Du modèle estimé
* d'un set de valeurs de départ (par exemple : dernière valeur return de la série + dernière valeur résidus série + dernière valeur résidus standardisé). FHS requiert en effet un point de départ. C'est un détail mais c'est bon à savoir
* définir un nombre de trial (exemple 500 simus)
* définir un horizon de temps pour la simu (exemple 1 an)
- Ensuite vous créez une matrice de n lignes (n résidus standardisés) * m colonnes (= nombre de trials)
- Vous bootstrapez cette matrice pour obtenir des résidus "bootstrappés". Sous matlab, fonction "unidrnd" avec en input taille série résidus + horizon + nb trials)
- Dernière étape : à partir de votre matrice de résidus bootstrappés, vous allez estimer une matrice de rendements qui aura n ligne de rendements simulés (horizon) * m colonnes (nbtrial)
Une fois que vous avez vos rendements, vous pouvez simuler une série de prix puis de bougies, d'indicateurs, etc...

.
Exemple ci-dessous avec le
SP500 en daily (300 jours, 500 trials).
Donc voilà, l'énorme avantage de cette méthode c'est de pouvoir simuler des trajectoires en conservant 1. Les propriétés statistiques de la série et 2. D'utiliser les résidus existants au sein de cette série. FHS tire donc des trajectoires de rendements sous contrainte de 1 et 2.
Conseil : en référence à ce que j'ai évoqué dans un précédent message : calcul matriciel indispensable et parallélisation conseillée.
En espérant vous avoir éclairé sur le sujet
N'hésitez pas.