Mabrouk Chetoune - taylankunal.files.wordpress.com · Gestion active Choix du portefeuille et...

15
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

Transcript of Mabrouk Chetoune - taylankunal.files.wordpress.com · Gestion active Choix du portefeuille et...

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 pour chaque actif

i. La covariance est souvent exprimée en termes de corrélation des rendements entre deux

actifs où

Volatilité du portefeuille :

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 sous-

optimaux, 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.