|
L'Ecart Type, ou la fonction STD[p](Price) de ProRealTime, est connu de nombreux utilisateurs. Il va sans dire qu'il est, d'une façon plus générale, utilisé par de nombreux traders dans la construction d'indicateurs divers et variés. En quelques mots, l'écart type est un indice de mesure de la dispersion d'un ensemble de valeurs. Dans le cas plus particulier du trading, il est souvent utilisé, soit comme indicateur de volatilité autour d'une moyenne, soit sous la forme d'une enveloppe de prix pour définir des objectifs de bénéfice ou encore des zones de "sur achat" ou "sur vente". A titre d'exemple, il est le pivot de l'indicateur "Bandes de Bollinger".
En résumé, plus l'écart type est faible, plus les prix sont homogènes autour de leur moyenne. C'est le cas des prix dans les zones A, B et C dans le graphique ci dessous. Ces zones sont représentatives des phases de marché à faible volatilité dispersion pendant lesquelles une pression acheteuse ou vendeuse n'est pas encore clairement installée. Au contraire, plus l'écart type est élevé, plus la dispersion est importante. C'est le cas des prix dans les zones D et E. Ces zones sont représentatives des phases de pression acheteuse ou vendeuse excessives. Suite à une forte volatilité, les prix ont tendance à revenir rapidement vers la moyenne. Attention, comme vous pouvez le constater dans le rectangle vert, l'écart type n'est pas un indice de mesure de l'existence d'une tendance.

Vous trouverez ici des explications mathématiques plus complètes.
Revenons à la construction de cet indicateur dans ProRealTime. Bien évidemment, je souhaite vous montrer comment la programmation ProRealTime peut élargir le champ d'application de l'écart type. A ce jour, vous utilisez certainement uniquement la fonction native de ProRealTime, c'est à dire :

Elle vous permet de construire un écart type sur la base d'une moyenne mobile simple de [p] périodes, avec l'option du type de prix (Prix). Comme par exemple...

En revanche, cette fonction ne vous permet pas...
-
De modifier le type de la moyenne mobile sous jacente
-
De pondérer les écarts à la moyenne
-
De calculer l'écart type d'un indicateur
-
ect...
Voici quelques lignes de programmation ProRealTime pour répondre à ces différents besoins. Alors que nous admettons la règle de programmation "L'écart type est la moyenne des écarts à la moyenne", nous commençons par écrire un indicateur qui réplique la fonction native ProRealTime.
Le fontion ProRealTime STD

Ci dessous, il y a un écart entre la bande bleue et la bande rouge, ce qui nous indique que le calcul est incorrect.

En fait, il est nécessaire de calculer le carré des écarts pour respecter la formule à la lettre !!
Le carré des écarts à la moyenne
 Et voici le résultat !

Bien évidemment, dès à présent vous pouvez laisser votre créativité déborder ... La programmation ProRealTime vous permet de créer des indicateurs encore plus avancés.
Un écart type pondéré
Pourquoi pas un écart type pondéré?

Une alternative au prix de clôture
Pourquoi pas une moyenne mobile exponentielle basée sur un TypicalPrice ? Alors que l'Ecart Type est mesuré sur la valeur moyenne quotidienne ?

Un écart type en tendance
Ou encore un écart type mesuré sur une référence de prix différente selon la position de la moyenne mobile?

L'écart type des indicateurs
Enfin, la programmation ProRealTime vous permet désormais de calculer un écart type sur un indicateur pour identifier les marchés en tension. Voici un exemple sur le MACD.
 Vous pouvez identifier les zones ou la pression actuelle du marché s'affaiblit, soit avant de repartir, soit avant de céder à la pression adverse. Ci après quelques zones ou l'écart type MACD est faible, identifiées avec les cercles de couleur orange.

