Cleaning Environment
rm(list=ls())
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(pdfetch)
## Warning: package 'pdfetch' was built under R version 4.2.2
library(ggplot2)
Fetching Nifty data from Yahoo
NSE_Nifty = pdfetch_YAHOO("^NSEI", from = "2013-01-01", to = "2022-12-31") %>% data.frame() %>% tibble::rownames_to_column("date") %>% select(date,contains(".open"),contains(".close"))
NSE_Nifty = NSE_Nifty %>% mutate(Year = format(as.Date(NSE_Nifty$date, format="%Y-%m-%d"),"%Y"))
NSE_Nifty_2013 = NSE_Nifty %>% filter(Year == "2013") %>% na.omit()
NSE_Nifty_2014 = NSE_Nifty %>% filter(Year == "2014") %>% na.omit()
NSE_Nifty_2015 = NSE_Nifty %>% filter(Year == "2015") %>% na.omit()
NSE_Nifty_2016 = NSE_Nifty %>% filter(Year == "2016") %>% na.omit()
NSE_Nifty_2017 = NSE_Nifty %>% filter(Year == "2017") %>% na.omit()
NSE_Nifty_2018 = NSE_Nifty %>% filter(Year == "2018") %>% na.omit()
NSE_Nifty_2019 = NSE_Nifty %>% filter(Year == "2019") %>% na.omit()
NSE_Nifty_2020 = NSE_Nifty %>% filter(Year == "2020") %>% na.omit()
NSE_Nifty_2021 = NSE_Nifty %>% filter(Year == "2021") %>% na.omit()
NSE_Nifty_2022 = NSE_Nifty %>% filter(Year == "2022") %>% na.omit()
Creating CAGR Function to use later
CAGR = function(EV,BV,n){
Rate = ((EV/BV)^(1/n) - 1) * 100
return(Rate)
}
Applying CAGR Function to our data
Nifty50_2013_2015_CAGR = CAGR(NSE_Nifty_2015[nrow(NSE_Nifty_2015),3],NSE_Nifty_2013[1,2],3) %>% round(2)
Nifty50_2014_2016_CAGR = CAGR(NSE_Nifty_2016[nrow(NSE_Nifty_2016),3],NSE_Nifty_2014[1,2],3) %>% round(2)
Nifty50_2015_2017_CAGR = CAGR(NSE_Nifty_2017[nrow(NSE_Nifty_2017),3],NSE_Nifty_2015[1,2],3) %>% round(2)
Nifty50_2016_2018_CAGR = CAGR(NSE_Nifty_2018[nrow(NSE_Nifty_2018),3],NSE_Nifty_2016[1,2],3) %>% round(2)
Nifty50_2017_2019_CAGR = CAGR(NSE_Nifty_2019[nrow(NSE_Nifty_2019),3],NSE_Nifty_2017[1,2],3) %>% round(2)
Nifty50_2018_2020_CAGR = CAGR(NSE_Nifty_2020[nrow(NSE_Nifty_2020),3],NSE_Nifty_2018[1,2],3) %>% round(2)
Nifty50_2019_2021_CAGR = CAGR(NSE_Nifty_2021[nrow(NSE_Nifty_2021),3],NSE_Nifty_2019[1,2],3) %>% round(2)
Nifty50_2020_2022_CAGR = CAGR(NSE_Nifty_2022[nrow(NSE_Nifty_2022),3],NSE_Nifty_2020[1,2],3) %>% round(2)
Creating df to visualize returns
df = data.frame(rbind(Nifty50_2013_2015_CAGR,
Nifty50_2014_2016_CAGR,
Nifty50_2015_2017_CAGR,
Nifty50_2016_2018_CAGR,
Nifty50_2017_2019_CAGR,
Nifty50_2018_2020_CAGR,
Nifty50_2019_2021_CAGR,
Nifty50_2020_2022_CAGR)) %>% tibble::rownames_to_column("Index")
names(df)[1] = "Index"
names(df)[2] = "Percent_Change"
df$Year = c("1","2","3","4","5","6","7","8")
Using ggplot2 package to create graphical visualization
ggplot(df, aes(x = Year, y = Percent_Change)) +
geom_bar(stat = "identity", color = "blue", fill=rgb(0.1,0.4,0.5,0.7)) +
geom_text(label = df$Percent_Change, nudge_x = 0.0, nudge_y = -0.6) +
labs(x = "Index", y = "CAGR") +
scale_x_discrete(labels=c('Nifty_2013-15', 'Nifty_2014-16','Nifty_2015-17', 'Nifty_2016-18','Nifty_2017-19', 'Nifty_2018-20', 'Nifty_2019-21', 'Nifty_2019-22'))
