Essa atividade tem como objetivo avaliar a magnitude da medida de risco por meio do beta mercado e comparar os resultados de dois períodos (período A, 01-03-2023 a 29-05-2023 e período B, 01-02-2025 a 05-05-2025), observando as mudanças no processo seletivo da carteira, composta pelos ativos CSAN3, B3SA3, SLCE3, GGBR4 e RADL3.
2 Período A
2.0.1 Coleta de Dados
Code
setwd("C:/Users/Sandrielly/Documents/Ciencias Economicas/P6 - 2025.1/Gestao de Risco")remove(list=ls())gc()par(mfrow=c(1,1))options(scipen=999)options(max.print =100000)date()#install.packages("kableExtra")library(tseries)library(fBasics)library(tibble)library(kableExtra)#Período Adataini_A <-"2023-03-01"datafim_A <-"2023-05-29"## Busca dos Dadoscsan3 <-get.hist.quote("csan3.sa", quote ="Close", start = dataini_A, end = datafim_A); length(csan3); csan3b3sa3 <-get.hist.quote("b3sa3.sa", quote ="Close", start = dataini_A, end = datafim_A); length(b3sa3); b3sa3slce3 <-get.hist.quote("slce3.sa", quote ="Close", start = dataini_A, end = datafim_A); length(slce3); slce3ggbr4 <-get.hist.quote("ggbr4.sa", quote ="Close", start = dataini_A, end = datafim_A); length(ggbr4); ggbr4radl3 <-get.hist.quote("radl3.sa", quote ="Close", start = dataini_A, end = datafim_A); length(radl3); radl3ibov <-get.hist.quote("^BVSP", quote ="Close", start = dataini_A, end = datafim_A); length(ibov); ibov
2.0.2 Medidas estatísticas do retorno de cada ativo
Média, Desvio e Coeficiente de Variação dos Retornos Diários
Ativo
Média (%)
Desvio Padrão
Coeficiente de Variação
CSAN3
0.0794
0.0201
25.3400
B3SA3
0.4459
0.0245
5.4937
SLCE3
-0.4043
0.0148
-3.6589
GGBR4
-0.2017
0.0228
-11.3189
RADL3
0.4802
0.0135
2.8187
IBOV
0.1027
0.0120
11.6436
Os ativos CSAN3, B3SA3 e RADL3 apresentaram uma média positiva do retorno médio diário, indicando que apresentaram crescimento no período analisado (tendência de alta). O diferente ocorre com os ativos SLCE3 e GGBR4, que obteram desvalorização diária de, aproximadamente, 0.40% e 0.20%, respectivamente.
Quanto ao desvio-padrão, ele mede quanto os retornos diários do ativo variam em torno da média, servindo como uma medida de volatilidade: quanto mais volátil em torno da média, ou seja, do retorno médio diário, maior o risco (e o contrário é verdade). Porém, o desvio-padrão deve ser analisado juntamente com a média. No caso de CSAN3, seu desvio-padrão é de 2,01%, maior que média, ou seja, ele possui uma alta variação diária. O mesmo acontece com B3SA3, tendo uma dispersão dos retornos em 2,45%, todavia ofereceu um retorno um pouco maior (0,4459%).
O coeficiente de variação (CV) indica a relação risco-retorno de um ativo. O maior CV foi do ativo CSAN3 (25.3). Significa dizer que, para cada unidade adicional de retorno, o investidor assume 25 vezes mais risco. Como este ativo apresentou uma retorno relativamente baixo nesse período, o seu risco é muito alto, não havendo compensação risco-retorno. De forma mais simples, CSAN3 exige muito risco para pouco retorno.
# Elaborar a MATRIZ de dados para CAPM 5Ativos dados2=na.omit(merge(Ibov,Selic)) dados2=data.frame(index(dados2), dados2)names(dados2)=c("Data", "Ibovespa", "SELIC")attach(dados2); dados2library(zoo) Ativos=merge(csan3,b3sa3,slce3,ggbr4,radl3,Ibov,Selic)length(na.omit(Ativos[,1])) Data1=index(na.omit(Ativos));length(Data1) CarteiraBETA=data.frame(na.omit(Ativos),na.omit(Data1))names(CarteiraBETA)=c("csan3","b3sa3","slce3","ggbr4","radl3","Ibovespa","Selic", "Data1")attach(CarteiraBETA)options(max.print=99999) CarteiraBETA n=length(CarteiraBETA[,1]); n CarteiraBETA[n,]write.table(CarteiraBETA, file="BetaCarteira.txt")# Estimação do Beta Mercado dos Ativos CarteiraBETA<-read.table("BetaCarteira.txt", head=T)names(CarteiraBETA)<-c("csan3","b3sa3","slce3","ggbr4","radl3","Ibovespa","Selic", "Data")attach(CarteiraBETA) CarteiraBETA; length((CarteiraBETA$Selic)) CarteiraBETA$Ibovespa;length(CarteiraBETA$Ibovespa) CarteiraBETA$csan3;length(CarteiraBETA$csan3) CarteiraBETA$Selic;length(CarteiraBETA$Selic) rIbov=diff(log(Ibovespa));rIbov;length(rIbov) RIbov=rIbov*100;RIbov;mean(RIbov) RSelic=CarteiraBETA$Selic[-1];length(CarteiraBETA$Selic[-1]) RSelic rcsan3=diff(log(CarteiraBETA$csan3[-1]));length(CarteiraBETA$csan3[-1]) rb3sa3=diff(log(CarteiraBETA$b3sa3[-1]));length(CarteiraBETA$b3sa3[-1]) rslce3=diff(log(CarteiraBETA$slce3[-1]));length(CarteiraBETA$slce3[-1]) rggbr4=diff(log(CarteiraBETA$ggbr4[-1]));length(CarteiraBETA$ggbr4[-1]) rradl3=diff(log(CarteiraBETA$radl3[-1]));length(CarteiraBETA$radl3[-1])#RIbov=(rIbov-Selic[-1]) RIbov=(rIbov-RSelic);length(RIbov);RIbov Rcsan3=rcsan3-RSelic[-1] Rcsan3;length(Rcsan3) Rb3sa3=rb3sa3-RSelic[-1] Rslce3=rslce3-RSelic[-1] Rggbr4=rggbr4-RSelic[-1] Rradl3=rradl3-RSelic[-1]#Cálculo dos Betas Betacsan3=lm(Rcsan3~RIbov[-1]) Betacsan3 Betab3sa3=lm(Rb3sa3~RIbov[-1]);Betab3sa3 Betaslce3=lm(Rslce3~RIbov[-1]);Betaslce3 Betaggbr4=lm(Rggbr4~RIbov[-1]);Betaggbr4 Betaradl3=lm(Rradl3~RIbov[-1]);Betaradl3
Code
# Elaboração do Gráfico de Comparação dos Betas names=c("csan3","b3sa3","slce3","ggbr4","radl3") BETA.Mercado=c(Betacsan3$coef[2],Betab3sa3$coef[2],Betaslce3$coef[2],Betaggbr4$coef[2],Betaradl3$coef[2]);names;BETA.Mercado
bpb<-barplot(BETA.Mercado, main="Gráf.4:Cálculo do Beta-Mercado da Carteira Sugerida (60 dias)", ylim=c(0,3.0),names.arg=names, ylab="Percentual %", cex.names=1, col="darkgreen")text(x =as.vector(bpb), y = BETA.Mercado, label =round(BETA.Mercado, 2), pos =3, col ="black",cex=0.8)
O beta mercado mede a exposição sistemática (economia como um todo) do risco de mercado, ou seja, mede o risco que não pode ser eliminado pela diversificação. Se o beta for igual a 1, indica que o risco do ativo é igual ao risco sistemático, acompanhando o mercado. Sendo o beta maior do que 1, significa dizer que o risco do ativo é maior que o mercado (risco do ativo possui maior volatilidade). B3SA3, por exemplo, possui um beta de 1.71, logo ele varia 71% a mais que o mercado. GGBR4 também é mais volátil que o mercado (beta igual a 1.15), assim como CSAN3 (30% mais volátil que o IBOV). Já os ativos SLCE3 e RADL3 tendem a se mover menos com relação ao índice de mercado, sendo os betas de 0.26 e 0.53, respectivamente.
2.0.4 Indicadores de Performance
2.0.5 Treynor
Code
#-----------TREYNOR(1965)---------------------{mean(csan3)*100Betacsan3$coef[2]Treynor<-mean(Rcsan3)*100/Betacsan3$coef[2];TreynorTREYNOR=c(mean(Rcsan3)*100/Betacsan3$coef[2],mean(Rb3sa3)*100/Betab3sa3$coef[2],mean(Rslce3)*100/Betaslce3$coef[2],mean(Rggbr4)*100/Betaggbr4$coef[2],mean(Rradl3)*100/Betaradl3$coef[2]);names;TREYNORbpTreynor<-barplot(TREYNOR, main="Indicador de Performance: Treynor", ylim=c(-10,1),names.arg=names, ylab="Percentual %", cex.names=1)text(x =as.vector(bpTreynor), y = TREYNOR, label =round(TREYNOR, 4), pos =3, col ="black", cex =0.8)}
O índice de Treynor mede quanto o retorno excedente com relação a taxa livre de risco o ativo gerou para cada unidade do risco sistemático (beta). O caso acima (Treynor negativo) significa dizer que o ativo teve desempenho abaixo do ativo que é livre de risco (destruiu valor). Quando o índice é maior, quer dizer que o ativo/carteira foi eficiente no uso do risco sistemático, entregando mais retorno por unidade adicional de beta. Se o índice for menor, implica dizer que o retorno adicional é fraco em relação ao risco sistemático.
2.0.6 Sharpe
Code
#-----------SHARPE(1966)---------------------- {mean(Rcsan3)sd(Rcsan3) Sharpe<-mean(Rcsan3)/sd(Rcsan3);Sharpe SHARPE=c(mean(Rcsan3)/sd(Rcsan3),mean(Rb3sa3)/sd(Rb3sa3),mean(Rslce3)/sd(Rslce3),mean(Rggbr4)/sd(Rggbr4),mean(Rradl3)/sd(Rradl3));names;SHARPE bpSharpe<-barplot(SHARPE, main="Indicador de Performance: Sharpe", ylim=c(-4,1),names.arg=names, ylab="Percentual %", cex.names=1)text(x =as.vector(bpSharpe), y = SHARPE, label =round(SHARPE, 4), pos =3, col ="black", cex =0.8) }
O índice de Sharpe oferece uma medida de eficiência da relação risco-retorno do ativo/portfólio, ou seja, é uma relação entre o retorno que o ativo oferece ao nível de risco que ele representa (desvio-padrão). Ele é calculado a partir da razão da diferença entre o retorno do ativo e a taxa livre de risco pelo desvio-padrão. Sendo ele negativo, significa que o retorno do ativo não supera o retorno do ativo livre de risco, indicando que não vale a pena investir na ação.
2.0.7 Jensen
Code
{ names=c("csan3","b3sa3","slce3","ggbr4","radl3") JENSEN=c(Betacsan3$coef[1],Betab3sa3$coef[1],Betaslce3$coef[1],Betaggbr4$coef[1],Betaradl3$coef[1]);names;JENSEN bpJensen<-barplot(JENSEN, main="Indicador de Performance: Jensen", ylim=c(-0.02,0.09),names.arg=names, ylab="Percentual %", cex.names=0.7)text(x =as.vector(bpJensen), y = JENSEN, label =round(JENSEN, 4), pos =3, col ="black", cex =0.7) }
Por fim, o índice de Jensen, que mostra se o ativo rendeu mais, igual ou menos do que o retorno esperado para um determinado nível de risco assumido. A maioria dos índices para cada ativo foi positivo, ou seja, ativo superou o retorno esperado para o risco sistemático, gerando valor. Os ativos SLCE3 e RADL3 obtiveram alfa negativo, indicando que o ativo não compensou o risco que foi assumido.
3 Período B
3.0.1 Coleta de Dados
Code
setwd("C:/Users/Sandrielly/Documents/Ciencias Economicas/P6 - 2025.1/Gestao de Risco")remove(list=ls())gc()par(mfrow=c(1,1))options(scipen=999)options(max.print =100000)date()#install.packages("kableExtra")library(tseries)library(fBasics)library(tibble)library(kableExtra)#Período Adataini_B <-"2025-02-01"datafim_B <-"2025-05-05"## Busca dos Dadoscsan3 <-get.hist.quote("csan3.sa", quote ="Close", start = dataini_B, end = datafim_B); length(csan3); csan3b3sa3 <-get.hist.quote("b3sa3.sa", quote ="Close", start = dataini_B, end = datafim_B); length(b3sa3); b3sa3slce3 <-get.hist.quote("slce3.sa", quote ="Close", start = dataini_B, end = datafim_B); length(slce3); slce3ggbr4 <-get.hist.quote("ggbr4.sa", quote ="Close", start = dataini_B, end = datafim_B); length(ggbr4); ggbr4radl3 <-get.hist.quote("radl3.sa", quote ="Close", start = dataini_B, end = datafim_B); length(radl3); radl3ibov <-get.hist.quote("^BVSP", quote ="Close", start = dataini_B, end = datafim_B); length(ibov); ibov
3.0.2 Medidas estatísticas do retorno de cada ativo
Média, Desvio e Coeficiente de Variação dos Retornos Diários
Ativo
Média (%)
Desvio Padrão
Coeficiente de Variação
CSAN3
0.0450
0.0289
64.1744
B3SA3
0.2986
0.0266
8.9011
SLCE3
0.2308
0.0196
8.5034
GGBR4
-0.2661
0.0221
-8.2899
RADL3
-0.0443
0.0262
-59.0840
IBOV
0.1190
0.0112
9.3789
No segundo período (B) analisado, os ativos CSAN3 e B3SA3 continuaram apresentando ganho médio diário em comparação ao período A. Já SLCE3 e RADL3 tiveram direções opostas em comparação ao período analisado anteriormente, sendo o primeiro com crescimento no retorno médio diário e o segundo com tendência de queda.
O ativo que apresentou menor dispersão dos retornos foi SLCE3, indicando que seu retorno foi próximo da média, logo seu preço ele teve mais estabilidade ao longo do período, com baixa volatilidade. Quanto ao ativo CSAN3, sua volatilidade diária foi alta, indicando que as oscilações foram mais intensas do que o retorno médio.
O CV de CSAN3 explica ainda melhor esse movimento, apontando que o risco é muito grande com relação ao retorno esperado (investidor assume 64 unidades de risco para cada unidade adicional de retorno esperado), ou seja, o ativo não compensa o risco de maneira eficiente.
# Elaborar a MATRIZ de dados para CAPM 5Ativos dados2=na.omit(merge(Ibov,Selic)) dados2=data.frame(index(dados2), dados2)names(dados2)=c("Data", "Ibovespa", "SELIC")attach(dados2); dados2library(zoo) Ativos=merge(csan3,b3sa3,slce3,ggbr4,radl3,Ibov,Selic)length(na.omit(Ativos[,1])) Data1=index(na.omit(Ativos));length(Data1) CarteiraBETA=data.frame(na.omit(Ativos),na.omit(Data1))names(CarteiraBETA)=c("csan3","b3sa3","slce3","ggbr4","radl3","Ibovespa","Selic", "Data1")attach(CarteiraBETA)options(max.print=99999) CarteiraBETA n=length(CarteiraBETA[,1]); n CarteiraBETA[n,]write.table(CarteiraBETA, file="BetaCarteira.txt")# Estimação do Beta Mercado dos Ativos CarteiraBETA<-read.table("BetaCarteira.txt", head=T)names(CarteiraBETA)<-c("csan3","b3sa3","slce3","ggbr4","radl3","Ibovespa","Selic", "Data")attach(CarteiraBETA) CarteiraBETA; length((CarteiraBETA$Selic)) CarteiraBETA$Ibovespa;length(CarteiraBETA$Ibovespa) CarteiraBETA$csan3;length(CarteiraBETA$csan3) CarteiraBETA$Selic;length(CarteiraBETA$Selic) rIbov=diff(log(Ibovespa));rIbov;length(rIbov) RIbov=rIbov*100;RIbov;mean(RIbov) RSelic=CarteiraBETA$Selic[-1];length(CarteiraBETA$Selic[-1]) RSelic rcsan3=diff(log(CarteiraBETA$csan3[-1]));length(CarteiraBETA$csan3[-1]) rb3sa3=diff(log(CarteiraBETA$b3sa3[-1]));length(CarteiraBETA$b3sa3[-1]) rslce3=diff(log(CarteiraBETA$slce3[-1]));length(CarteiraBETA$slce3[-1]) rggbr4=diff(log(CarteiraBETA$ggbr4[-1]));length(CarteiraBETA$ggbr4[-1]) rradl3=diff(log(CarteiraBETA$radl3[-1]));length(CarteiraBETA$radl3[-1])#RIbov=(rIbov-Selic[-1]) RIbov=(rIbov-RSelic);length(RIbov);RIbov Rcsan3=rcsan3-RSelic[-1] Rcsan3;length(Rcsan3) Rb3sa3=rb3sa3-RSelic[-1] Rslce3=rslce3-RSelic[-1] Rggbr4=rggbr4-RSelic[-1] Rradl3=rradl3-RSelic[-1]#Cálculo dos Betas Betacsan3=lm(Rcsan3~RIbov[-1]) Betacsan3 Betab3sa3=lm(Rb3sa3~RIbov[-1]);Betab3sa3 Betaslce3=lm(Rslce3~RIbov[-1]);Betaslce3 Betaggbr4=lm(Rggbr4~RIbov[-1]);Betaggbr4 Betaradl3=lm(Rradl3~RIbov[-1]);Betaradl3
Code
# Elaboração do Gráfico de Comparação dos Betas names=c("csan3","b3sa3","slce3","ggbr4","radl3") BETA.Mercado=c(Betacsan3$coef[2],Betab3sa3$coef[2],Betaslce3$coef[2],Betaggbr4$coef[2],Betaradl3$coef[2]);names;BETA.Mercado
bpb<-barplot(BETA.Mercado, main="Gráf.4:Cálculo do Beta-Mercado da Carteira Sugerida (60 dias)", ylim=c(0,3.0),names.arg=names, ylab="Percentual %", cex.names=1, col="darkgreen")text(x =as.vector(bpb), y = BETA.Mercado, label =round(BETA.Mercado, 2), pos =3, col ="black",cex=0.8)
Neste segundo período estudado, a maioria dos ativosm foram mais voláteis que o mercado. CSAN3 é o que apresenta o risto sistemático maior. Quanto ao ativo SLCE3, teve seu beta menor que 1 e positivo, indicando que ele foi menos volátil que o mercado ao longo do período visto.
3.0.4 Indicadores de Performance
3.0.5 Treynor
Code
#-----------TREYNOR(1965)---------------------{mean(csan3)*100Betacsan3$coef[2]Treynor<-mean(Rcsan3)*100/Betacsan3$coef[2];TreynorTREYNOR=c(mean(Rcsan3)*100/Betacsan3$coef[2],mean(Rb3sa3)*100/Betab3sa3$coef[2],mean(Rslce3)*100/Betaslce3$coef[2],mean(Rggbr4)*100/Betaggbr4$coef[2],mean(Rradl3)*100/Betaradl3$coef[2]);names;TREYNORbpTreynor<-barplot(TREYNOR, main="Indicador de Performance: Treynor", ylim=c(-10,1),names.arg=names, ylab="Percentual %", cex.names=1)text(x =as.vector(bpTreynor), y = TREYNOR, label =round(TREYNOR, 4), pos =3, col ="black", cex =0.8)}
O índice de Treynor demonstra, mais uma vez, que todos os ativos destruíram valor no período observado, tendo desempenho abaixo do ativo livre de risco. Neste caso, o retorno adicional de cada ativo não compensou o risco de mercado, especialmente o ativo SLCE3, que teve o maior valor negativo.
3.0.6 Sharpe
Code
#-----------SHARPE(1966)---------------------- {mean(Rcsan3)sd(Rcsan3) Sharpe<-mean(Rcsan3)/sd(Rcsan3);Sharpe SHARPE=c(mean(Rcsan3)/sd(Rcsan3),mean(Rb3sa3)/sd(Rb3sa3),mean(Rslce3)/sd(Rslce3),mean(Rggbr4)/sd(Rggbr4),mean(Rradl3)/sd(Rradl3));names;SHARPE bpSharpe<-barplot(SHARPE, main="Indicador de Performance: Sharpe", ylim=c(-4,1),names.arg=names, ylab="Percentual %", cex.names=1)text(x =as.vector(bpSharpe), y = SHARPE, label =round(SHARPE, 4), pos =3, col ="black", cex =0.8) }
O índice de Sharpe também demonstra que nenhum os ativos supera o retorno da taxa livre de risco, não indicando uma boa escolha de investimento. Não há boa eficiência na relação risco-retorno.
3.0.7 Jensen
Code
{ names=c("csan3","b3sa3","slce3","ggbr4","radl3") JENSEN=c(Betacsan3$coef[1],Betab3sa3$coef[1],Betaslce3$coef[1],Betaggbr4$coef[1],Betaradl3$coef[1]);names;JENSEN bpJensen<-barplot(JENSEN, main="Indicador de Performance: Jensen", ylim=c(-0.02,0.09),names.arg=names, ylab="Percentual %", cex.names=0.7)text(x =as.vector(bpJensen), y = JENSEN, label =round(JENSEN, 4), pos =3, col ="black", cex =0.7) }
De acordo com o índice de Jensen, todos os ativos, exceto SLCE3, geraram valor, superando o mercado ajustado ao nível de risco. O ativo SLCE3 teve seu índice negativo, demonstrando que o risco de mercado não foi compensado, rendendo menos do que o retorno esperado.
4 Conclusão
A análise mostrou que a magnitude do risco mudou de um período para outro. No período B, os ativos demonstraram um maior beta, indicando que houve maior exposição ao risco sistemático, que é o risco do mercado como um todo. Os índices de Treynor e Sharpe mostraram que os ativos tiveram desempenho abaixo do mercado, sem geração de valor. Já o índice de Jensen apresentou um melhor comportamento no período B, mostrando que alguns ativos geraram valor a um nível ajustado de risco. Logo, é necessário balancear ativos de alto CV com ativos de baixo CV, e monitorar o beta da carteira ou dos ativos para que o risco seja compatível ao perfil do investidor.
Source Code
---title: "Quiz 1"format: html: code-fold: true code-tools: true toc: true toc-depth: 3 number-sections: trueeditor: visual---# IntroduçãoEssa atividade tem como objetivo avaliar a magnitude da medida de risco por meio do beta mercado e comparar os resultados de dois períodos (período A, 01-03-2023 a 29-05-2023 e período B, 01-02-2025 a 05-05-2025), observando as mudanças no processo seletivo da carteira, composta pelos ativos CSAN3, B3SA3, SLCE3, GGBR4 e RADL3.# Período A### Coleta de Dados```{r,echo=TRUE, message=FALSE, warning=FALSE, results='hide'}setwd("C:/Users/Sandrielly/Documents/Ciencias Economicas/P6 - 2025.1/Gestao de Risco")remove(list=ls())gc()par(mfrow=c(1,1))options(scipen=999)options(max.print = 100000)date()#install.packages("kableExtra")library(tseries)library(fBasics)library(tibble)library(kableExtra)#Período Adataini_A <- "2023-03-01"datafim_A <- "2023-05-29"## Busca dos Dadoscsan3 <- get.hist.quote("csan3.sa", quote = "Close", start = dataini_A, end = datafim_A); length(csan3); csan3b3sa3 <- get.hist.quote("b3sa3.sa", quote = "Close", start = dataini_A, end = datafim_A); length(b3sa3); b3sa3slce3 <- get.hist.quote("slce3.sa", quote = "Close", start = dataini_A, end = datafim_A); length(slce3); slce3ggbr4 <- get.hist.quote("ggbr4.sa", quote = "Close", start = dataini_A, end = datafim_A); length(ggbr4); ggbr4radl3 <- get.hist.quote("radl3.sa", quote = "Close", start = dataini_A, end = datafim_A); length(radl3); radl3ibov <- get.hist.quote("^BVSP", quote = "Close", start = dataini_A, end = datafim_A); length(ibov); ibov```### Medidas estatísticas do retorno de cada ativo```{r}# Retornos logarítmicos, médias (%), desvios e CV dos 5 ativos + IBOVrcsan3 <-diff(log(csan3)); mrcsan3 <-mean(rcsan3)*100; Drcsan3 <-sd(rcsan3); cvcsan3 <- Drcsan3/mrcsan3*100rb3sa3 <-diff(log(b3sa3)); mrb3sa3 <-mean(rb3sa3)*100; Drb3sa3 <-sd(rb3sa3); cvb3sa3 <- Drb3sa3/mrb3sa3*100rslce3 <-diff(log(slce3)); mrslce3 <-mean(rslce3)*100; Drslce3 <-sd(rslce3); cvslce3 <- Drslce3/mrslce3*100rggbr4 <-diff(log(ggbr4)); mrggbr4 <-mean(rggbr4)*100; Drggbr4 <-sd(rggbr4); cvggbr4 <- Drggbr4/mrggbr4*100rradl3 <-diff(log(radl3)); mrradl3 <-mean(rradl3)*100; Drradl3 <-sd(rradl3); cvradl3 <- Drradl3/mrradl3*100ribov <-diff(log(ibov)); mribov <-mean(ribov)*100; Dribov <-sd(ribov); cvibov <- Dribov/mribov*100# Tabelatabela_retornos <- tibble::tibble(Ativo =c("CSAN3", "B3SA3", "SLCE3", "GGBR4", "RADL3", "IBOV"),`Média (%)`=c(mrcsan3, mrb3sa3, mrslce3, mrggbr4, mrradl3, mribov),`Desvio Padrão`=c(Drcsan3, Drb3sa3, Drslce3, Drggbr4, Drradl3, Dribov),`Coeficiente de Variação`=c(cvcsan3, cvb3sa3, cvslce3, cvggbr4, cvradl3, cvibov))# Exibe a tabela formatadaknitr::kable(tabela_retornos, digits =4,caption ="Média, Desvio e Coeficiente de Variação dos Retornos Diários") %>% kableExtra::kable_styling(bootstrap_options =c("striped", "hover", "condensed", "responsive"),full_width =FALSE)```Os ativos CSAN3, B3SA3 e RADL3 apresentaram uma média positiva do retorno médio diário, indicando que apresentaram crescimento no período analisado (tendência de alta). O diferente ocorre com os ativos SLCE3 e GGBR4, que obteram desvalorização diária de, aproximadamente, 0.40% e 0.20%, respectivamente.Quanto ao desvio-padrão, ele mede quanto os retornos diários do ativo variam em torno da média, servindo como uma medida de volatilidade: quanto mais volátil em torno da média, ou seja, do retorno médio diário, maior o risco (e o contrário é verdade). Porém, o desvio-padrão deve ser analisado juntamente com a média. No caso de CSAN3, seu desvio-padrão é de 2,01%, maior que média, ou seja, ele possui uma alta variação diária. O mesmo acontece com B3SA3, tendo uma dispersão dos retornos em 2,45%, todavia ofereceu um retorno um pouco maior (0,4459%).O coeficiente de variação (CV) indica a relação risco-retorno de um ativo. O maior CV foi do ativo CSAN3 (25.3). Significa dizer que, para cada unidade adicional de retorno, o investidor assume 25 vezes mais risco. Como este ativo apresentou uma retorno relativamente baixo nesse período, o seu risco é muito alto, não havendo compensação risco-retorno. De forma mais simples, CSAN3 exige muito risco para pouco retorno.### Betas Mercados```{r,echo=TRUE, message=FALSE, warning=FALSE, results='hide'}# BUSCAR SELIC DIÁRIA library(rbcb) selic <- get_series(11, start_date = dataini_A,end_date =datafim_A);selic library(zoo) Selic=zoo(selic$'11') index(Selic)=selic$date Selic; plot(Selic)# BUSCAR IBOVESPA Ibov <- get.hist.quote("^BVSP", quote = "Close", start = dataini_A,end = datafim_A) Ibov <- na.omit(Ibov) length(Ibov) Ibov plot(Ibov, main = "Preços de Fechamento - IBOV")# Elaborar a MATRIZ de dados para CAPM 5Ativos dados2=na.omit(merge(Ibov,Selic)) dados2=data.frame(index(dados2), dados2) names(dados2)=c("Data", "Ibovespa", "SELIC") attach(dados2); dados2 library(zoo) Ativos=merge(csan3,b3sa3,slce3,ggbr4,radl3,Ibov,Selic) length(na.omit(Ativos[,1])) Data1=index(na.omit(Ativos));length(Data1) CarteiraBETA=data.frame(na.omit(Ativos),na.omit(Data1)) names(CarteiraBETA)=c("csan3","b3sa3","slce3","ggbr4","radl3","Ibovespa","Selic", "Data1") attach(CarteiraBETA) options(max.print=99999) CarteiraBETA n=length(CarteiraBETA[,1]); n CarteiraBETA[n,] write.table(CarteiraBETA, file="BetaCarteira.txt")# Estimação do Beta Mercado dos Ativos CarteiraBETA<-read.table("BetaCarteira.txt", head=T) names(CarteiraBETA)<-c("csan3","b3sa3","slce3","ggbr4","radl3","Ibovespa","Selic", "Data") attach(CarteiraBETA) CarteiraBETA; length((CarteiraBETA$Selic)) CarteiraBETA$Ibovespa;length(CarteiraBETA$Ibovespa) CarteiraBETA$csan3;length(CarteiraBETA$csan3) CarteiraBETA$Selic;length(CarteiraBETA$Selic) rIbov=diff(log(Ibovespa));rIbov;length(rIbov) RIbov=rIbov*100;RIbov;mean(RIbov) RSelic=CarteiraBETA$Selic[-1];length(CarteiraBETA$Selic[-1]) RSelic rcsan3=diff(log(CarteiraBETA$csan3[-1]));length(CarteiraBETA$csan3[-1]) rb3sa3=diff(log(CarteiraBETA$b3sa3[-1]));length(CarteiraBETA$b3sa3[-1]) rslce3=diff(log(CarteiraBETA$slce3[-1]));length(CarteiraBETA$slce3[-1]) rggbr4=diff(log(CarteiraBETA$ggbr4[-1]));length(CarteiraBETA$ggbr4[-1]) rradl3=diff(log(CarteiraBETA$radl3[-1]));length(CarteiraBETA$radl3[-1]) #RIbov=(rIbov-Selic[-1]) RIbov=(rIbov-RSelic);length(RIbov);RIbov Rcsan3=rcsan3-RSelic[-1] Rcsan3;length(Rcsan3) Rb3sa3=rb3sa3-RSelic[-1] Rslce3=rslce3-RSelic[-1] Rggbr4=rggbr4-RSelic[-1] Rradl3=rradl3-RSelic[-1] #Cálculo dos Betas Betacsan3=lm(Rcsan3~RIbov[-1]) Betacsan3 Betab3sa3=lm(Rb3sa3~RIbov[-1]);Betab3sa3 Betaslce3=lm(Rslce3~RIbov[-1]);Betaslce3 Betaggbr4=lm(Rggbr4~RIbov[-1]);Betaggbr4 Betaradl3=lm(Rradl3~RIbov[-1]);Betaradl3``````{r}# Elaboração do Gráfico de Comparação dos Betas names=c("csan3","b3sa3","slce3","ggbr4","radl3") BETA.Mercado=c(Betacsan3$coef[2],Betab3sa3$coef[2],Betaslce3$coef[2],Betaggbr4$coef[2],Betaradl3$coef[2]);names;BETA.Mercado bpb<-barplot(BETA.Mercado, main="Gráf.4:Cálculo do Beta-Mercado da Carteira Sugerida (60 dias)", ylim=c(0,3.0),names.arg=names, ylab="Percentual %", cex.names=1, col="darkgreen")text(x =as.vector(bpb), y = BETA.Mercado, label =round(BETA.Mercado, 2), pos =3, col ="black",cex=0.8)```O beta mercado mede a exposição sistemática (economia como um todo) do risco de mercado, ou seja, mede o risco que não pode ser eliminado pela diversificação. Se o beta for igual a 1, indica que o risco do ativo é igual ao risco sistemático, acompanhando o mercado. Sendo o beta maior do que 1, significa dizer que o risco do ativo é maior que o mercado (risco do ativo possui maior volatilidade). B3SA3, por exemplo, possui um beta de 1.71, logo ele varia 71% a mais que o mercado. GGBR4 também é mais volátil que o mercado (beta igual a 1.15), assim como CSAN3 (30% mais volátil que o IBOV). Já os ativos SLCE3 e RADL3 tendem a se mover menos com relação ao índice de mercado, sendo os betas de 0.26 e 0.53, respectivamente.### Indicadores de Performance### Treynor```{r}#-----------TREYNOR(1965)---------------------{mean(csan3)*100Betacsan3$coef[2]Treynor<-mean(Rcsan3)*100/Betacsan3$coef[2];TreynorTREYNOR=c(mean(Rcsan3)*100/Betacsan3$coef[2],mean(Rb3sa3)*100/Betab3sa3$coef[2],mean(Rslce3)*100/Betaslce3$coef[2],mean(Rggbr4)*100/Betaggbr4$coef[2],mean(Rradl3)*100/Betaradl3$coef[2]);names;TREYNORbpTreynor<-barplot(TREYNOR, main="Indicador de Performance: Treynor", ylim=c(-10,1),names.arg=names, ylab="Percentual %", cex.names=1)text(x =as.vector(bpTreynor), y = TREYNOR, label =round(TREYNOR, 4), pos =3, col ="black", cex =0.8)}```O índice de Treynor mede quanto o retorno excedente com relação a taxa livre de risco o ativo gerou para cada unidade do risco sistemático (beta). O caso acima (Treynor negativo) significa dizer que o ativo teve desempenho abaixo do ativo que é livre de risco (destruiu valor). Quando o índice é maior, quer dizer que o ativo/carteira foi eficiente no uso do risco sistemático, entregando mais retorno por unidade adicional de beta. Se o índice for menor, implica dizer que o retorno adicional é fraco em relação ao risco sistemático.### Sharpe```{r}#-----------SHARPE(1966)---------------------- {mean(Rcsan3)sd(Rcsan3) Sharpe<-mean(Rcsan3)/sd(Rcsan3);Sharpe SHARPE=c(mean(Rcsan3)/sd(Rcsan3),mean(Rb3sa3)/sd(Rb3sa3),mean(Rslce3)/sd(Rslce3),mean(Rggbr4)/sd(Rggbr4),mean(Rradl3)/sd(Rradl3));names;SHARPE bpSharpe<-barplot(SHARPE, main="Indicador de Performance: Sharpe", ylim=c(-4,1),names.arg=names, ylab="Percentual %", cex.names=1)text(x =as.vector(bpSharpe), y = SHARPE, label =round(SHARPE, 4), pos =3, col ="black", cex =0.8) }```O índice de Sharpe oferece uma medida de eficiência da relação risco-retorno do ativo/portfólio, ou seja, é uma relação entre o retorno que o ativo oferece ao nível de risco que ele representa (desvio-padrão). Ele é calculado a partir da razão da diferença entre o retorno do ativo e a taxa livre de risco pelo desvio-padrão. Sendo ele negativo, significa que o retorno do ativo não supera o retorno do ativo livre de risco, indicando que não vale a pena investir na ação.### Jensen```{r} { names=c("csan3","b3sa3","slce3","ggbr4","radl3") JENSEN=c(Betacsan3$coef[1],Betab3sa3$coef[1],Betaslce3$coef[1],Betaggbr4$coef[1],Betaradl3$coef[1]);names;JENSEN bpJensen<-barplot(JENSEN, main="Indicador de Performance: Jensen", ylim=c(-0.02,0.09),names.arg=names, ylab="Percentual %", cex.names=0.7)text(x =as.vector(bpJensen), y = JENSEN, label =round(JENSEN, 4), pos =3, col ="black", cex =0.7) }```Por fim, o índice de Jensen, que mostra se o ativo rendeu mais, igual ou menos do que o retorno esperado para um determinado nível de risco assumido. A maioria dos índices para cada ativo foi positivo, ou seja, ativo superou o retorno esperado para o risco sistemático, gerando valor. Os ativos SLCE3 e RADL3 obtiveram alfa negativo, indicando que o ativo não compensou o risco que foi assumido.# Período B### Coleta de Dados```{r,echo=TRUE, message=FALSE, warning=FALSE, results='hide'}setwd("C:/Users/Sandrielly/Documents/Ciencias Economicas/P6 - 2025.1/Gestao de Risco")remove(list=ls())gc()par(mfrow=c(1,1))options(scipen=999)options(max.print = 100000)date()#install.packages("kableExtra")library(tseries)library(fBasics)library(tibble)library(kableExtra)#Período Adataini_B <- "2025-02-01"datafim_B <- "2025-05-05"## Busca dos Dadoscsan3 <- get.hist.quote("csan3.sa", quote = "Close", start = dataini_B, end = datafim_B); length(csan3); csan3b3sa3 <- get.hist.quote("b3sa3.sa", quote = "Close", start = dataini_B, end = datafim_B); length(b3sa3); b3sa3slce3 <- get.hist.quote("slce3.sa", quote = "Close", start = dataini_B, end = datafim_B); length(slce3); slce3ggbr4 <- get.hist.quote("ggbr4.sa", quote = "Close", start = dataini_B, end = datafim_B); length(ggbr4); ggbr4radl3 <- get.hist.quote("radl3.sa", quote = "Close", start = dataini_B, end = datafim_B); length(radl3); radl3ibov <- get.hist.quote("^BVSP", quote = "Close", start = dataini_B, end = datafim_B); length(ibov); ibov```### Medidas estatísticas do retorno de cada ativo```{r}# Retornos logarítmicos, médias (%), desvios e CV dos 5 ativos + IBOVrcsan3 <-diff(log(csan3)); mrcsan3 <-mean(rcsan3)*100; Drcsan3 <-sd(rcsan3); cvcsan3 <- Drcsan3/mrcsan3*100rb3sa3 <-diff(log(b3sa3)); mrb3sa3 <-mean(rb3sa3)*100; Drb3sa3 <-sd(rb3sa3); cvb3sa3 <- Drb3sa3/mrb3sa3*100rslce3 <-diff(log(slce3)); mrslce3 <-mean(rslce3)*100; Drslce3 <-sd(rslce3); cvslce3 <- Drslce3/mrslce3*100rggbr4 <-diff(log(ggbr4)); mrggbr4 <-mean(rggbr4)*100; Drggbr4 <-sd(rggbr4); cvggbr4 <- Drggbr4/mrggbr4*100rradl3 <-diff(log(radl3)); mrradl3 <-mean(rradl3)*100; Drradl3 <-sd(rradl3); cvradl3 <- Drradl3/mrradl3*100ribov <-diff(log(ibov)); mribov <-mean(ribov)*100; Dribov <-sd(ribov); cvibov <- Dribov/mribov*100# Tabelatabela_retornos <- tibble::tibble(Ativo =c("CSAN3", "B3SA3", "SLCE3", "GGBR4", "RADL3", "IBOV"),`Média (%)`=c(mrcsan3, mrb3sa3, mrslce3, mrggbr4, mrradl3, mribov),`Desvio Padrão`=c(Drcsan3, Drb3sa3, Drslce3, Drggbr4, Drradl3, Dribov),`Coeficiente de Variação`=c(cvcsan3, cvb3sa3, cvslce3, cvggbr4, cvradl3, cvibov))# Exibe a tabela formatadaknitr::kable(tabela_retornos, digits =4,caption ="Média, Desvio e Coeficiente de Variação dos Retornos Diários") %>% kableExtra::kable_styling(bootstrap_options =c("striped", "hover", "condensed", "responsive"),full_width =FALSE)```No segundo período (B) analisado, os ativos CSAN3 e B3SA3 continuaram apresentando ganho médio diário em comparação ao período A. Já SLCE3 e RADL3 tiveram direções opostas em comparação ao período analisado anteriormente, sendo o primeiro com crescimento no retorno médio diário e o segundo com tendência de queda.O ativo que apresentou menor dispersão dos retornos foi SLCE3, indicando que seu retorno foi próximo da média, logo seu preço ele teve mais estabilidade ao longo do período, com baixa volatilidade. Quanto ao ativo CSAN3, sua volatilidade diária foi alta, indicando que as oscilações foram mais intensas do que o retorno médio.O CV de CSAN3 explica ainda melhor esse movimento, apontando que o risco é muito grande com relação ao retorno esperado (investidor assume 64 unidades de risco para cada unidade adicional de retorno esperado), ou seja, o ativo não compensa o risco de maneira eficiente.### Betas Mercados```{r,echo=TRUE, message=FALSE, warning=FALSE, results='hide'}# BUSCAR SELIC DIÁRIA library(rbcb) selic <- get_series(11, start_date = dataini_B,end_date =datafim_B);selic library(zoo) Selic=zoo(selic$'11') index(Selic)=selic$date Selic; plot(Selic)# BUSCAR IBOVESPA Ibov <- get.hist.quote("^BVSP", quote = "Close", start = dataini_B,end = datafim_B) Ibov <- na.omit(Ibov) length(Ibov) Ibov plot(Ibov, main = "Preços de Fechamento - IBOV")# Elaborar a MATRIZ de dados para CAPM 5Ativos dados2=na.omit(merge(Ibov,Selic)) dados2=data.frame(index(dados2), dados2) names(dados2)=c("Data", "Ibovespa", "SELIC") attach(dados2); dados2 library(zoo) Ativos=merge(csan3,b3sa3,slce3,ggbr4,radl3,Ibov,Selic) length(na.omit(Ativos[,1])) Data1=index(na.omit(Ativos));length(Data1) CarteiraBETA=data.frame(na.omit(Ativos),na.omit(Data1)) names(CarteiraBETA)=c("csan3","b3sa3","slce3","ggbr4","radl3","Ibovespa","Selic", "Data1") attach(CarteiraBETA) options(max.print=99999) CarteiraBETA n=length(CarteiraBETA[,1]); n CarteiraBETA[n,] write.table(CarteiraBETA, file="BetaCarteira.txt")# Estimação do Beta Mercado dos Ativos CarteiraBETA<-read.table("BetaCarteira.txt", head=T) names(CarteiraBETA)<-c("csan3","b3sa3","slce3","ggbr4","radl3","Ibovespa","Selic", "Data") attach(CarteiraBETA) CarteiraBETA; length((CarteiraBETA$Selic)) CarteiraBETA$Ibovespa;length(CarteiraBETA$Ibovespa) CarteiraBETA$csan3;length(CarteiraBETA$csan3) CarteiraBETA$Selic;length(CarteiraBETA$Selic) rIbov=diff(log(Ibovespa));rIbov;length(rIbov) RIbov=rIbov*100;RIbov;mean(RIbov) RSelic=CarteiraBETA$Selic[-1];length(CarteiraBETA$Selic[-1]) RSelic rcsan3=diff(log(CarteiraBETA$csan3[-1]));length(CarteiraBETA$csan3[-1]) rb3sa3=diff(log(CarteiraBETA$b3sa3[-1]));length(CarteiraBETA$b3sa3[-1]) rslce3=diff(log(CarteiraBETA$slce3[-1]));length(CarteiraBETA$slce3[-1]) rggbr4=diff(log(CarteiraBETA$ggbr4[-1]));length(CarteiraBETA$ggbr4[-1]) rradl3=diff(log(CarteiraBETA$radl3[-1]));length(CarteiraBETA$radl3[-1]) #RIbov=(rIbov-Selic[-1]) RIbov=(rIbov-RSelic);length(RIbov);RIbov Rcsan3=rcsan3-RSelic[-1] Rcsan3;length(Rcsan3) Rb3sa3=rb3sa3-RSelic[-1] Rslce3=rslce3-RSelic[-1] Rggbr4=rggbr4-RSelic[-1] Rradl3=rradl3-RSelic[-1] #Cálculo dos Betas Betacsan3=lm(Rcsan3~RIbov[-1]) Betacsan3 Betab3sa3=lm(Rb3sa3~RIbov[-1]);Betab3sa3 Betaslce3=lm(Rslce3~RIbov[-1]);Betaslce3 Betaggbr4=lm(Rggbr4~RIbov[-1]);Betaggbr4 Betaradl3=lm(Rradl3~RIbov[-1]);Betaradl3``````{r}# Elaboração do Gráfico de Comparação dos Betas names=c("csan3","b3sa3","slce3","ggbr4","radl3") BETA.Mercado=c(Betacsan3$coef[2],Betab3sa3$coef[2],Betaslce3$coef[2],Betaggbr4$coef[2],Betaradl3$coef[2]);names;BETA.Mercado bpb<-barplot(BETA.Mercado, main="Gráf.4:Cálculo do Beta-Mercado da Carteira Sugerida (60 dias)", ylim=c(0,3.0),names.arg=names, ylab="Percentual %", cex.names=1, col="darkgreen")text(x =as.vector(bpb), y = BETA.Mercado, label =round(BETA.Mercado, 2), pos =3, col ="black",cex=0.8)```Neste segundo período estudado, a maioria dos ativosm foram mais voláteis que o mercado. CSAN3 é o que apresenta o risto sistemático maior. Quanto ao ativo SLCE3, teve seu beta menor que 1 e positivo, indicando que ele foi menos volátil que o mercado ao longo do período visto.### Indicadores de Performance### Treynor```{r}#-----------TREYNOR(1965)---------------------{mean(csan3)*100Betacsan3$coef[2]Treynor<-mean(Rcsan3)*100/Betacsan3$coef[2];TreynorTREYNOR=c(mean(Rcsan3)*100/Betacsan3$coef[2],mean(Rb3sa3)*100/Betab3sa3$coef[2],mean(Rslce3)*100/Betaslce3$coef[2],mean(Rggbr4)*100/Betaggbr4$coef[2],mean(Rradl3)*100/Betaradl3$coef[2]);names;TREYNORbpTreynor<-barplot(TREYNOR, main="Indicador de Performance: Treynor", ylim=c(-10,1),names.arg=names, ylab="Percentual %", cex.names=1)text(x =as.vector(bpTreynor), y = TREYNOR, label =round(TREYNOR, 4), pos =3, col ="black", cex =0.8)}```O índice de Treynor demonstra, mais uma vez, que todos os ativos destruíram valor no período observado, tendo desempenho abaixo do ativo livre de risco. Neste caso, o retorno adicional de cada ativo não compensou o risco de mercado, especialmente o ativo SLCE3, que teve o maior valor negativo.### Sharpe```{r}#-----------SHARPE(1966)---------------------- {mean(Rcsan3)sd(Rcsan3) Sharpe<-mean(Rcsan3)/sd(Rcsan3);Sharpe SHARPE=c(mean(Rcsan3)/sd(Rcsan3),mean(Rb3sa3)/sd(Rb3sa3),mean(Rslce3)/sd(Rslce3),mean(Rggbr4)/sd(Rggbr4),mean(Rradl3)/sd(Rradl3));names;SHARPE bpSharpe<-barplot(SHARPE, main="Indicador de Performance: Sharpe", ylim=c(-4,1),names.arg=names, ylab="Percentual %", cex.names=1)text(x =as.vector(bpSharpe), y = SHARPE, label =round(SHARPE, 4), pos =3, col ="black", cex =0.8) }```O índice de Sharpe também demonstra que nenhum os ativos supera o retorno da taxa livre de risco, não indicando uma boa escolha de investimento. Não há boa eficiência na relação risco-retorno.### Jensen```{r} { names=c("csan3","b3sa3","slce3","ggbr4","radl3") JENSEN=c(Betacsan3$coef[1],Betab3sa3$coef[1],Betaslce3$coef[1],Betaggbr4$coef[1],Betaradl3$coef[1]);names;JENSEN bpJensen<-barplot(JENSEN, main="Indicador de Performance: Jensen", ylim=c(-0.02,0.09),names.arg=names, ylab="Percentual %", cex.names=0.7)text(x =as.vector(bpJensen), y = JENSEN, label =round(JENSEN, 4), pos =3, col ="black", cex =0.7) }```De acordo com o índice de Jensen, todos os ativos, exceto SLCE3, geraram valor, superando o mercado ajustado ao nível de risco. O ativo SLCE3 teve seu índice negativo, demonstrando que o risco de mercado não foi compensado, rendendo menos do que o retorno esperado.# ConclusãoA análise mostrou que a magnitude do risco mudou de um período para outro. No período B, os ativos demonstraram um maior beta, indicando que houve maior exposição ao risco sistemático, que é o risco do mercado como um todo. Os índices de Treynor e Sharpe mostraram que os ativos tiveram desempenho abaixo do mercado, sem geração de valor. Já o índice de Jensen apresentou um melhor comportamento no período B, mostrando que alguns ativos geraram valor a um nível ajustado de risco. Logo, é necessário balancear ativos de alto CV com ativos de baixo CV, e monitorar o beta da carteira ou dos ativos para que o risco seja compatível ao perfil do investidor.