Projet d`application financière sous Gestion active Choix du

Transcription

Projet d`application financière sous Gestion active Choix du
Projet R – Gestion active
Projet d’application financière sous
Gestion active
Choix du portefeuille et Analyse technique
• Dinh Gia Khanh • Taylan Kunal
Mabrouk Chetoune
Projet R – Gestion active
Etape 1 : La théorie standard du choix de portefeuille
Le modèle Moyenne-Variance de Markowitz (1952)
L’idée
La théorie du choix de portefeuille expose comment des investisseurs rationnels utilisent
la diversification afin d'optimiser leur portefeuille, et quel devrait être le prix d'un actif étant donné son
risque par rapport au risque moyen du marché. Cette théorie fait appel aux concepts de frontière
efficiente, coefficient bêta, droite de marché des capitaux et droite de marché des titres. Sa formalisation
la plus accomplie est le modèle d'évaluation des actifs financiers ou MEDAF.
Dans ce modèle, le rendement d'un actif est une variable aléatoire et un portefeuille est une
combinaison linéaire pondérée d'actifs. Par conséquent, le rendement d'un portefeuille est également une
variable aléatoire et possède une espérance et une variance.
Hypothèses du modèle

Les marchés d'actifs financiers sont efficients. C'est l'hypothèse d'efficience du marché selon
laquelle les prix et rendements des actifs sont censés refléter, de façon objective, toutes les
informations disponibles concernant ces actifs.

Les investisseurs sont averses au risque : ils ne seront prêts à prendre plus de risques qu'en
échange d'un rendement plus élevé. À l'inverse, un investisseur qui souhaite améliorer la
rentabilité de son portefeuille doit accepter de prendre plus de risques. L'équilibre
risque/rendement jugé optimal dépend de la tolérance au risque de chaque investisseur.
Espèrence et variance

le rendement d'un portefeuille est une combinaison linéaire de celui des actifs qui le composent,
pondérés par leur poids wi dans le portefeuille. ;

la volatilité du portefeuille est une fonction de la corrélation entre les actifs qui le composent.
Cette fonction n'est pas linéaire.
Projet R – Gestion active
Diversification

Un investisseur peut réduire le risque de son portefeuille simplement en détenant des actifs qui ne
soient pas ou peu positivement corrélés, donc en diversifiant ses placements. Cela permet
d'obtenir la même espérance de rendement en diminuant la volatilité du portefeuille.
Les Formules utilizes pour un portefeuille comportant n actifs :

Rendement attendu (espérance) :

Variance du portefeuille :
La variance du portefeuille est la somme des produits des poids wi de chaque couple d'actifs par
leur covariance
- cette somme inclut les poids au carré et les variances
i. La covariance est souvent exprimée en termes de corrélation
actifs où

Volatilité du portefeuille :
pour chaque actif
des rendements entre deux
Projet R – Gestion active
La frontier d’efficience

Chaque couple possible d'actifs peut être représenté dans un graphique risque/rendement. Pour
chaque rendement, il existe un portefeuille qui minimise le risque. À l'inverse, pour chaque
niveau de risque, on peut trouver un portefeuille maximisant le rendement attendu. L'ensemble de
ces portefeuilles est appelé frontière efficiente ou frontière de Markowitz.

Cette frontière est croissante par construction.

La région au-dessus de la frontière ne peut être atteinte en détenant seulement des actifs risqués.
Un tel portefeuille est impossible à construire. Les points sous la frontière sont dits sousoptimaux, et n'intéresseront pas un investisseur rationnel.
Résultats :
Alea1=8 : titre BOUYGUES
Alea2=35 : titre UNIBAIL-RODAMCO

Variance du titre 1 = 0.0005699880

Variance du titre 2 = 0.0003952606

Variance du portefeuille équipondérant = 0.0003722228
 Cet exemple montre l’intérêt de la diversification, le risque du portefeuille est inférieur aux risque
des titres.
 La volatilité du portefeuille optimal est de 0.06028736.
 La performance du portefeuille optimal est de 0.1038102.
 La volatilité de l’indice de marché est de 0.06418033.
 La performance du marché est de -0.03435892.
 Le portefeuille optimal dégage une performance supérieure à celle du marché.
