Analiza 4-składnikowego portfela inwestycyjnego
Wstęp
Projekt przedstawia analizę 4-składnikowego portfela inwestycyjnego, składającego się z 3 inwestycji alternatywnych oraz jednej tradycyjnej. W jego skład wchodzą akcje spółki LPP SA, Bitcoin, REIT oraz złoto. Celem jest analiza efektywności portfela w zależności od udziału poszczególnych inwestycji, tak aby znaleźć najkorzystniejsze proporcje w zależności od preferencji inwestora. Analizowany okres obejmuje czas od 1 czerwca do 31 grudnia 2023r. Dane historyczne użyte w analizie zostały pobrane ze strony stooq.pl.
Opis inwestycji
Tradycyjne
- Akcje spółki LPP SA - Firma odzieżowa LPP SA znajduje się w zestawieniu WIG 30. W jej skład wchodzi 5 marek, których produkty kupić można w 39 krajach. W roku 22/23 wypracowała 1,1mld zł zysku. Na rynku istnieje od roku 1991. LPP jest notowane na GPW od 2001r., a już w 2014r. pierwszy raz znalazło się w zestawieniu WIG 20.
Alternatywne
- Bitcoin - cyfrowa waluta oparta na technologii blockchain, której najbardziej rozpoznawalną formą jest skrót BTC. Bitcoin jest zdecentralizowaną walutą, co oznacza, że nie jest kontrolowany przez żadną instytucję, rząd ani bank centralny. Kryptowaluta doświadczyła znacznego wzrostu wartości od swojego powstania w 2009 roku. Obecnie jej wartość to ponad 160 tys. Zł (na dzień 24.01. godz. 18:00).
- Cousins Properties Incorporated (REIT (Real Estate Investment Trust)) - podmiot, który generuje dochód poprzez tworzenie i posiadanie nieruchomości. Inwestując w REIT, inwestorzy pośrednio inwestują w nieruchomości będące własnością spółki. REIT-y nie posiadają nieruchomości w celu ich odsprzedaży. REIT posiada lub wynajmuje nieruchomości, a tym samym wypłaca inwestorom dochód z czynszu. Nazywa się to dochodem opartym na dywidendach.
- XAU/USD (Złoto) - metal szlachetny, który od wieków pełni rolę zarówno jako surowiec przemysłowy, jak i aktywo inwestycyjne. Złoto często uważane jest za bezpieczną przystań w trudnych czasach gospodarczych. Inwestorzy często szukają złota jako formy zabezpieczenia przed inflacją, niestabilnością walutową i niepewnością rynkową. Dodanie złota do portfela może pomóc zrównoważyć ryzyko inwestycyjne związane z innymi aktywami, takimi jak akcje czy obligacje.
Pobieranie i przygotowanie danych
sciezka <- "/Users/czare/Desktop/IAprojekt/IEdane.csv"
ror <- read.csv(sciezka, sep = ";", dec = ",")
portfolio4 <- ror[c(1,2,3,4)]
BTC <- portfolio4$BTC
REIT <- portfolio4$REIT
LPP <- portfolio4$LPP
ZLOTO <- portfolio4$ZLOTO
sciezka2 <- "/Users/czare/Desktop/IAprojekt/weights4inv.txt"
weights4 <- read.table(sciezka2, dec = ",", header = TRUE, quote = "\"", stringsAsFactors = FALSE)
w1 <- as.numeric(weights4$W1)
w2 <- as.numeric(weights4$W2)
w3 <- as.numeric(weights4$W3)
w4 <- as.numeric(weights4$W4)Statystyki opisowe
opisowe <- as.data.frame(summary(portfolio4))
opisowe <- data.frame(stat = c("MIN", "1 kwantyl", "Moda", "Średnia", "3 kwantyl", "MAX"), BTC = c("-0.097000", "-0.007000", "0.000000", "0.002108", "0.011000", "0.076000"), REIT = c("-0.065000", "-0.006000", "0.000000", "0.001014", "0.006000", "0.097000"), LPP = c("-0.055000", "-0.006000", "0.000000", "0.001371", "0.008000", "0.074000"), ZŁOTO = c("-0.0200000", "-0.0020000", "0.000000", "0.0002207", "0.0020000", "0.0310000"))
kable(opisowe,format = "html", caption = "Statystyki opisowe" ) %>%
kable_styling("striped", "hover", "condensed", full_width = F, position = "left")| stat | BTC | REIT | LPP | ZŁOTO |
|---|---|---|---|---|
| MIN | -0.097000 | -0.065000 | -0.055000 | -0.0200000 |
| 1 kwantyl | -0.007000 | -0.006000 | -0.006000 | -0.0020000 |
| Moda | 0.000000 | 0.000000 | 0.000000 | 0.000000 |
| Średnia | 0.002108 | 0.001014 | 0.001371 | 0.0002207 |
| 3 kwantyl | 0.011000 | 0.006000 | 0.008000 | 0.0020000 |
| MAX | 0.076000 | 0.097000 | 0.074000 | 0.0310000 |
Statystyki opisowe pokazują, że najwyższą średnią stopą zwrotu charakteryzowała się inwestycja w Bitcoin (0.21%). Najniższa wartość wystąpiła również w Bitcoinie, a było to -9,7%.
Mimo, że najwyższa stopa zwrotu pojawiła się w REIT (9,7%), to 75% tych wartości wynosi 0.6% lub mniej.
We wszystkich inwestycjach najczęściej występowała zerowa stopa zwrotu.
Konstruowanie portfela
Obliczanie korelacji
cor12 <- cor(BTC, REIT)
cor13 <- cor(BTC, LPP)
cor14 <- cor(BTC, ZLOTO)
cor23 <- cor(REIT, LPP)
cor24 <- cor(REIT, ZLOTO)
cor34 <- cor(LPP, ZLOTO)
korelacje <- cor(portfolio4)
kable(korelacje,format = "html", caption = "Korelacje" ) %>%
kable_styling("striped", "hover", "condensed", full_width = F, position = "left")| BTC | REIT | LPP | ZLOTO | |
|---|---|---|---|---|
| BTC | 1.0000000 | 0.1074059 | -0.0571067 | -0.0203853 |
| REIT | 0.1074059 | 1.0000000 | 0.2638401 | 0.2044104 |
| LPP | -0.0571067 | 0.2638401 | 1.0000000 | 0.1476853 |
| ZLOTO | -0.0203853 | 0.2044104 | 0.1476853 | 1.0000000 |
Pomiędzy składnikami skonstruowanego portfela zachodzą ujemne lub słabe dodatnie korelacje (0.0 - 0.3). Oznacza to, że dobrane inwestycje pozwalają na zbudowanie portfela, który będzie minimalizował ryzyko, zachowując wysoką stopę zwrotu.
Obliczanie ryzyka
Wyniki
Portfel o minimalnym ryzyku
min.risk <- subset(data, data$sdp== min(data$sdp))
mi.r <- data.frame(num = c("BTC","REIT", "LPP", "ZŁOTO") ,w = c(min.risk$w1, min.risk$w2, min.risk$w3, min.risk$w4))
ggplot(mi.r, aes(x = "", y = w, fill = num)) +
geom_bar(stat = "identity", width = 1) +
coord_polar(theta = "y") +
theme_minimal() +
scale_fill_brewer(palette = "Set3") + labs(fill = "Składniki portfela") + ggtitle("Portfel o minimalnym ryzyku")
W portfelu o minimalnym ryzyku Bitcoin stanowi 8% udziału inwestycji,
REIT 1%, a akcje spółki LPP 5%. Zdecydowanie przeważa w tym przypadku
udział złota, który wynosi aż 86%.
Portfel o maksymalnej efektywności
max.effectivness <- subset(data, data$sharp== max(data$sharp))
mx.e <- data.frame(num = c("BTC","REIT", "LPP", "ZŁOTO") ,w = c(max.effectivness$w1, max.effectivness$w2, max.effectivness$w3, max.effectivness$w4))
ggplot(mx.e, aes(x = "", y = w, fill = num)) +
geom_bar(stat = "identity", width = 1) +
coord_polar(theta = "y") +
theme_minimal() +
scale_fill_brewer(palette = "Set3") + labs(fill = "Składniki portfela") + ggtitle("Portfel o maksymalnej efektywności")
Portfel o maksymalnej efektywności charakteryzuje się zdecydowanie
równiejszym udziałem wybranych inwestycji. Największy udział posiada w
nim Bitcoin- 38%, następnie złoto- 30%, akcje LPP 25%, natomiast REIT
jedynie 5%.
Portfele 1-elepmentowe oraz podsumowująca tabela
max.ip <- subset(data, data$iportfolio==max(data$iportfolio))
max.w1 <- subset(data, data$w1==1)
max.w2 <- subset(data, data$w2==1)
max.w3 <- subset(data, data$w3==1)
max.w4 <- subset(data, data$w4==1)
des <- c("Portfel o minimalnym ryzyku", "Portfel o maksymalnej efektywności", "Portfel z najwyższą stopą zwrotu", "Najwyższy udział BTC", "Najwyższy udział REIT", "Najwyższy udział LPP", "Najwyższy udział złota")
results <- cbind(rbind(min.risk, max.effectivness, max.ip, max.w1, max.w2, max.w3, max.w4), des)
kable(results,format = "html", caption = "Interesujące kombinacje portfela" ) %>%
kable_styling("striped", "hover", "condensed", full_width = F, position = "left")| w1 | w2 | w3 | w4 | iportfolio | sdp | sharp | des | |
|---|---|---|---|---|---|---|---|---|
| 138317 | 0.08 | 0.01 | 0.05 | 0.86 | 0.0004371 | 0.0056902 | 0.0768145 | Portfel o minimalnym ryzyku |
| 43235 | 0.38 | 0.07 | 0.25 | 0.30 | 0.0012809 | 0.0097145 | 0.1318584 | Portfel o maksymalnej efektywności |
| 1 | 1.00 | 0.00 | 0.00 | 0.00 | 0.0021080 | 0.0204095 | 0.1032841 | Portfel z najwyższą stopą zwrotu |
| 11 | 1.00 | 0.00 | 0.00 | 0.00 | 0.0021080 | 0.0204095 | 0.1032841 | Najwyższy udział BTC |
| 171701 | 0.00 | 1.00 | 0.00 | 0.00 | 0.0010141 | 0.0191633 | 0.0529181 | Najwyższy udział REIT |
| 176751 | 0.00 | 0.00 | 1.00 | 0.00 | 0.0013709 | 0.0198734 | 0.0689813 | Najwyższy udział LPP |
| 176851 | 0.00 | 0.00 | 0.00 | 1.00 | 0.0002207 | 0.0060550 | 0.0364420 | Najwyższy udział złota |
Zbiór możliwości inwestycyjnych
Wykres pokazyjący zbiór możliwości inwestycyjnych obrazuje wszystkie możliwe zestawienia analizowanego 4-składnikowego portfela, ze względu na stopę zwrotu i ryzyko. Wyszczególnione i zaznaczone są na nim najbardziej charakterystyczne portfele, takie jak portfel o minimalnym ryzyku, portfel o maksymalnej efektywności oraz jednoelementowe portfele.
plot(sdp, iportfolio, type= "p", col = "grey")
title(main="Zbiór możliwości inwestycyjnych")
points(min.risk$sdp, min.risk$iportfolio, pch=19, col="green")
points(max.effectivness$sdp, max.effectivness$iportfolio, pch=19, col="blue")
points(max.w1$sdp, max.w1$iportfolio, pch=19, col="black")
points(max.w2$sdp, max.w2$iportfolio, pch=19, col="black")
points(max.w3$sdp, max.w3$iportfolio, pch=19, col="black")
points(max.w4$sdp, max.w4$iportfolio, pch=19, col="black")
legend(legend = c("Zbiór możliwości inwestycyjnych", "Portfel o minimalnym ryzyku", "Portfel o maksymalnej efektywności",
"Jednoelementowe portfele"),
pch = c(19, 19, 19, 19, 19, 4),
col = c("red", "green", "blue", "black"),
"topleft", bty = "n", cex = 0.7)
Granica efektywna w teorii portfela, zgodnie z modelem Markowitza, jest
odcinkiem krzywej, reprezentującej zbiór portfeli, dla których nie
istnieje inny portfel, który miałby lepsze parametry ryzyka i zwrotu.
Oznacza to, że są to portfele, które oferują maksymalny zwrot przy danym
poziomie ryzyka lub minimalne ryzyko przy danym poziomie zwrotu.
Portfele, które nie znajdują się na granicy efektywnej, są uznawane za
zdominowane. W praktyce inwestorzy dążą do budowy portfela na granicy
efektywnej, aby osiągnąć optymalną kombinację ryzyka i zwrotu dla swoich
preferencji inwestycyjnych.
plot(sdp, iportfolio, type = "p", col = "grey", main = "Zbiór możliwości inwestycyjnych", xlim = c(-0.003, max(sdp)), ylim = c(0, max(iportfolio)))
points(min.risk$sdp, min.risk$iportfolio, pch = 19, col = "green")
points(max.effectivness$sdp, max.effectivness$iportfolio, pch = 19, col = "blue")
points(max.w1$sdp, max.w1$iportfolio, pch = 19, col = "black")
points(max.w2$sdp, max.w2$iportfolio, pch = 19, col = "black")
points(max.w3$sdp, max.w3$iportfolio, pch = 19, col = "black")
points(max.w4$sdp, max.w4$iportfolio, pch = 19, col = "black")
abline(a = 0, b = (max.effectivness$iportfolio - 0) / (max.effectivness$sdp - 0), col = "red", lty = 2) # CML
text(0, max.effectivness$iportfolio, "CML", pos = 2, col = "red") # Etykieta CML
abline(a = 0, b = (min.risk$iportfolio - 0) / (min.risk$sdp - 0), col = "green", lty = 2) # MR
text(0, min.risk$iportfolio, "MR", pos = 2, col = "green") # Etykieta MR
legend("topleft",
legend = c("Zbiór możliwości inwestycyjnych", "Portfel o minimalnym ryzyku", "Portfel o maksymalnej efektywności", "Jednoelementowe portfele"),
pch = c(19, 19, 19, 19),
col = c("green", "blue", "black", "black"),
bty = "n", cex = 0.7)Podsumowanie
Celem projektu było utworzenei i analiza portfela inwestycyjnego dla wybranych inwestycji. Jedną z inwestycji miały być akcje polskiego przedsiębiorstwa wchodzącego w skład indeksu WIG30. Pozostałe 3 miały należeć do zbioru iwnestycji alternatywnych. Zatem ostatecznie portfel 4-elementowy składał się z akcji LPP, Reit-u Cousine Properties, kryptowaluty BTC oraz kursu Złota. Za pomocą programu R wyliczyliśmy dane, które posłużyły do dalszej analizy oraz utworzenia optymalnych portfeli. Dla portfela charakteryzującego się maksymalną efektywnością stopa zwrotu wyniosła 0,13%, przy ryyzku 0,97%. Efektywnośc mierzona współczynnikiem Sharpa wyniosła 13,19%. Wiekszość kapitału powinna zostać ulokowana w Bitcoina i udział powinien wynosić 38%. Pozostały kapitał powinien zostać rozłożony w 30% w złoto, 25% w akcje LPP oraz najmniejszą cześć powinno stanowić REIT - 7%. Natomaist w portfelu o najmniejszym ryzyku zdecydownaie dominującyą inwestycją w 86% powinno zostać złoto.
Źródła:
- Dane:
- https://stooq.pl/q/d/?s=btc.v
- https://stooq.pl/q/d/?s=lpp
- https://stooq.pl/q/d/?s=cuz.us
- https://stooq.pl/q/d/?s=xauusd&c=0&d1=20230601&d2=20230605
- Materiały z wykładów i laboratoriów z przedmiotu Inwestycje alternatywne – dr inż. Marin Potrykus