N'hésitez pas de consulter notre chaîne YouTube "INGÉNIERIE et BOURSE" pour profiter des cours et tutos gratuits !
Objectifs
- Savoir coder la moyenne et la moyenne mobile
- Savoir l’importance de la valeur moyenne et la moyenne mobile
- Savoir faire la différence entre la moyenne globale et la moyenne mobile
- Savoir coder les deux moyennes
- Savoir détecter la tendance d’un actif en utilisant la moyenne mobile
- Etc.
La valeur moyenne d’un signal sinusoïdal
L’exemple ci-dessous montre comment calculer la valeur moyenne d’une volatilité de type sinusoïdale en utilisant une boucle for, la fonction sum() et mean().
[pastacode lang=”c” manual=”%25%25%201.1%20Volatilit%C3%A9%3A%20g(t)%3D%20A*sin(2*PI*f0*t)%0AN%3D1e3%3B%0At%3Dlinspace(0%2C100%2CN)%3B%20%25%20%5B0%2C100%5D%20Secondes%0AA%3D300%3B%0Aa0%3D0%3B%0At0%3D20%3B%20f0%3D1%2Ft0%3B%0Ag_t%3DA*sin(2*pi*f0*t)%2B%20a0%20%3B%0A%0A%25%25%201.2%20Calcul%20de%20la%20valeur%20Moyenne%20de%20g(t)%0AMoy%3D0.0%3B%0ASomme%3D0.0%3B%0Afor%20i%3D1%3AN%0A%20%20%20%20Somme%3DSomme%2Bg_t(i)%3B%0Aend%3B%0AMoy(1)%3DSomme%2FN%3B%0AMoy(2)%3Dsum(g_t)%2FN%3B%0AMoy(3)%3Dmean(g_t)%3B%0A%0Afigure(1)%3B%0Aplot(t%2Cg_t%2C%20’linewidth’%2C3)%3Bxlim(%5Bt(1)%20t(end)%5D)%3B%0Aset(gca%2C’color’%2C’none’)%3B%0Atitle(strcat(‘Moyennes%3D’%2Cnum2str(Moy))%2C’fontsize’%2C16)%3B%0Apause(1)%3B” message=”” highlight=”” provider=”manual”/]
La valeur moyenne d’une droite de tendance + volatilité sinusoïdale
L’exemple ci-dessous montre comment calculer la valeur moyenne d’un prix avec tendance et volatilité de type sinusoïdal.
[pastacode lang=”c” manual=”%25%25%201.1%20Volatilit%C3%A9%3A%20g(t)%3D%20A*sin(2*PI*f0*t)%0AN%3D1e3%3B%0At%3Dlinspace(0%2C100%2CN)%3B%20%25%20%5B0%2C100%5D%20Secondes%0AA%3D300%3B%0Aa0%3D0%3B%0At0%3D20%3B%20f0%3D1%2Ft0%3B%0Ag_t%3DA*sin(2*pi*f0*t)%2B%20a0%20%3B%0A%0A%25%25%201.2%20Calcul%20de%20la%20valeur%20Moyenne%20de%20g(t)%0AMoy%3D0.0%3B%0ASomme%3D0.0%3B%0Afor%20i%3D1%3AN%0A%20%20%20%20Somme%3DSomme%2Bg_t(i)%3B%0Aend%3B%0AMoy(1)%3DSomme%2FN%3B%0AMoy(2)%3Dsum(g_t)%2FN%3B%0AMoy(3)%3Dmean(g_t)%3B%0A%0A%25%25%202%20Tendance%3A%20f(t)%20%3D%20a*t%20%2B%20b%20%3B%20f(t)%20%3D%20-a*t%20%2B%20b%0Aa%3D10%3B%0Ab%3D50%3B%0An%3D1%3B%0Af_t_h%3Da*t.%5En%2Bb%3B%0Af_t_b%3D-a*t.%5En-b%3B%0A%0A%25%25%203.1%20Prix%3A%20p(t)%0Ap_t_h%3Df_t_h%2Bg_t%3B%0Ap_t_b%3Df_t_b%2Bg_t%3B%0A%0A%25%25%203.2%20Calcul%20de%20la%20valeur%20Moyenne%20du%20Prix%20p(t)%0AMoy_h%3Dmean(p_t_h)%3B%0AMoy_b%3Dmean(p_t_b)%3B%0A%0A%0Afigure(2)%3B%0Aplot(t%2Cp_t_h%2C%20’linewidth’%2C3)%3Bxlim(%5Bt(1)%20t(end)%5D)%3B%20hold%20on%3B%0Aplot(t%2Cp_t_b%2C’r’%2C%20’linewidth’%2C3)%3B%0Aplot(t%2CMoy_h*ones(1%2Clength(p_t_h))%2C’k’%2C%20’linewidth’%2C3)%3B%0Aplot(t%2CMoy_b*ones(1%2Clength(p_t_h))%2C’k’%2C%20’linewidth’%2C3)%3Bhold%20off%3B%0A%0Aset(gca%2C’color’%2C’none’)%3B%0Atitle(strcat(‘Moyennes%3D%5B’%2Cnum2str(Moy_h)%2C’%20%2C%20’%2C%20num2str(Moy_b)%2C%20’%5D’)%2C’fontsize’%2C16)%3B%0A” message=”” highlight=”” provider=”manual”/]
Comment calculer la Moyenne Mobile ?
La moyenne mobile (MM) est caractérisée par la fenêtre de calcul qu’on note M. On considère un prix p(t) sous soufre d’un tableau de taille N. Pour le calcul de la moyenne mobile, il faut que N soit beaucoup plus grand à M. Lorsque M=N, la moyenne mobile sera identique à la moyenne globale de l’actif. Le calcul de la moyenne mobile consiste à faire glisser la fenêtre sus le signal & calculer la moyenne locale sur M échantillons pour chaque valeur de p(t) de la gauche (valeurs plus anciennes) vers la droite (valeurs plus récentes) (voir le tutoriel pour mieux cerner le concept de la moyenne mobile). La valeur de la MM la plus récente est une moyenne pondérée de M dernières valeur du p(t). Autrement dit, la moyenne mobile est en retard de M périodes par rapport au prix p(t) ! On distingue trois façons pour le calcul de la moyenne mobile.
Calcul de la Moyenne mobile en retard
Chaque valeur de la moyenne mobile est basée par les M valeurs passées du prix p(t).
[pastacode lang=”c” manual=”%25%25%201.1%20Volatilit%C3%A9%3A%20g(t)%3D%20A*sin(2*PI*f0*t)%0AN%3D1e3%3B%0At%3Dlinspace(0%2C100%2CN)%3B%20%25%20%5B0%2C100%5D%20Secondes%0AA%3D300%3B%0Aa0%3D0%3B%0At0%3D2%3B%20f0%3D1%2Ft0%3B%0Ag_t%3DA*sin(2*pi*f0*t)%2B%20a0%20%3B%0A%0A%25%25%201.2%20Calcul%20de%20la%20valeur%20Moyenne%20de%20g(t)%0AMoy%3D0.0%3B%0ASomme%3D0.0%3B%0Afor%20i%3D1%3AN%0A%20%20%20%20Somme%3DSomme%2Bg_t(i)%3B%0Aend%3B%0AMoy(1)%3DSomme%2FN%3B%0AMoy(2)%3Dsum(g_t)%2FN%3B%0AMoy(3)%3Dmean(g_t)%3B%0A%0A%25%25%202%20Tendance%3A%20f(t)%20%3D%20a*t%20%2B%20b%20%3B%20f(t)%20%3D%20-a*t%20%2B%20b%0Aa%3D10%3B%0Ab%3D50%3B%0An%3D1%3B%0Af_t_h%3Da*t.%5En%2Bb%3B%0Af_t_b%3D-a*t.%5En-b%3B%0A%0A%25%25%203.1%20Prix%3A%20p(t)%0Ap_t_h%3Df_t_h%2Bg_t%3B%0Ap_t_b%3Df_t_b%2Bg_t%3B%0A%0A%25%25%203.2%20Calcul%20de%20la%20valeur%20Moyenne%20du%20Prix%20p(t)%0AMoy_h%3Dmean(p_t_h)%3B%0AMoy_b%3Dmean(p_t_b)%3B%0A%0A%25%25%204.%20Calcul%20de%20la%20Moyenne%20Mobile%20(MM)%20du%20Prix%20p(t)%0Ap%3D30%3B%20numMM%3D2*p%2B1%3B%0ApMM_h%3Dzeros(1%2CN)%3B%0ApMM_b%3Dzeros(1%2CN)%3B%0A%0Afor%20i%3DnumMM%3AN%0A%20%20%20%20V1%3Dp_t_h(i-numMM%2B1%3Ai)%3B%20%25%202*p%2B1%0A%20%20%20%20pMM_h(i)%3Dmean(V1)%3B%0A%20%20%20%20%0A%20%20%20%20V2%3Dp_t_b(i-numMM%2B1%3Ai)%3B%0A%20%20%20%20pMM_b(i)%3Dmean(V2)%3B%0Aend%3B%0A%0Afigure(3)%3B%0Aplot(t%2Cp_t_h%2C’b’%2C’linewidth’%2C3)%3Bxlim(%5Bt(1)%20t(end)%5D)%3B%20hold%20on%3B%0Aplot(t%2Cp_t_b%2C’r’%2C%20’linewidth’%2C3)%3B%0A%0Aplot(t%2CpMM_h%2C’m’%2C%20’linewidth’%2C3)%3B%0Aplot(t%2CpMM_b%2C’k’%2C%20’linewidth’%2C3)%3Bhold%20off%3B%0Aset(gca%2C’color’%2C’none’)%3B” message=”” highlight=”” provider=”manual”/]
Calcul de la Moyenne mobile en avance
Chaque valeur de la moyenne mobile est basée par les M valeurs futures du prix p(t).
[pastacode lang=”c” manual=”for%20i%3D1%3AN-numMM%0A%20%20%20%20V1%3Dp_t_h(i%3Ai%2BnumMM-1)%3B%20%0A%20%20%20%20pMM_h(i)%3Dmean(V1)%3B%0A%20%20%20%20%0A%20%20%20%20V2%3Dp_t_b(i%3Ai%2BnumMM-1)%3B%0A%20%20%20%20pMM_b(i)%3Dmean(V2)%3B%0Aend%3B” message=”” highlight=”” provider=”manual”/]
Calcul de la Moyenne mobile centré
Chaque valeur de la moyenne mobile est basée M/2 valeurs passées, et M/2 valeurs futures.
[pastacode lang=”c” manual=”for%20i%3Dp%2B1%3AN-p%0A%20%20%20%20V1%3Dp_t_h(i-p%3Ai%2Bp)%3B%20%0A%20%20%20%20pMM_h(i)%3Dmean(V1)%3B%0A%20%20%20%20%0A%20%20%20%20V2%3Dp_t_b(i-p%3Ai%2Bp)%3B%0A%20%20%20%20pMM_b(i)%3Dmean(V2)%3B%0Aend%3B” message=”” highlight=”” provider=”manual”/]
Voir le tutoriel pour savoir les avantages et les inconvénients des 3 techniques.
La moyenne mobile d’un actif réel
[pastacode lang=”c” manual=”clc%3B%20close%20all%3B%20clear%20all%3B%0A%0A%0A%25%25%20Ing%C3%A9nierie%20%26%20Bourse%0A%25%25%20Ingenierie-Bourse.fr%0A%25%25%20La%20Moyenne%20%26%20la%20Moyenne%20Mobile%20-%20Partie%202%2F2%0A%0A%0A%25%25%201.1%20Volatilit%C3%A9%3A%20g(t)%3D%20A*sin(2*PI*f0*t)%0AN%3D1e3%3B%0At%3Dlinspace(0%2C100%2CN)%3B%20%25%20%5B0%2C100%5D%20Secondes%0AA%3D300%3B%0Aa0%3D0%3B%0At0%3D2%3B%20f0%3D1%2Ft0%3B%0Ag_t%3DA*sin(2*pi*f0*t)%2B%20a0%20%3B%0A%0A%25%25%201.2%20Calcul%20de%20la%20valeur%20Moyenne%20de%20g(t)%0AMoy%3D0.0%3B%0ASomme%3D0.0%3B%0Afor%20i%3D1%3AN%0A%20%20%20%20Somme%3DSomme%2Bg_t(i)%3B%0Aend%3B%0AMoy(1)%3DSomme%2FN%3B%0AMoy(2)%3Dsum(g_t)%2FN%3B%0AMoy(3)%3Dmean(g_t)%3B%0A%0A%25%25%202%20Tendance%3A%20f(t)%20%3D%20a*t%20%2B%20b%20%3B%20f(t)%20%3D%20-a*t%20%2B%20b%0Aa%3D10%3B%0Ab%3D50%3B%0An%3D1%3B%0Af_t_h%3Da*t.%5En%2Bb%3B%0Af_t_b%3D-a*t.%5En-b%3B%0A%0A%25%25%203.1%20Prix%3A%20p(t)%0A%25%20p_t_h%3Df_t_h%2Bg_t%3B%0A%25%20p_t_b%3Df_t_b%2Bg_t%3B%0A%0A%0A%25%25%203.2%20Titre%20R%C3%A9el%20(voir%20la%20ssuite%20du%20TUTO)%0ATitre%3D’%5EFCHI’%3B%20%20%20%20%20%20%20%20%20%20%25%20Symbole%20du%20Titre%20(CAC%2040)%0A%25%20Titre%3D’DAX’%3B%20%20%20%20%20%20%20%20%20%20%25%20Symbole%20du%20Titre%20(CAC%2040)%0A%0AStart%3D’Jan-03-2005’%3B%20%20%20%20%25%20Date%20de%20d%C3%A9but%0AStop%3Ddatestr(now%2C1)%3B%20%20%20%20%25%20Date%20de%20fin%20(Actuelle)%20ou%20bien%20%22Mois-Jour-Ann%C3%A9e%22%0A%5Bnn%2C%20mm%5D%20%3D%20month(Stop)%3B%0AStop%3Dstrcat(mm%2C’-‘%2Cnum2str(day(Stop))%2C’-‘%2Cnum2str(year(Stop)))%3B%0AData%20%3D%20getData(Titre%2CStart%2CStop)%3B%0Ap_t_h%3DData(%3A%2C2)%3B%0Ap_t_b%3DData(%3A%2C3)%3B%0AN%3Dlength(p_t_h)%3B%0At%3Dlinspace(year(Start)%2Cyear(Stop)%2CN)%3B%0A%0A%25%25%203.2%20Calcul%20de%20la%20valeur%20Moyenne%20du%20Prix%20p(t)%0AMoy_h%3Dmean(p_t_h)%3B%0AMoy_b%3Dmean(p_t_b)%3B%0A%0A%25%25%204.%20Calcul%20de%20la%20Moyenne%20Mobile%20(MM)%20du%20Prix%20p(t)%0Ap%3D30%3B%20numMM%3D2*p%2B1%3B%0ApMM_h%3Dzeros(1%2CN)%3B%0ApMM_b%3Dzeros(1%2CN)%3B%0A%0Afor%20i%3DnumMM%3AN%0A%20%20%20%20V1%3Dp_t_h(i-numMM%2B1%3Ai)%3B%20%25%202*p%2B1%0A%20%20%20%20pMM_h(i)%3Dmean(V1)%3B%0A%20%20%20%20%0A%20%20%20%20V2%3Dp_t_b(i-numMM%2B1%3Ai)%3B%0A%20%20%20%20pMM_b(i)%3Dmean(V2)%3B%0Aend%3B%0A%0Afigure(3)%3B%0Aplot(t%2Cp_t_h%2C’b’%2C’linewidth’%2C3)%3Bxlim(%5Bt(1)%20t(end)%5D)%3B%20hold%20on%3B%0Aplot(t%2Cp_t_b%2C’r’%2C%20’linewidth’%2C3)%3B%0Aplot(t%2CpMM_h%2C’m’%2C%20’linewidth’%2C3)%3B%0Aplot(t%2CpMM_b%2C’k’%2C%20’linewidth’%2C3)%3Bhold%20off%3B%0Aset(gca%2C’color’%2C’none’)%3B%0A” message=”” highlight=”” provider=”manual”/]
Bourse & Matlab #6: Comprendre la moyenne mobile et la moyenne – Partie 2-21 thought on “”