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.