Projet R – Gestion active
Etape 1: Les Codes
# Lecture des données provenant d'Excel
dataInit <- read.xls("projet.xls",colNames=TRUE, type="double")
dataInit <- as.matrix(dataInit)
n <-nrow(dataInit)
x <- dataInit[,c(2:40)]
cac <- dataInit[,41]
# Calcul des rentabilités
rentab=as.matrix(diff(x,differences=1)/x[1:(n-1),])
nbre <- ncol(rentab)
# Choix des titres par hasard
alea1 <- round(runif(1,min=1,max=nbre))
alea2 <- round(runif(1,min=1,max=nbre))
while(alea1==alea2){alea2 <-round(runif(1,min=1,max=nbre))}
# Construction du portefeuille équipondéré
a <- matrix(0.5,2,1)
ptf <- matrix(1,(n-1),1)
data <- matrix(0,(n-1),2)
data[1:(n-1),1] <- rentab[1:(n-1),alea1]
data[1:(n-1),2] <- rentab[1:(n-1),alea2]
ptf <- as.matrix(data)%*%a
# Comparaison entre la variance du portefeuille et les variances des titres
v1 <- var(data[,1])
v2 <- var(data[,2])
varp <- var(ptf)
# affichage des résultats
c <- c(v1,v2,varp)
print(c)
# Calcul de la variance du portefeuille à partir des variances et la covariance
cov <- cov(data[,1],data[,2])
pond <- 0.5
varp <- v1+2*pond*(cov-v1)+(pond^2)*(v1-2*cov+v2)
# Résolution de la minimisation de la variance
x2min <- (v1-cov)/(2*(v1-2*cov+v2))
Projet R – Gestion active
# Calcul de la performance et la volatilité annualisé du portefeuille optimal
x2 <- x2min
x1 <- 1-x2
a <- c(x1,x2)
ptfopt <- matrix(1,n-1,1)
ptfopt <- as.matrix(data)%*%a
varp <- v1+2*x2min*(cov-v1)+(x2min^2)*(v1-2*cov+v2)
varp <- var(ptfopt)
perfp <- mean(ptfopt)
# Annualisation de la performance et de la volatilité
varpA <- varp*254
perfpA <- ((1+perfp)^254)-1
# Comparaison avec l'indice de marché
rentabm=as.matrix(diff(log(cac)))
varmA <- var(rentabm)*254
rendmA <- ((1+mean(rentabm))^254)-1
# Calcul de Value at Risk
confiance <- 0.005
VaR <- -quantile(ptfopt,1-confiance,na.rm=TRUE)
confiance <- 0.01
VaR <- -quantile(ptfopt,1-confiance,na.rm=TRUE)
confiance <- 0.05
VaR <- -quantile(ptfopt,1-confiance,na.rm=TRUE)
# Backtesting
n=length(ptfopt)
dates0=500:n
# VaR historique
r0=ptfopt[500:n]
varh0=0
for (i in 500:n) {
varh0[i-499]=quantile(ptfopt[(i-499):(i-1)],prob=0.01)
}
plot(dates0,r0)
#Graph 1
lines(dates0,varh0,col= 'red ')
# VaR gaussienne
ema=function(x,lambda) {
y=x[1]
for(i in 2:length(x)) y[i]=lambda*y[i-1]+(1-lambda)*x[i-1]
return(y)
}
sigmat=sqrt(ema(ptfopt^2,0.92))
varg=qnorm(0.01)*sigmat
varg0=varg[499:(n-1)]
plot(r0,col="blue"))
#Graph 2
lines(varg0,col= "red")
Projet R – Gestion active
#Graph 1: Les rendements et VAR historiques
#Graph 2: Les rendements et VAR normales



Nombre dépassement du seuil haut: 4
Nombre de dépassement du seuil bas: 1
Conclusion: Le nombre de dépassement n’est pas supérieure à 9=0.01*900 donc l’estimation de la VaR
est correcte.
Projet R – Gestion active
Explications Etape 1
La VaR historique
La VaR historique consiste à utilize la distribution historique. Cette méhode ne fait aucune
hypothèse sur la distribution , elle est non paramétrique. En revanche, elle suppose la disponibilité des
données. Cette method suppose que me VaR futures se comporte comme la VaR passée.
La VaR normale
La VaR normale depend donc essentiellement de la volatilité qui pourra etre estimée en utilisant
une moyenne mobile exponentielle ou une estimation GARCH. Cette méhode est simplement à
implementer, cependant elle ne tient pa compte des queues épaisses. La VaR qui en résulte est sous
estimée.
Le Backtesting de la VaR

Le backtesting consiste à comparer au quotidian, la VaR estimée avec les pertes réalisées.
En principe, si nous testons un Var à 99%, on doit s’atendre à ce que les rendements du portefeuille
dépassent la VaR une fois sur 100. Nous avons fait un Backtest sur 900 périodes. Donc sur 900 jours, le
nombre de dépassements devrait etre de l’ordre de 9 = 0,01*900. Si le nombre d’exceptions est
significativement plus élevé, la VaR et par consequence, les risqué, sont sous estimés. Inversement, si le
nombre d’exceptions est significativement plus faible, la VaR est surestimée, la banque ou le fond est trop
conservative.

