Bonsoir à Toutes et Tous utilisateurs de GrapheAT Pro sur le site....je vous salue chaleureusement!
Voilà,comme je suis redescendu de mes vacances dans les Dolomites (coucou Foki!), et que je n'avais pas perdu complètement le "virus", je me suis décidé à poster un petit quelque chose dans la ligne de nos travaux passés.
J'ai découvert un article américain qui propose une approche intéressante, me semble-t-il, et qui reste à valider bien sûr: les bandes de Fong...
Source :
Regime-Switching Trading Bands Using A Historical Simulation Approach
By Ka Ying Timothy Fong, CFTe, MFTA
IFTA journal 2013 Edition (p 20-2727)
Une petite synthèse de l'article :
Après une "critique" des bandes de Bollinger, des enveloppes de moyennes mobiles, des bandes de Keltner et de Donchian, l'auteur aborde son système.
Il propose une approche nouvelle pour construire et utiliser trois outils originaux et complémentaires en trading :
1- Une simulation historique tout d’abord pour générer un système de bandes de sorte que la distribution empirique des prix puisse être capturée le mieux possible.
2- Un filtre d'autocorrélation ensuite pour ajouter aux bandes, un système qui confirme si le prix est en tendance ou oscillant en range.
3- Un filtre de confirmation enfinpour valider si les prix ont tendance à augmenter (ou diminuer) plutôt que de revenir à la moyenne.
Remarques :
On peut souligner la double originalité du travail de Fong, tout d’abord pour l’emploi très utile de l'autocorrélation si peu présente en analyse technique et ensuite pour la technique proposée par Fong pour construire des bandes qui ne préjugent aucunement que les cours suivent des processus gaussiens (cf les 95 % des cours dans les bandes de Bollinger construites avec 2 écarts-types).
1- Simulation historique par calcul de l’autocorrélation des clôtures.
Le moyen le plus direct, le plus intuitif aussi, qui élimine une reconnaissance cognitive pour apprécier si le prix est en tendance ou en range est d’utiliser le concept d'autocorrélation.
Un filtre d'autocorrélation, en utilisant les 10 derniers jours du cours de clôture sera construit pour déterminer si les cours sont en tendance ou non .
Le choix de 10 cours est plus sensible aux prix de clôture récents et cela préserve aussi le principe d'harmonicité développé par J.M. Hurst.
Il est possible aussi d'utiliser une fenêtre de temps plus courte si nécessaire (par exemple 5 jours au lieu de 10 jours) pour calculer l'autocorrélation afin de capturer pleinement tous les mouvements du titre. Voici la formule d'autocorrélation d’une série de prix P :
Où ;
P est le cours de clôture
h est le décalage d’autocorrélation (= 1 ici)
N estle nombre d'observations à prendre pour chaque point (= 10 ici)
P barre est le prix de clôture moyen sur la période d’observation (= somme des 10 clôtures précédentes et actuelle /10).
Interprétation de l’autocorrélation pour le trading.
Les transitions entre une tendance ascendante et une tendance descendante s’effectuent souvent par une zone de consolidation des prix plus ou moins longue. Lors de ces mouvements de consolidation, l'autocorrélation est négative en général.
Donc :
L'autocorrélation est positive lorsque les prix sont en tendance haussière ou baissière et
l'autocorrélation est négative lorsque les prix sont en range (ce qui annonce un signal d'inversion).
Si l'autocorrélation change de positif à négatif, lorsque le prix touche la bande inférieure de Fong ou la bande supérieure, cela indique que le prix peut être en cours de transition ou de consolidation et donc cela pourra donner des points d'entrée / sortie optimaux.
2- Calcul des bandes de Fong.
Le 5ème percentile des prix de clôture des derniers 20 jours en tout point de l’historique définira la bande de Fong supérieure en ce point et le 95ème percentile, la bande supérieure.
Un peu de théorie...
La valeur du percentile P d'un prix d’une série de données contenant n points ordonnés en une suite croissante, donc avec des valeurs telles que:
v1 ≤ v2 ≤ ... ≤ vn, est défini comme Vp.
Tout d'abord, pour calculer sa valeur il nous faut déterminer quel est le rang du percentile P.
Il est calculé comme suit:
où le rang est décomposé en un entier i et une composante décimale d telle que leur somme est égale au rang.
Ensuite, la valeur Vp du percentile P sera calculée comme suit:
Comme dit plus haut, la bande inférieure de Fong (L) sera calculée comme le 5ème percentile et la bande supérieure (U) sera calculée comme étant le 95e percentile de la série des derniers 20 cours de de clôtures qui sont classés dans un ordre ascendant tel que p1≤p2≤ ... ≤ p20.
En utilisant le concept de percentile, la bande inférieure et la bande supérieure sur un jour donné seront calculées simplement comme suit:
3- Règle du « swing filter ».
Un filtre de swing de 2 % validera une entrée en position.
Par exemple, lorsque les prix évoluent en tendance baissière vers la bande inférieure, on ne déclenchera un signal d'achat légitime si, le prix étant dans un régime oscillant (c'est-à-dire avec une autocorrélation négative), la règle du « swing filter de x% » confirme que les prix sont retournés à la hausse de plus de x%.
Je poste aussi deux graphes tirées de l’article de Fong pour résumer la méthode de trading qu ‘il propose :
4- Résultats empiriques
L’auteur procède ensuite à une comparaison des performances obtenues avec les bandes de Bollinger et les bandes de Fong sur 3 produits boursiers avec un net avantage aux bandes de Fong…selon lui...
Il fait alterner les positions courtes et longues en utilisant des signaux d'achat et de vente légitiment générés par les bandes en respectant le critère d’autocorrélation et celui du « swing filter de X % »
Plus précisément et comme indiqué dans la section précédente, un signal d'achat est généré lorsque les conditions suivantes sont rencontrés dans l'ordre:
1) Le prix de clôture un jour donné devient inférieur ou égal à la bande inférieure,
2) L’autocorrélation est négative ou proche de zéro,
3) Le filtre de swing est déclenché lorsque tout changement de pourcentage sur un seul jour, ainsi que tous les changements quotidiens consécutifs, dépasse le seuil x%. Le seuil du filtre de swing est fixé à 2%.
4) Un signal d'achat légitime est généré et le trader initiera une position longue au prix d'ouverture le lendemain.
De même, un signal de vente sera généré lorsque les conditions suivantes sont en séquence:
1) Le cours de clôture sur un jour particulier devient supérieur ou égal à la bande supérieure,
2) L'estimation de l'autocorrélation est négative ou proche de zéro,
3) Le « swing filter » est déclenché lorsque tout changement de pourcentage sur un seul jour, ainsi que tous les changements quotidiens consécutifs, dépasse le x% seuil. Le seuil du filtre de swing est fixé à 2%.
4) Un signal de vente légitime est généré et le trader initiera une position courte au prix d'ouverture sur le lendemain.
Vous pouvez vous reporter à l’article de Fong pour plus de détails si ce thême vous intéresse.
Il me reste à vous proposer les programme pour GrapheAT Pro de l’autocorrélation et celui des bandes de Fong...puis il restera à valider (ou invalider la méthode proposée.
PROGRAMMES ;
Fong_Autocorrelation
//=================
//Fong_Autocorrelation
//v 1.0
//smallcaps90
//24/07/2018
//================
Moy = Moyenne(Cloture,P1) //P1=10 recommandé
Si RangHisto>=FinHisto-P2
Alors
S_Num = 0
S_Den = 0
i = 0
TantQue i<P1-1 Faire //de t=0 à t=8
Num(i) = (Cloture(i)-Moy)*(Cloture(i+1)-Moy)
Den(i) = (Cloture(i)-Moy)^2
S_Num = S_Num+Num(i)
S_Den = S_Den+Den(i)
i = i+1
FinTantQue
S_Den = S_Den + (Cloture(9)-Moy)^2
r = S_Num/S_Den
FinSi
//test de vraisemblance de Bartlett
//
BT1=1.96/racine(P1)
BT2=-BT1
//Fin du code
Fenêtre Propriétés :
Bandes de Fong
//==============
//Bandes de Fong
//v1.0
//smallcaps90
//25/07/2018
//==============
//==================
//1 Trier de la liste L à chaque période dans l'ordre croissant
//(méthode de Shell)
//
// Recopier les P1 clôtures à trier à chaque période
//
k=0
TantQue k<P1 Faire
L(k)=cloture(k)
k=k+1
FinTantQue
//Trier les P1=20 cours précédents du cours actuel
//y compris celui-ci dans l'ordre croissant
// par la méthode de Shell
pas=0
TantQue pas<P1 Faire
pas=3*pas+1
FinTantQue
TantQue pas>=1 Faire
i=pas
TantQue i<P1 Faire
val=L(i)
j=i
TantQue (j>pas-1 ET L(j-pas)>val) Faire
L(j)=L(j-pas)
j=j-pas
FinTantQue
L(j)=val
i=i+1
FinTantQue
pas=(pas-1)/3
FinTantQue
//2 Calculs des bandes de Fong
//
Bande_Basse = L(0) + 0.95*(L(1)-L(0))
Bande_Haute = L(18) + 0.05*(L(19)-L(18))
//Fin du code
Fenêtre Propriétés
Un exemple :
Comparativement voici la même valeur avec des bandes de Bollinger(20,2) en superposition (en noir sur le graphe ci-dessous) :
Voilà pour ce soir...
Il nous reste à expérimenter la méthode de Fong...
Cordialement.
Voilà,comme je suis redescendu de mes vacances dans les Dolomites (coucou Foki!), et que je n'avais pas perdu complètement le "virus", je me suis décidé à poster un petit quelque chose dans la ligne de nos travaux passés.
J'ai découvert un article américain qui propose une approche intéressante, me semble-t-il, et qui reste à valider bien sûr: les bandes de Fong...
Source :
Regime-Switching Trading Bands Using A Historical Simulation Approach
By Ka Ying Timothy Fong, CFTe, MFTA
IFTA journal 2013 Edition (p 20-2727)
Une petite synthèse de l'article :
Après une "critique" des bandes de Bollinger, des enveloppes de moyennes mobiles, des bandes de Keltner et de Donchian, l'auteur aborde son système.
Il propose une approche nouvelle pour construire et utiliser trois outils originaux et complémentaires en trading :
1- Une simulation historique tout d’abord pour générer un système de bandes de sorte que la distribution empirique des prix puisse être capturée le mieux possible.
2- Un filtre d'autocorrélation ensuite pour ajouter aux bandes, un système qui confirme si le prix est en tendance ou oscillant en range.
3- Un filtre de confirmation enfinpour valider si les prix ont tendance à augmenter (ou diminuer) plutôt que de revenir à la moyenne.
Remarques :
On peut souligner la double originalité du travail de Fong, tout d’abord pour l’emploi très utile de l'autocorrélation si peu présente en analyse technique et ensuite pour la technique proposée par Fong pour construire des bandes qui ne préjugent aucunement que les cours suivent des processus gaussiens (cf les 95 % des cours dans les bandes de Bollinger construites avec 2 écarts-types).
1- Simulation historique par calcul de l’autocorrélation des clôtures.
Le moyen le plus direct, le plus intuitif aussi, qui élimine une reconnaissance cognitive pour apprécier si le prix est en tendance ou en range est d’utiliser le concept d'autocorrélation.
Un filtre d'autocorrélation, en utilisant les 10 derniers jours du cours de clôture sera construit pour déterminer si les cours sont en tendance ou non .
Le choix de 10 cours est plus sensible aux prix de clôture récents et cela préserve aussi le principe d'harmonicité développé par J.M. Hurst.
Il est possible aussi d'utiliser une fenêtre de temps plus courte si nécessaire (par exemple 5 jours au lieu de 10 jours) pour calculer l'autocorrélation afin de capturer pleinement tous les mouvements du titre. Voici la formule d'autocorrélation d’une série de prix P :
Où ;
P est le cours de clôture
h est le décalage d’autocorrélation (= 1 ici)
N estle nombre d'observations à prendre pour chaque point (= 10 ici)
P barre est le prix de clôture moyen sur la période d’observation (= somme des 10 clôtures précédentes et actuelle /10).
Interprétation de l’autocorrélation pour le trading.
Les transitions entre une tendance ascendante et une tendance descendante s’effectuent souvent par une zone de consolidation des prix plus ou moins longue. Lors de ces mouvements de consolidation, l'autocorrélation est négative en général.
Donc :
L'autocorrélation est positive lorsque les prix sont en tendance haussière ou baissière et
l'autocorrélation est négative lorsque les prix sont en range (ce qui annonce un signal d'inversion).
Si l'autocorrélation change de positif à négatif, lorsque le prix touche la bande inférieure de Fong ou la bande supérieure, cela indique que le prix peut être en cours de transition ou de consolidation et donc cela pourra donner des points d'entrée / sortie optimaux.
2- Calcul des bandes de Fong.
Le 5ème percentile des prix de clôture des derniers 20 jours en tout point de l’historique définira la bande de Fong supérieure en ce point et le 95ème percentile, la bande supérieure.
Un peu de théorie...
La valeur du percentile P d'un prix d’une série de données contenant n points ordonnés en une suite croissante, donc avec des valeurs telles que:
v1 ≤ v2 ≤ ... ≤ vn, est défini comme Vp.
Tout d'abord, pour calculer sa valeur il nous faut déterminer quel est le rang du percentile P.
Il est calculé comme suit:
où le rang est décomposé en un entier i et une composante décimale d telle que leur somme est égale au rang.
Ensuite, la valeur Vp du percentile P sera calculée comme suit:
Comme dit plus haut, la bande inférieure de Fong (L) sera calculée comme le 5ème percentile et la bande supérieure (U) sera calculée comme étant le 95e percentile de la série des derniers 20 cours de de clôtures qui sont classés dans un ordre ascendant tel que p1≤p2≤ ... ≤ p20.
En utilisant le concept de percentile, la bande inférieure et la bande supérieure sur un jour donné seront calculées simplement comme suit:
3- Règle du « swing filter ».
Un filtre de swing de 2 % validera une entrée en position.
Par exemple, lorsque les prix évoluent en tendance baissière vers la bande inférieure, on ne déclenchera un signal d'achat légitime si, le prix étant dans un régime oscillant (c'est-à-dire avec une autocorrélation négative), la règle du « swing filter de x% » confirme que les prix sont retournés à la hausse de plus de x%.
Je poste aussi deux graphes tirées de l’article de Fong pour résumer la méthode de trading qu ‘il propose :
4- Résultats empiriques
L’auteur procède ensuite à une comparaison des performances obtenues avec les bandes de Bollinger et les bandes de Fong sur 3 produits boursiers avec un net avantage aux bandes de Fong…selon lui...
Il fait alterner les positions courtes et longues en utilisant des signaux d'achat et de vente légitiment générés par les bandes en respectant le critère d’autocorrélation et celui du « swing filter de X % »
Plus précisément et comme indiqué dans la section précédente, un signal d'achat est généré lorsque les conditions suivantes sont rencontrés dans l'ordre:
1) Le prix de clôture un jour donné devient inférieur ou égal à la bande inférieure,
2) L’autocorrélation est négative ou proche de zéro,
3) Le filtre de swing est déclenché lorsque tout changement de pourcentage sur un seul jour, ainsi que tous les changements quotidiens consécutifs, dépasse le seuil x%. Le seuil du filtre de swing est fixé à 2%.
4) Un signal d'achat légitime est généré et le trader initiera une position longue au prix d'ouverture le lendemain.
De même, un signal de vente sera généré lorsque les conditions suivantes sont en séquence:
1) Le cours de clôture sur un jour particulier devient supérieur ou égal à la bande supérieure,
2) L'estimation de l'autocorrélation est négative ou proche de zéro,
3) Le « swing filter » est déclenché lorsque tout changement de pourcentage sur un seul jour, ainsi que tous les changements quotidiens consécutifs, dépasse le x% seuil. Le seuil du filtre de swing est fixé à 2%.
4) Un signal de vente légitime est généré et le trader initiera une position courte au prix d'ouverture sur le lendemain.
Vous pouvez vous reporter à l’article de Fong pour plus de détails si ce thême vous intéresse.
Il me reste à vous proposer les programme pour GrapheAT Pro de l’autocorrélation et celui des bandes de Fong...puis il restera à valider (ou invalider la méthode proposée.
PROGRAMMES ;
Fong_Autocorrelation
//=================
//Fong_Autocorrelation
//v 1.0
//smallcaps90
//24/07/2018
//================
Moy = Moyenne(Cloture,P1) //P1=10 recommandé
Si RangHisto>=FinHisto-P2
Alors
S_Num = 0
S_Den = 0
i = 0
TantQue i<P1-1 Faire //de t=0 à t=8
Num(i) = (Cloture(i)-Moy)*(Cloture(i+1)-Moy)
Den(i) = (Cloture(i)-Moy)^2
S_Num = S_Num+Num(i)
S_Den = S_Den+Den(i)
i = i+1
FinTantQue
S_Den = S_Den + (Cloture(9)-Moy)^2
r = S_Num/S_Den
FinSi
//test de vraisemblance de Bartlett
//
BT1=1.96/racine(P1)
BT2=-BT1
//Fin du code
Fenêtre Propriétés :
Bandes de Fong
//==============
//Bandes de Fong
//v1.0
//smallcaps90
//25/07/2018
//==============
//==================
//1 Trier de la liste L à chaque période dans l'ordre croissant
//(méthode de Shell)
//
// Recopier les P1 clôtures à trier à chaque période
//
k=0
TantQue k<P1 Faire
L(k)=cloture(k)
k=k+1
FinTantQue
//Trier les P1=20 cours précédents du cours actuel
//y compris celui-ci dans l'ordre croissant
// par la méthode de Shell
pas=0
TantQue pas<P1 Faire
pas=3*pas+1
FinTantQue
TantQue pas>=1 Faire
i=pas
TantQue i<P1 Faire
val=L(i)
j=i
TantQue (j>pas-1 ET L(j-pas)>val) Faire
L(j)=L(j-pas)
j=j-pas
FinTantQue
L(j)=val
i=i+1
FinTantQue
pas=(pas-1)/3
FinTantQue
//2 Calculs des bandes de Fong
//
Bande_Basse = L(0) + 0.95*(L(1)-L(0))
Bande_Haute = L(18) + 0.05*(L(19)-L(18))
//Fin du code
Fenêtre Propriétés
Un exemple :
Comparativement voici la même valeur avec des bandes de Bollinger(20,2) en superposition (en noir sur le graphe ci-dessous) :
Voilà pour ce soir...
Il nous reste à expérimenter la méthode de Fong...
Cordialement.
Commentaire