En espérant vous avoir donné, en matière de programmation ProRealTime, quelques clefs et idées supplémentaires !
Vos commentaires sont les bienvenus ! N'hésitez pas à partager vos idées et suggestions. Vous pouvez également nous contactez à l'adresse
Cette adresse email est protégée contre les robots des spammeurs, vous devez activer Javascript pour la voir.
Grégoire Tardy.
Septembre 2010
PS : La programmation ProRealTime pour copier/coller
Code ProRealTime Modèle - 1
// www.trading-automatique.fr
Delta = 0 DeltaSum = 0
// Fonction native PRT
ETPRT = STD[20](close) // Ecart Type ProRealTime ... 20 périodes .... en bleu.... sur le graphique
// Moyenne mobile simple 20 périodes sur le prix de clêture
EMA = Average[20](Close)
// Indicateur personnel de l'écart type
For x = 0 to 19 // 20 dernières bougies
// Calcul de la somme des écarts à la moyenne
Delta = ABS(Close[x] - EMA) // Ecart absolu entre prix et moyenne de référence Deltasum = DeltaSum + Delta
// Calcul de la moyenne des écarts à la moyenne ETINDIC = (DeltaSum / (x+1) ) // en rouge...
Next
Return ETINDIC as "Ecart Type Calculé" , ETPRT as "Ecart Type ProRealTime"
Code ProRealTime Modèle - 2
// www.trading-automatique.fr
Delta = 0 DeltaSum = 0
// Fonction native PRT
ETPRT = STD[20](close) // Ecart Type ProRealTime ... 20 périodes .... en bleu.... sur le graphique
// Moyenne mobile simple 20 périodes sur le prix de clêture
EMA = Average[20](Close)
// Indicateur personnel de l'écart type
For x = 0 to 19 // 20 dernières bougies
// Calcul de la somme des carrés des écarts à la moyenne
Delta = SQUARE(Close[x] - EMA) // Ecart au carré entre prix et moyenne de référence Deltasum = DeltaSum + Delta // Somme des carrés des écarts
// Calcul de la moyenne de la racine du carré des écarts à la moyenne.. ouf... ETINDIC = SQRT(DeltaSum / (x+1)) // en rouge...
Next
Return ETINDIC as "Ecart Type Calculé" , ETPRT as "Ecart Type ProRealTime"
Code ProRealTime Modèle - 3
// www.trading-automatique.fr
Delta = 0 DeltaSum = 0 SumX = 0
// Fonction native PRT
ETPRT = STD[20](close) // Ecart Type ProRealTime ... 20 périodes .... en bleu.... sur le graphique
// Moyenne mobile simple 20 périodes sur le prix de clêture
EMA = Average[20](Close)
// Indicateur personnel de l'écart type
For x = 0 to 19 // 20 dernières bougies
// Calcul de la somme des carrés des écarts à la moyenne
Delta = SQUARE((20 - x) * (Close[x] - EMA)) // Ecart au carré entre prix et moyenne de référence SumX = SumX + (20 - x) Deltasum = DeltaSum + Delta // Somme des carrés des écarts
// Calcul de la moyenne de la racine du carré des écarts à la moyenne.. ouf... ETINDIC = SQRT((DeltaSum / SumX) / (x+1)) // en rouge...
Next
Return ETINDIC as "Ecart Type Calculé" , ETPRT as "Ecart Type ProRealTime"
Code ProRealTime Modèle - 4
// www.trading-automatique.fr
Delta = 0 DeltaSum = 0
// New !!
Price = (High + Low) / 2 EMAPrice = TypicalPrice
// Fonction native PRT
ETPRT = STD[20](close) // Ecart Type ProRealTime ... 20 périodes .... en bleu.... sur le graphique
// Moyenne mobile simple 20 périodes sur le prix de clêture
EMA = ExponentialAverage[20](EMAPrice)
// Indicateur personnel de l'écart type
For x = 0 to 19 // 20 dernières bougies
// Calcul de la somme des écarts à la moyenne // En passant par le calcul du carré des écarts.
Delta = SQUARE (Price[x] - EMA) // au lieu de Delta = ABS(Close[x] - EMA) Deltasum = DeltaSum + Delta
// Calcul de la moyenne des écarts à la moyenne ETINDIC = SQRT(DeltaSum / (x+1) ) // en rouge... au lieu de ETINDIC = DeltaSum / (x+1)
Next
Return ETINDIC as "Ecart Type Calculé" , ETPRT as "Ecart Type ProRealTime"
Code ProRealTime Modèle - 5
// www.trading-automatique.fr
Delta = 0 DeltaSum = 0
// Fonction native PRT
ETPRT = STD[20](close) // Ecart Type ProRealTime ... 20 périodes .... en bleu.... sur le graphique
// Moyenne mobile simple 20 périodes sur le prix de clêture
EMA = Average[20](Close)
// Indicateur personnel de l'écart type
For x = 0 to 19 // 20 dernières bougies
// Calcul de la somme des carrés des écarts à la moyenne
If CLOSE => EMA Then
Delta = SQUARE(High[x] - EMA) // Ecart au carré entre prix et moyenne de référence
Else
Delta = SQUARE(Low[x] - EMA) // Ecart au carré entre prix et moyenne de référence EndIf
Deltasum = DeltaSum + Delta // Somme des carrés des écarts
// Calcul de la moyenne de la racine du carré des écarts à la moyenne.. ouf... ETINDIC = SQRT(DeltaSum / (x+1)) // en rouge...
Next
Return ETINDIC as "Ecart Type Calculé" , ETPRT as "Ecart Type ProRealTime"
Code ProRealTime Modèle - 6
// www.trading-automatique.fr
Delta = 0 DeltaSum = 0
// Moyenne mobile simple 20 périodes sur le prix de clêture
EMA = Average[20](MACDline[12,26,9](close))
// Indicateur personnel de l'écart type
For x = 0 to 19 // 20 dernières bougies
// Calcul de la somme des carrés des écarts à la moyenne
Delta = SQUARE(MACDline[12,26,9](close) - EMA) // Ecart au carré entre prix et moyenne de référence
Deltasum = DeltaSum + Delta // Somme des carrés des écarts
// Calcul de la moyenne de la racine du carré des écarts à la moyenne.. ouf... ETINDIC = SQRT(DeltaSum / (x+1)) // en rouge...
Next
Return ETINDIC as "Ecart Type Calculé"
|
Commentaires
Je lis attentitevement tous les articles du site depuis quelques temps, et ce avec le plus grand intérêt.
Je me permets donc de faire une petite remarque concernant le rapprochement que tu fais entre écart type et volatilité : pour s'approcher de la notion de volatilité des marchés (au sens par exemple de la volatilité implicite des options), il faut non pas calculer l'écart type sur les prix mais sur les performances de la stock (par exemple en close to close).
En effet, il est possible d'avoir un marché très volatile qui "oscille" autour d'une valeur moyenne (le calcul de l'écart type via les closes donnerait alors une valeur faible (puisque les prix serait proches de leur moyenne), laissant croire à une volatilité faible) ou d'avoir un marché trendé de volatilité faible (pour lequel le calcul par les prix donnerait un valeur élevée puisque les prix serait éloignés de leur moyenne).
Bon trading automatique à tous !
Merci pour ton commentaire. Tous les avis ainsi que toutes les remarques et idées sont les bienvenus.
J'ai effectivement, trop hâtivement, utilisé à tort le terme volatilité dans le second paragraphe. Shame on me !
J'écris aussi, en parlant de l'écart type, "il est souvent utilisé, soit comme indicateur de volatilité autour d'une moyenne..".
Là je partage une réalité constatée dans les discussions, forums et formations. Vulgairement, les bandes de Bollinger sont connues comme un indicateur de volatilité.
Et pourtant, les puristes, dont tu sembles faire partie, crient au(x) scandale(s)… Et, en effet, ce que tu dis est juste.
D'une part la volatilité s'exprime en pourcentage, ce qui n'est pas le cas de l'écart type. Difficile de comparer la volatilité de deux valeurs sachant uniquement que l'écart type est de 2… D'un coté c'est aberrant si les prix des valeurs ne sont pas du même ordre de grandeur. De l'autre, c'est absurde, si à l'instant de la mesure, les moyennes mobiles ne sont pas approximativeme nt identiques.
Aussi, quid de la moyenne mobile ? Est-il judicieux, pour ne pas dire "juste", de calculer un écart type sur une moyenne temporelle? Les variations de prix entrainent la moyenne vers le haut ou vers le bas. Si les variations successives des prix sont constantes, l'écart type diminuera obligatoirement , l'écart à la moyenne étant alors plus faible. Il s'agit là aussi d'un constat, certains traders utilisent uniquement les variations significatives de l'écart type après une phase de faible dispersion, et qualifient cette phase "accélération". A juste titre, comme à vélo, après les premiers coups de pédales, une fois la vitesse constante, l'accélération est nulle. Et pourtant, le vélo se déplace. Et nous le constatons dans le rectangle vert au début de l'article. En d'autres termes, l'accélération de la dispersion, indépendamment du prix de l'actif et de la valeur de la moyenne, implique forcément une augmentation de la volatilité. D'où l'intérêt d'un indicateur d'accélération pour entrer sur le marché dès les premiers coups de pédales.
D'autre part, sur x périodes, deux valeurs ayant le même prix de début et de fin, avec de nombreuses variations entre les deux, seul l'écart type, ou autre indicateur dérivé des prix, te permettra d'identifier la plus volatile. En effet, la variation entre les prix de clôtures ("performance"?) est identique.
En conclusion, je te rejoins sur l'idée de calculer la volatilité sur les prix ! Toutefois, par forcément par comparaison des cours de clôture uniquement. Il existe d'autres indicateurs intéressants comme l'ATR. Aussi, je n'écarterais pas systématiquemen t l'écart type de la catégorie des indicateurs de mesure de la volatilité, ou de ses accélérations. Enfin, je ne classe pas la volatilité implicite dans ce paragraphe car il s'agit d'une volatilité calculée sur un risque mesuré à travers les variations du prix d'un produit dérivé, et non pas du sous jacent. Citer
Flux RSS pour les commentaires de ce poste.