Dans notre cas (Graphs 2), nous voyons que , le nombre de dépassement n’est pas supérieure à 9
donc l’estimation de la VaR est correcte.
Projet R – Gestion active
Etape 2 : Analyse technique: l’utilisation des moyennes mobiles
L’intérêt de l’analyse technique :
L’analyse technique a pour finalité d'anticiper les mouvements futurs des cours, à partir de l'étude
d'un historique de cours de bourse, représenté sous la forme d'un graphique. Elle repose sur une
conception cyclique de l'histoire. Elle s'appuie d'un postulat simple : le cours d'une action reflète une
opinion à un moment donné. Il y a donc une forte dimension psychologique dans l'acte d'achat ou de
vente. Dès lors, avec un peu d'expérience, il devient possible d'identifier des comportements récurrents
(peur, panique, euphorie, cupidité, pessimisme, entêtement…) et de prévoir, à partir d'un historique de
cours, les mouvements futurs d'une action.
Etape 2: Les Codes
# La fonction de Moyenne Mobile
Mm<- function(x,k){
y<-numeric(length(x)-k)
for (i in 1:(length(x)-k)) {
y[i]<-mean(x[i:(i+k-1)])
}
y}
# Titre 1
titre1 <- x[,alea1]
A<- Mm(titre1,20)
B<- Mm(titre1,50)
C<- Mm(titre1,150)
# Tracer des graphiques
plot(titre1,type="l",col='black')
par(nex=TRUE)
plot(A,type="l",col='red') # MM20
par(new=TRUE)
plot(B,type="l",col='green') # MM50
par(new=TRUE)
plot(C,type="l",col='blue') # MM150
Projet R – Gestion active
# Graph 1
# Fonction de Bollinger
Bollinger<-function(x,k){
ecart<-numeric(length(x)-k);
mm<-numeric(length(x)-k);
bas<-numeric(length(x)-k);
haut<-numeric(length(x)-k);
for (i in 1:(length(x)-k)) {
ecart[i]<- sd(x[i:(i+k-1)]);
mm[i]<-mean(x[i:(i+k-1)]);
# Les bandes Bollinger
bas[i]<-mm[i]-2*ecart[i];
haut[i]<-mm[i]+2*ecart[i];
}
plot(mm,type="l",col="blue");
par(new=TRUE);
plot(bas,type="s",col="red");
par(new=TRUE);
plot(haut,type="s",col="green")}
#####################
Bollinger(titre1,20)
Bollinger(titre1,50)
Bollinger(titre1,150) # Graph 2
Projet R – Gestion active
# Graph 2: Bollinger (bleu=MM, rouge=Bande inférieure, vert=Bande supérieure)
1. Les bandes de Bollinger
Les bandes de Bollinger, du nom de leur inventeur John Bollinger, sont constituées de 3 courbes:



une moyenne mobile sur n périodes appelée moyenne mobile de Bollinger,
une courbe appelée bande supérieure de Bollinger qui est calculée à partir d'un écart
correspondant à + 2 écarts types des cours avec la moyenne mobile à n périodes,
une courbe appelée bande inférieure de Bollinger qui est calculée à partir d'un écart
correspondant à - 2 écarts types des cours avec la moyenne mobile à n périodes.
Les bandes de Bollinger sont donc deux courbes placées à une distance fixe de 2 écarts
types de part et d'autre de la moyenne mobile sur n périodes.
Ces 3 courbes forment donc une epèce de canal plus ou moins large qui suit le cours de
l'action en fonction de son écart type, donc en fonction de sa volatilité. Les bandes de
Bollinger utilisent le plus souvent une moyenne mobile sur 20 périodes.
Projet R – Gestion active
2. Utilisation des bandes de Bollinger
Les enseignements les plus importants des bandes de Bollinger sont les suivants:




