El modelo de Markowitz, desarrollado por el economista Harry Markowitz en 1952, proporciona un enfoque sistemático para la selección óptima de activos en una cartera, teniendo en cuenta tanto el rendimiento esperado como el riesgo asociado a esos activos.
En la base se encuentra la idea de que los inversores deben buscar no solo maximizar el rendimiento de su cartera, sino también minimizar el riesgo. Esto se logra mediante la construcción de carteras que combinen activos de manera que la variabilidad del rendimiento total de la cartera sea menor que la variabilidad de los rendimientos individuales de los activos que la componen. En otras palabras, el objetivo es encontrar una combinación de activos que ofrezca el mejor rendimiento esperado dado un nivel de riesgo aceptable.
Para lograr esto, el modelo de Markowitz utiliza la teoría de la cartera eficiente, que describe cómo los inversores pueden construir carteras que maximicen el rendimiento esperado para un nivel dado de riesgo o minimicen el riesgo para un nivel dado de rendimiento esperado. Esta teoría se basa en dos conceptos clave: la esperanza matemática del rendimiento y la varianza (o desviación estándar) del rendimiento.
La esperanza matemática del rendimiento es el rendimiento promedio que se espera de un activo en el futuro. La varianza (o desviación estándar) del rendimiento mide la dispersión de los rendimientos en torno a su valor esperado. En el contexto del modelo de Markowitz, la varianza se utiliza como medida de riesgo, ya que captura la volatilidad de los rendimientos de un activo.
El proceso de optimización de la cartera según el modelo de Markowitz implica varios pasos:
Los pasos del Modelo de Markowitz se pueden desglosar en los siguientes puntos:
*Recopilación de datos**: se recopilan los datos históricos de rendimiento de los activos considerados para la inversión.
Cálculo de la esperanza matemática del rendimiento y la varianza: se calcula la esperanza matemática del rendimiento y la varianza de cada activo individual. La esperanza matemática del rendimiento es el rendimiento promedio esperado en el futuro, mientras que la varianza mide la dispersión de los rendimientos en torno a su valor esperado.
Determinación de la matriz de covarianza: mediante el calculo de las correlaciones entre los rendimientos de los diferentes activos, que se utilizan para construir una matriz de covarianza. Esta matriz describe cómo los rendimientos de los activos se mueven juntos en el tiempo y es fundamental para la optimización de la cartera.
Definición de las restricciones y objetivos de la cartera: se establecen las restricciones y objetivos de la cartera, como el horizonte temporal, el nivel de riesgo tolerado y el rendimiento esperado deseado. Estas restricciones y objetivos guiarán el proceso de optimización de la cartera.
Aplicación de la teoría de la cartera eficiente: se utiliza la teoría de la cartera eficiente para determinar la combinación óptima de activos que maximiza el rendimiento esperado para un nivel de riesgo dado o minimiza el riesgo para un nivel de rendimiento esperado dado.
Construcción de la cartera óptima: se construye la cartera óptima que se encuentra en la “frontera eficiente”, es decir, la cartera que ofrece el mejor rendimiento esperado para cada nivel de riesgo.
Monitoreo y ajuste continuo: una vez construida la cartera óptima, se monitorea continuamente su rendimiento y se realizan ajustes según sea necesario para mantenerla alineada con los objetivos y restricciones de la cartera a lo largo del tiempo.
Los principios fundamentales del Modelo de Markowitz se pueden resumir en los siguientes puntos:
Diversificación: El modelo enfatiza la importancia de la diversificación de la cartera para reducir el riesgo. Al invertir en una variedad de activos con diferentes comportamientos de rendimiento, se puede mitigar el riesgo inherente a cualquier activo individual.
Rendimiento esperado: Considera el rendimiento esperado de cada activo como una medida central en la toma de decisiones de inversión. El objetivo es maximizar el rendimiento total de la cartera, teniendo en cuenta las expectativas de rendimiento de cada activo.
Riesgo: El riesgo se define en términos de la varianza (o desviación estándar) de los rendimientos de los activos. El modelo busca minimizar el riesgo total de la cartera al equilibrar cuidadosamente los activos con diferentes niveles de riesgo.
Correlación: La correlación entre los rendimientos de los activos es un factor clave en la gestión del riesgo de la cartera. El modelo considera cómo los activos se mueven juntos en el tiempo y busca construir carteras que aprovechen la diversificación a través de correlaciones bajas o negativas entre activos.
Frontera eficiente: El modelo identifica la “frontera eficiente”, que representa todas las combinaciones posibles de activos que ofrecen el mayor rendimiento esperado para un nivel dado de riesgo o el menor riesgo para un nivel dado de rendimiento esperado. La cartera óptima se encuentra en esta frontera eficiente.
Para este proyecto se ha contado con una serie de empresas de Renta variable estadounidense. Con el objetivo de diversificar la cartera (dado que no se hace geográficamente), se han seleccionado cinco sectores diferentes, dentro de cada uno de los cuales se incluirán dos de las empresas más importantes.
La cartera quedaría así:
| Categoría | Empresa |
|---|---|
| TECNOLÓGICAS | Apple |
| Microsoft Corporation | |
| CONSUMO | Walmart Inc. |
| Costco Wholesale Corporation | |
| SALUD | Pfizer Inc. |
| Johnson & Johnson | |
| BANCA | JPMorgan Chase & Co. |
| Bank of America Corporation | |
| ENERGÉTICO | Galp Energia |
| Shell PLC | |
| ————- | —————————– |
El perido temporal de la extracción de datos es desde el 1 de enero de 2019 hasta el 1 de febrero de 2024.
options(scipen=999)#Desactiva la notación científica
packages <- c('tseries', 'knitr', 'kableExtra', 'fPortfolio', 'timeSeries', 'quantmod', 'dplyr', 'PerformanceAnalytics', 'ggplot2', 'dplyr', 'MarkowitzR','gplots')
installed_packages <- packages %in% rownames(installed.packages())
if (any(installed_packages == FALSE)) {
install.packages(packages[!installed_packages])
}
invisible(lapply(packages, library, character.only = TRUE))
Extracción de datos de Yahoo Finance del índice SP500, desde el 1 de enero de 2019 hasta el 1 de febrero de 2024, para ver cómo ha evolucionado la economía en los últimos 5 años
SP500<- get.hist.quote(instrument = "^GSPC",
start=as.Date("2019-01-01"),
end=as.Date("2024-02-01"),
quote = "AdjClose",
provider = "yahoo",
compression = "m")
## time series ends 2024-01-01
plot(SP500, col="deepskyblue", xlab="Fecha", ylab="AdjClose"); title(main="Histórico de SP500 [2019-2024]")
Extracción de datos de APPLE
APPLE<- get.hist.quote(instrument = "AAPL",
start=as.Date("2019-01-01"),
end=as.Date("2024-02-01"),
quote = "AdjClose",
provider = "yahoo",
compression = "m")
## time series ends 2024-01-01
plot(APPLE, col="deepskyblue", xlab="Fecha", ylab="AdjClose"); title(main="Histórico de APPLE [2019-2024]")
Extracción de datos de MSFT
MSFT <- get.hist.quote(instrument = "MSFT",
start=as.Date("2019-01-01"),
end=as.Date("2024-02-01"),
quote = "AdjClose",
provider = "yahoo",
compression = "m")
## time series ends 2024-01-01
plot(MSFT, col="deepskyblue", xlab="Fecha", ylab="AdjClose"); title(main="Histórico de MSFT [2019-2024]")
Extracción de datos de Walmart Inc.
Walmart<- get.hist.quote(instrument = "WMT",
start=as.Date("2019-01-01"),
end=as.Date("2024-02-01"),
quote = "AdjClose",
provider = "yahoo",
compression = "m")
## time series ends 2024-01-01
plot(Walmart, col="deepskyblue", xlab="Fecha", ylab="AdjClose"); title(main="Histórico de Walmart [2019-2024]")
Extracción de datos de Costco Wholesale Corporation
Costco<- get.hist.quote(instrument = "COST",
start=as.Date("2019-01-01"),
end=as.Date("2024-02-01"),
quote = "AdjClose",
provider = "yahoo",
compression = "m")
## time series ends 2024-01-01
plot(Costco, col="deepskyblue", xlab="Fecha", ylab="AdjClose"); title(main="Histórico de Costco [2019-2024]")
Extracción de datos de Pfizer Inc.
Pfizer<- get.hist.quote(instrument = "PFE",
start=as.Date("2019-01-01"),
end=as.Date("2024-02-01"),
quote = "AdjClose",
provider = "yahoo",
compression = "m")
## time series ends 2024-01-01
plot(Pfizer, col="deepskyblue", xlab="Fecha", ylab="AdjClose"); title(main="Histórico de Pfizer [2019-2024]")
Extracción de datos de Johnson & Johnson
JNJ<- get.hist.quote(instrument = "JNJ",
start=as.Date("2019-01-01"),
end=as.Date("2024-02-01"),
quote = "AdjClose",
provider = "yahoo",
compression = "m")
## time series ends 2024-01-01
plot(JNJ, col="deepskyblue", xlab="Fecha", ylab="AdjClose"); title(main="Histórico de Johnson & Johnson [2019-2024]")
Extracción de datos de JPMorgan Chase & Co.
JPMorgan<- get.hist.quote(instrument = "JPM",
start=as.Date("2019-01-01"),
end=as.Date("2024-02-01"),
quote = "AdjClose",
provider = "yahoo",
compression = "m")
## time series ends 2024-01-01
plot(JPMorgan, col="deepskyblue", xlab="Fecha", ylab="AdjClose"); title(main="Histórico de JPMorgan Chase [2019-2024]")
Extracción de datos de Bank of America Corporation
BoA<- get.hist.quote(instrument = "BAC",
start=as.Date("2019-01-01"),
end=as.Date("2024-02-01"),
quote = "AdjClose",
provider = "yahoo",
compression = "m")
## time series ends 2024-01-01
plot(BoA, col="deepskyblue", xlab="Fecha", ylab="AdjClose"); title(main="Histórico de Bank of America Corporation [2019-2024]")
Extracción de datos de Galp Energia
Galp<- get.hist.quote(instrument = "GLPEF",
start=as.Date("2019-01-01"),
end=as.Date("2024-02-01"),
quote = "AdjClose",
provider = "yahoo",
compression = "m")
## time series ends 2024-01-01
plot(Galp, col="deepskyblue", xlab="Fecha", ylab="AdjClose"); title(main="Histórico de Galp Energia [2019-2024]")
Extracción de datos de Shell PLC
Shell<- get.hist.quote(instrument = "SHEL",
start=as.Date("2019-01-01"),
end=as.Date("2024-02-01"),
quote = "AdjClose",
provider = "yahoo",
compression = "m")
## time series ends 2024-01-01
plot(Shell, col="deepskyblue", xlab="Fecha", ylab="AdjClose"); title(main="Histórico de Shell PLC [2019-2024]")
Unión de datos de las diez compañías
CarteraInv <- merge(APPLE, MSFT, Walmart, Costco, Pfizer, JNJ, JPMorgan, BoA, Galp, Shell, all = FALSE)
names(CarteraInv)
## [1] "Adjusted.APPLE" "Adjusted.MSFT" "Adjusted.Walmart"
## [4] "Adjusted.Costco" "Adjusted.Pfizer" "Adjusted.JNJ"
## [7] "Adjusted.JPMorgan" "Adjusted.BoA" "Adjusted.Galp"
## [10] "Adjusted.Shell"
names(CarteraInv)<-c('APPLE', 'MSFT', 'Walmart', 'Costco', 'Pfizer', 'JNJ', 'JPMorgan', 'BoA', 'Galp', 'Shell')
plot(CarteraInv, main=" ", col="deepskyblue", xlab="Fecha")
title(main="Histórico de Cartera")
RetornoIndice<-diff(log(SP500))
head(RetornoIndice,10)
## Adjusted
## 2019-02-01 0.02929555
## 2019-03-01 0.01776551
## 2019-04-01 0.03856040
## 2019-05-01 -0.06804089
## 2019-06-01 0.06665830
## 2019-07-01 0.01304272
## 2019-08-01 -0.01825728
## 2019-09-01 0.01703525
## 2019-10-01 0.02022584
## 2019-11-01 0.03348027
matriz.rendimientos<-diff(log(CarteraInv))
head(matriz.rendimientos,10)
## APPLE MSFT Walmart Costco Pfizer
## 2019-02-01 0.03952342 0.07024951 0.0324427279 0.01896839 0.029675469
## 2019-03-01 0.09688231 0.05567108 -0.0148584248 0.10432979 -0.020508800
## 2019-04-01 0.05490071 0.10196300 0.0583805697 0.01390285 -0.044783635
## 2019-05-01 -0.13647573 -0.05444133 -0.0137068802 -0.02453164 0.022161060
## 2019-06-01 0.12652054 0.08353833 0.0907553864 0.10074315 0.051269239
## 2019-07-01 0.07361688 0.01709706 -0.0009960437 0.04212575 -0.109163852
## 2019-08-01 -0.02039042 0.01160006 0.0345476262 0.06710234 -0.088510464
## 2019-09-01 0.07421491 0.01177576 0.0428646337 -0.02060972 0.019944452
## 2019-10-01 0.10497653 0.03073882 -0.0120369578 0.03076001 0.065703175
## 2019-11-01 0.07169601 0.05436460 0.0154859361 0.01121703 0.003901925
## JNJ JPMorgan BoA Galp Shell
## 2019-02-01 0.02639918 0.01636289 0.02119988 -0.02315777 0.007745507
## 2019-03-01 0.02940186 -0.03045128 -0.04750462 -0.05187745 0.021110770
## 2019-04-01 0.01003615 0.13662619 0.10289248 0.03822119 0.014906797
## 2019-05-01 -0.07383573 -0.08333685 -0.13943462 0.00000000 -0.027447106
## 2019-06-01 0.06696363 0.05364997 0.08638438 -0.04322877 0.065997246
## 2019-07-01 -0.06726081 0.03687864 0.06170407 0.04001843 -0.034076403
## 2019-08-01 -0.01438652 -0.04732888 -0.10906131 -0.09081870 -0.123203803
## 2019-09-01 0.01538033 0.06884732 0.05859106 0.06673689 0.073621698
## 2019-10-01 0.02035086 0.05961940 0.07608796 0.03602113 -0.015066144
## 2019-11-01 0.04044652 0.06128739 0.06349845 0.03205404 -0.008314636
summary(matriz.rendimientos)
## Index APPLE MSFT Walmart
## Min. :2019-02-01 Min. :-0.13648 Min. :-0.11359 Min. :-0.17343
## 1st Qu.:2020-04-23 1st Qu.:-0.04687 1st Qu.:-0.02147 1st Qu.:-0.01856
## Median :2021-07-16 Median : 0.04188 Median : 0.02652 Median : 0.01526
## Mean :2021-07-16 Mean : 0.02550 Mean : 0.02314 Mean : 0.01047
## 3rd Qu.:2022-10-08 3rd Qu.: 0.09637 3rd Qu.: 0.06670 3rd Qu.: 0.04327
## Max. :2024-01-01 Max. : 0.19423 Max. : 0.16237 Max. : 0.09695
## Costco Pfizer JNJ JPMorgan
## Min. :-0.16659 Min. :-0.148701 Min. :-0.101658 Min. :-0.25439
## 1st Qu.:-0.02001 1st Qu.:-0.051478 1st Qu.:-0.029317 1st Qu.:-0.04015
## Median : 0.02762 Median :-0.012708 Median : 0.011053 Median : 0.02362
## Mean : 0.02105 Mean :-0.003429 Mean : 0.005211 Mean : 0.01122
## 3rd Qu.: 0.06731 3rd Qu.: 0.035644 3rd Qu.: 0.039575 3rd Qu.: 0.06004
## Max. : 0.12169 Max. : 0.205708 Max. : 0.134713 Max. : 0.19353
## BoA Galp Shell
## Min. :-0.294489 Min. :-0.28880 Min. :-0.214656
## 1st Qu.:-0.055378 1st Qu.:-0.06495 1st Qu.:-0.034624
## Median : 0.018914 Median : 0.01595 Median : 0.010912
## Mean : 0.004992 Mean : 0.00281 Mean : 0.003924
## 3rd Qu.: 0.073847 3rd Qu.: 0.07362 3rd Qu.: 0.046983
## Max. : 0.183355 Max. : 0.26005 Max. : 0.281006
Cálculo del rendimiento esperado por cada acción
rendimiento.esperado = colMeans(matriz.rendimientos)
rendimiento.esperado
## APPLE MSFT Walmart Costco Pfizer JNJ
## 0.025496430 0.023143273 0.010466691 0.021053513 -0.003428852 0.005211070
## JPMorgan BoA Galp Shell
## 0.011220266 0.004991861 0.002810310 0.003923976
Cálculo de los pesos iguales del 5% (todos los fondos tendrían el mismo peso en la cartera)
pesos.iguales = rep(0.05, 10)
Cálculo del rendimiento de todo el portafolio (transpuesta de la matriz de pesos iguales * matriz del rendimiento esperado)
rendimiento.portafolio = t(pesos.iguales)%*%rendimiento.esperado
rendimiento.portafolio
## [,1]
## [1,] 0.005244427
Cálculo de la matriz de varianza - covarianza
varianza.covarianza = cov(matriz.rendimientos)
View(varianza.covarianza)
Cálculo de la Volatilidad del portafolio (traspuesta del vector de pesos * matriz de varianza.covarianza * matriz de pesos sin trasponer)
varianza.portafolio = t(pesos.iguales)%*%(varianza.covarianza%*%pesos.iguales)
varianza.portafolio
## [,1]
## [1,] 0.0005703236
Cálculo de la Volatilidad del portafolio
s.d.portafolio = sqrt(varianza.portafolio)
s.d.portafolio
## [,1]
## [1,] 0.02388145
corr <- cor(matriz.rendimientos) * 100
corr
## APPLE MSFT Walmart Costco Pfizer JNJ
## APPLE 100.000000 73.409869 42.834675 58.106528 31.046264 44.61292
## MSFT 73.409869 100.000000 39.413773 53.806387 22.366053 37.51343
## Walmart 42.834675 39.413773 100.000000 61.627606 25.771258 41.83449
## Costco 58.106528 53.806387 61.627606 100.000000 31.034640 26.90866
## Pfizer 31.046264 22.366053 25.771258 31.034640 100.000000 54.03604
## JNJ 44.612924 37.513428 41.834493 26.908660 54.036038 100.00000
## JPMorgan 39.463150 36.031444 17.304030 22.707124 21.841932 35.49346
## BoA 48.669962 38.599242 23.677460 31.420332 18.958770 35.73738
## Galp 2.889964 4.358342 5.070175 -6.554490 5.905581 20.93986
## Shell 20.104989 11.182654 6.190359 -3.445154 4.190713 24.49412
## JPMorgan BoA Galp Shell
## APPLE 39.46315 48.66996 2.889964 20.104989
## MSFT 36.03144 38.59924 4.358342 11.182654
## Walmart 17.30403 23.67746 5.070175 6.190359
## Costco 22.70712 31.42033 -6.554490 -3.445154
## Pfizer 21.84193 18.95877 5.905581 4.190713
## JNJ 35.49346 35.73738 20.939860 24.494125
## JPMorgan 100.00000 91.40361 52.404291 62.773707
## BoA 91.40361 100.00000 44.670413 58.968968
## Galp 52.40429 44.67041 100.000000 61.621871
## Shell 62.77371 58.96897 61.621871 100.000000
generate_heat_map <- function(corr, title)
{
heatmap.2(x = corr,
cellnote = corr,
main = title,
symm = TRUE,
dendrogram="none",
Rowv = FALSE,
trace="none",
density.info="none",
notecol="black")
}
corr1 <- round(cor(matriz.rendimientos) * 100, 2)
generate_heat_map(corr1,"Mapa de calor: Correlaciones")
Convertir la matriz de rendimientos a una serie de tiempo
matriz.rendimientos = as.timeSeries(matriz.rendimientos)
View(matriz.rendimientos)
PerformanceAnalytics::chart.CumReturns(matriz.rendimientos,legend.loc = "topleft",
main = "Precios de acciones estandarizados ")
Elaborción de la frontera eficiente (calculo la tasa libre de riesgo: setRiskFreeRate)
frontera.eficiente = portfolioFrontier(matriz.rendimientos,
`setRiskFreeRate<-`(portfolioSpec(), 0.0217/12),
constraints = "LongOnly")
frontera.eficiente
##
## Title:
## MV Portfolio Frontier
## Estimator: covEstimator
## Solver: solveRquadprog
## Optimize: minRisk
## Constraints: LongOnly
## Portfolio Points: 5 of 49
##
## Portfolio Weights:
## APPLE MSFT Walmart Costco Pfizer JNJ JPMorgan BoA Galp Shell
## 1 0.0000 0.0000 0.0000 0.0000 0.9059 0.0000 0.0000 0.0000 0.0914 0.0027
## 13 0.0000 0.0000 0.2753 0.0000 0.2411 0.2663 0.0000 0.0000 0.0449 0.1724
## 25 0.0000 0.1708 0.2527 0.1364 0.0206 0.2554 0.0000 0.0000 0.0396 0.1245
## 37 0.0000 0.4417 0.1005 0.3124 0.0000 0.0264 0.0000 0.0000 0.0402 0.0788
## 49 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
##
## Covariance Risk Budgets:
## APPLE MSFT Walmart Costco Pfizer JNJ JPMorgan BoA Galp Shell
## 1 0.0000 0.0000 0.0000 0.0000 0.9732 0.0000 0.0000 0.0000 0.0264 0.0004
## 13 0.0000 0.0000 0.2084 0.0000 0.3133 0.2563 0.0000 0.0000 0.0474 0.1746
## 25 0.0000 0.1877 0.2509 0.1475 0.0181 0.2423 0.0000 0.0000 0.0368 0.1168
## 37 0.0000 0.5217 0.0699 0.3440 0.0000 0.0131 0.0000 0.0000 0.0162 0.0351
## 49 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
##
## Target Returns and Risks:
## mean Cov CVaR VaR
## 1 -0.0028 0.0699 0.1226 0.1042
## 13 0.0042 0.0419 0.0671 0.0487
## 25 0.0113 0.0390 0.0617 0.0474
## 37 0.0184 0.0468 0.0834 0.0749
## 49 0.0255 0.0853 0.1309 0.1276
##
## Description:
## Fri Mar 1 15:02:34 2024 by user: adolf
#Tasa libre de riesgo: extraído de https://home.treasury.gov/resource-center/data-chart-center/interest-rates/TextView?type=daily_treasury_yield_curve&field_tdr_date_value_month=202202
frontierPlot(frontera.eficiente,
col = c("orange","red"),
pch = 19,
labels = T)
minvariancePoints(frontera.eficiente,col="black",pch=20)
cmlPoints(frontera.eficiente,col="green",pch=20)
tangencyPoints(frontera.eficiente,col="yellow",pch=4)
tangencyLines(frontera.eficiente ,col="yellow")
sharpeRatioLines(frontera.eficiente,col = "green")
monteCarloPoints(frontera.eficiente,
mcSteps = 1000,
lwd = 0.75,
pch = 1,
cex = 0.001)
equalWeightsPoints(frontera.eficiente, col = "blue",pch = 20)
tailoredFrontierPlot(frontera.eficiente)#por default
Frontera Eficiente En el gráfico de las fronteras eficientes se realizaron 1000 simulaciones MonteCarlo que son los pequeños puntos azules diseminados en el área, cada uno representa una cartera de rendimiento para un determinando nivel de riesgo.
En la frontera se encuentran los puntos naranjas, son los portafolios eficientes. El círculo rojo es el portafolio tangente y el círculo azul el portafolio con la mínima varianza global.
markov<-portfolioSpec()
setRiskFreeRate(markov)<- 0.0217/12 #Tasa libre de riesgo
riesgo.rendimiento.frontera = frontierPoints(frontera.eficiente)
constraints="LongOnly"
col <- qualiPalette(ncol(matriz.rendimientos), "Pastel1")
weightsPlot(frontera.eficiente, col=col)
efPortfolio <- efficientPortfolio(as.timeSeries(matriz.rendimientos),markov,constraints)
efPortfolio
##
## Title:
## MV Efficient Portfolio
## Estimator: covEstimator
## Solver: solveRquadprog
## Optimize: minRisk
## Constraints: LongOnly
##
## Portfolio Weights:
## APPLE MSFT Walmart Costco Pfizer JNJ JPMorgan BoA
## 0.0000 0.1250 0.2839 0.0929 0.0602 0.2644 0.0000 0.0000
## Galp Shell
## 0.0388 0.1347
##
## Covariance Risk Budgets:
## APPLE MSFT Walmart Costco Pfizer JNJ JPMorgan BoA
## 0.0000 0.1250 0.2839 0.0929 0.0602 0.2644 0.0000 0.0000
## Galp Shell
## 0.0388 0.1347
##
## Target Returns and Risks:
## mean Cov CVaR VaR
## 0.0096 0.0387 0.0579 0.0398
##
## Description:
## Fri Mar 1 15:02:35 2024 by user: adolf
weightsPie(efPortfolio, col=col )
mtext(text = "Portafolio eficiente", side = 3, line = 1.5,
font = 2, cex = 0.7, adj = 0)
tgPortfolio <- tangencyPortfolio(as.timeSeries(matriz.rendimientos),markov,constraints)
tgPortfolio
##
## Title:
## MV Tangency Portfolio
## Estimator: covEstimator
## Solver: solveRquadprog
## Optimize: minRisk
## Constraints: LongOnly
##
## Portfolio Weights:
## APPLE MSFT Walmart Costco Pfizer JNJ JPMorgan BoA
## 0.0000 0.6034 0.0000 0.3831 0.0000 0.0000 0.0000 0.0000
## Galp Shell
## 0.0135 0.0000
##
## Covariance Risk Budgets:
## APPLE MSFT Walmart Costco Pfizer JNJ JPMorgan BoA
## 0.0000 0.6354 0.0000 0.3639 0.0000 0.0000 0.0000 0.0000
## Galp Shell
## 0.0007 0.0000
##
## Target Returns and Risks:
## mean Cov CVaR VaR
## 0.0221 0.0547 0.1005 0.0947
##
## Description:
## Fri Mar 1 15:02:35 2024 by user: adolf
weightsPie(tgPortfolio, col=col)
mtext(text = "Portafolio tangente", side = 3, line = 1.5,
font = 2, cex = 0.7, adj = 0)
| Empresa | Rendimiento (%) |
|---|---|
| Microsoft | 12,5 |
| Walmart | 28,4 |
| Costco | 9,3 |
| Pfizer | 6,0 |
| JNJ | 26,4 |
| Galp | 3,9 |
| Shell | 13,5 |
| ———– | —————– |
| Empresa | Rendimiento (%) |
|---|---|
| Microsoft | 60,3 |
| Costco | 38,3 |
| Galp | 1,4 |
| ———– | —————– |