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()
Fetching Bank Nifty data from Yahoo
NSE_Nifty_Bank = pdfetch_YAHOO("^NSEBANK", from = "2013-01-01", to = "2022-12-31") %>% data.frame() %>% tibble::rownames_to_column("date") %>% select(date,contains(".open"),contains(".close"))
NSE_Nifty_Bank = NSE_Nifty_Bank %>% mutate(Year = format(as.Date(NSE_Nifty_Bank$date, format="%Y-%m-%d"),"%Y"))
NSE_Nifty_Bank_2013 = NSE_Nifty_Bank %>% filter(Year == "2013") %>% na.omit()
NSE_Nifty_Bank_2014 = NSE_Nifty_Bank %>% filter(Year == "2014") %>% na.omit()
NSE_Nifty_Bank_2015 = NSE_Nifty_Bank %>% filter(Year == "2015") %>% na.omit()
NSE_Nifty_Bank_2016 = NSE_Nifty_Bank %>% filter(Year == "2016") %>% na.omit()
NSE_Nifty_Bank_2017 = NSE_Nifty_Bank %>% filter(Year == "2017") %>% na.omit()
NSE_Nifty_Bank_2018 = NSE_Nifty_Bank %>% filter(Year == "2018") %>% na.omit()
NSE_Nifty_Bank_2019 = NSE_Nifty_Bank %>% filter(Year == "2019") %>% na.omit()
NSE_Nifty_Bank_2020 = NSE_Nifty_Bank %>% filter(Year == "2020") %>% na.omit()
NSE_Nifty_Bank_2021 = NSE_Nifty_Bank %>% filter(Year == "2021") %>% na.omit()
NSE_Nifty_Bank_2022 = NSE_Nifty_Bank %>% 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_10_Year_CAGR = CAGR(NSE_Nifty_2022[nrow(NSE_Nifty_2022),3],NSE_Nifty_2013[1,2],10) %>% round(2)
Nifty50_5_Year_CAGR = CAGR(NSE_Nifty_2022[nrow(NSE_Nifty_2022),3],NSE_Nifty_2018[1,2],5) %>% round(2)
Nifty50_3_Year_CAGR = CAGR(NSE_Nifty_2022[nrow(NSE_Nifty_2022),3],NSE_Nifty_2020[1,2],3) %>% round(2)
Nifty_Bank_10_Year_CAGR = CAGR(NSE_Nifty_Bank_2022[nrow(NSE_Nifty_Bank_2022),3],NSE_Nifty_Bank_2013[1,2],10) %>% round(2)
Nifty_Bank_5_Year_CAGR = CAGR(NSE_Nifty_Bank_2022[nrow(NSE_Nifty_Bank_2022),3],NSE_Nifty_Bank_2018[1,2],5) %>% round(2)
Nifty_Bank_3_Year_CAGR = CAGR(NSE_Nifty_Bank_2022[nrow(NSE_Nifty_Bank_2022),3],NSE_Nifty_Bank_2020[1,2],3) %>% round(2)
Creating df to visualize returns
df = data.frame(rbind(Nifty50_10_Year_CAGR,
Nifty_Bank_10_Year_CAGR,
Nifty50_5_Year_CAGR,
Nifty_Bank_5_Year_CAGR,
Nifty50_3_Year_CAGR,
Nifty_Bank_3_Year_CAGR)) %>% tibble::rownames_to_column("Index")
names(df)[1] = "Index"
names(df)[2] = "Percent_Change"
df$Year = c("6","5","4","3","2","1")
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_Bank_3_Yr', 'Nifty50_3_Yr','Nifty_Bank_5_Yr', 'Nifty50_5_Yr','Nifty_Bank_10_Yr', 'Nifty50_10_Yr'))