Un resserrement des bandes de Bollinger est souvent annonciateur d’une inversion de
tendance de l’action. Ainsi, après une baisse prolongée de l’action, tout resserrement des
bandes de Bollinger indique l’arriée prochaine d’un retournement à la hausse de l’action.
De meme, après une hausse prolongée de l’action, tout resserment des bandes de Bollinger
indique l’arrivée prochaine d’un retournement à la baisse de l’action.
Toute mise en evidence de resserrement des bandes de Bollinger est donc utile pour
confirmer la fin d’une vague d’Elliott.
Lorsque le cours de l’action touche au bande inférieure de Bollinger, cette action va alors
normalement se diriger vers la bande opposée de Bollinger, c’est à dire vers la bande
supérieure de Bollinger.
Projet R – Gestion active
Etape 3 : Vers une Gestion active
La méthode consiste à repérer les croisements entre la moyenne mobile et les cours. Le signal
d’achat est déclenché lorsque les cours franchissent à la hausse la moyenne mobile. Le signal de vente
apparaît lorsque les cours passent en dessous de la moyenne mobile. L’achat est déclenché à chaque fois
que les cours passent au dessus de la moyenne mobile simple 50.
La gestion active du portefeuille suit les signaux de vente et d’achat du titre 1. Pour respecter les
contraintes financières et budgétaires, on donne à la part du titre 2 la valeur :
Part2 = 1 – Part 1
#####################################################################
# Pondération initiale issues de l'algorithme de Markovitz
print(a)
# Traitement des signaux
A1<-Mm(titre1,20)
B1<-Mm(titre1,50)
C1<-Mm(titre1,150)
A2<-Mm(titre2,20)
B2<-Mm(titre2,50)
C2<-Mm(titre2,150)
# Methode simple
nbre <- nrow(titre1)
# Identification des signaux
signe <- matrix(0,length(B1),2)
for(i in 2:(length(B1)-1)){
if(titre1[49+i]<B1[i-1] & titre1[i+51]>B1[i+1]){
signe[i,1] <- 1
}
if(titre1[49+i]>B1[i-1] & titre1[i+51]<B1[i+1]){
signe[i,1] <- -1
}
if(titre2[49+i]<B2[i-1] & titre2[i+51]>B2[i+1]){
signe[i,2] <- 1
}
if(titre2[49+i]>B2[i-1] & titre2[i+51]<B2[i+1]){
signe[i,2] <- -1
}
}
## Application de la stratégie suivant des signaux
ponderation <- matrix(0,length(B1),2)
ponderation[1,1] <- a[1]
ponderation[1,2] <- a[2]
for(i in 2:length(B1)){
if(signe[i,1]==1 & ponderation[i-1,1]>0){
ponderation[i,1] <- ponderation[i-1,1]
Projet R – Gestion active
ponderation[i,2] <- 1-ponderation[i,1]
}
if(signe[i,1]==-1 & ponderation[i-1,1]==0){
ponderation[i,1] <- 0
ponderation[i,2] <- 1-ponderation[i,1]
}
if(signe[i,1]==1 & ponderation[i-1,1]==0){
ponderation[i,1] <- 1
ponderation[i,2] <- 1-ponderation[i,1]
}
if(signe[i,1]==-1 & ponderation[i-1,1]>0){
ponderation[i,1] <- 0
ponderation[i,2] <- 1-ponderation[i,1]
}
if(signe[i,1]==0){
ponderation[i,1] <- ponderation[i-1,1]
ponderation[i,2] <- 1-ponderation[i,1]
}
}
# Performance du portefeuille
dataptf <- data[49:(length(B1)+49),]
for(i in 1:length(B1)){
perfo[i] <- dataptf[i,1]*ponderation[i,1]+dataptf[i,2]*ponderation[i,2]
}
rend <- mean(perfo)
risque <- sd(perfo)
# Annualisation
rendA <- ((1+rend)^254)-1
varA <- var(perfo)*254
Résultats
 La volatilité du portefeuille de gestion active est de 0.04417653.
 La performance du portefeuille de gestion active est de 0.1068705.
 La portefeuille géré par la gestion active dégage une performance plus élevée que le portefeuille
optimal de Markovitz et subit un risque moins important.
Projet R – Gestion active
Conclusion:
•
La gestion passive est un outil sûr et peu coûteux.
•
La gestion active est plus risquée mais reste un outil intéressant dans une configuration
baissière.
•
Il est plus judicieux de parler de complémentarité que d’incompatibilité entre ces deux
types de gestion.
Deux approches complémentaires à proposer:
I. Choisir sa gestion selon le marché:

Un portefeuille doit s'équilibrer entre les deux styles:
« Dans un marché haussier, il n'y a aucun intérêt à posséder dans son portefeuille des
gérants actifs »
« Il est rare, dans les périodes de hausse rapide, que la gestion active fasse mieux que les
indices »
En revanche, dans un marché baissier ou qui n'est pas directionnel, le risque pris sur les
gérants actifs paye très clairement.
II. La gestion cœur-satellite:
Definition:

Technique qui vise à combiner gestion passive et gestion active pour répondre à des objectifs
d'investissement à long terme.
Principe :


Investir une part substantielle du portefeuille en fonds indiciels benchmarké (gestion passive), ce
qui constituera le cœur (ou noyau) du placement.
Quant au solde du capital, il sera investi en actifs de nature différente. « Il peut s'agir d'actifs plus
risqués, mais potentiellement plus rémunérateurs, à l'instar de fonds émergents, ou d'actifs
décorrélés ».
Resultat:

La répartition entre ces actifs, coeur et satellites, se fait alors en fonction du degré de risque que
l'épargnant est prêt à supporter.