rm(list=ls())
#1 Loading pdfetch package
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)
library(ggplot2)
#2 Getting Nifty Data for the year 2022
NSE_Nifty_2022 = pdfetch_YAHOO("^NSEI", from = "2022-01-01", to = "2022-12-31") %>% data.frame() %>% tibble::rownames_to_column("date") %>% select(date,contains(".open"),contains(".close"))
NSE_Nifty_2022 = NSE_Nifty_2022 %>% mutate(Month = format(as.Date(NSE_Nifty_2022$date, format="%Y-%m-%d"),"%m"))
NSE_Nifty_Jan_2022 = NSE_Nifty_2022 %>% filter(Month == "01")
NSE_Nifty_Feb_2022 = NSE_Nifty_2022 %>% filter(Month == "02")
NSE_Nifty_Mar_2022 = NSE_Nifty_2022 %>% filter(Month == "03")
NSE_Nifty_Apr_2022 = NSE_Nifty_2022 %>% filter(Month == "04")
NSE_Nifty_May_2022 = NSE_Nifty_2022 %>% filter(Month == "05")
NSE_Nifty_Jun_2022 = NSE_Nifty_2022 %>% filter(Month == "06")
NSE_Nifty_Jul_2022 = NSE_Nifty_2022 %>% filter(Month == "07")
NSE_Nifty_Aug_2022 = NSE_Nifty_2022 %>% filter(Month == "08")
NSE_Nifty_Sep_2022 = NSE_Nifty_2022 %>% filter(Month == "09")
NSE_Nifty_Oct_2022 = NSE_Nifty_2022 %>% filter(Month == "10")
NSE_Nifty_Nov_2022 = NSE_Nifty_2022 %>% filter(Month == "11")
NSE_Nifty_Dec_2022 = NSE_Nifty_2022 %>% filter(Month == "12")
#3 Calculating Monthly Returns
Nifty_Jan = (NSE_Nifty_Jan_2022[nrow(NSE_Nifty_Jan_2022),3] - NSE_Nifty_Jan_2022[1,2])/(NSE_Nifty_Jan_2022[1,2])
Nifty_Jan = round(Nifty_Jan,4)*100
Nifty_Feb = (NSE_Nifty_Feb_2022[nrow(NSE_Nifty_Feb_2022),3] - NSE_Nifty_Feb_2022[1,2])/(NSE_Nifty_Feb_2022[1,2])
Nifty_Feb = round(Nifty_Feb,4)*100
Nifty_Mar = (NSE_Nifty_Mar_2022[nrow(NSE_Nifty_Mar_2022),3] - NSE_Nifty_Mar_2022[1,2])/(NSE_Nifty_Mar_2022[1,2])
Nifty_Mar = round(Nifty_Mar,4)*100
Nifty_Apr = (NSE_Nifty_Apr_2022[nrow(NSE_Nifty_Apr_2022),3] - NSE_Nifty_Apr_2022[1,2])/(NSE_Nifty_Apr_2022[1,2])
Nifty_Apr = round(Nifty_Apr,4)*100
Nifty_May = (NSE_Nifty_May_2022[nrow(NSE_Nifty_May_2022),3] - NSE_Nifty_May_2022[1,2])/(NSE_Nifty_May_2022[1,2])
Nifty_May = round(Nifty_May,4)*100
Nifty_Jun = (NSE_Nifty_Jun_2022[nrow(NSE_Nifty_Jun_2022),3] - NSE_Nifty_Jun_2022[1,2])/(NSE_Nifty_Jun_2022[1,2])
Nifty_Jun = round(Nifty_Jun,4)*100
Nifty_Jul = (NSE_Nifty_Jul_2022[nrow(NSE_Nifty_Jul_2022),3] - NSE_Nifty_Jul_2022[1,2])/(NSE_Nifty_Jul_2022[1,2])
Nifty_Jul = round(Nifty_Jul,4)*100
Nifty_Aug = (NSE_Nifty_Aug_2022[nrow(NSE_Nifty_Aug_2022),3] - NSE_Nifty_Aug_2022[1,2])/(NSE_Nifty_Aug_2022[1,2])
Nifty_Aug = round(Nifty_Aug,4)*100
Nifty_Sep = (NSE_Nifty_Sep_2022[nrow(NSE_Nifty_Sep_2022),3] - NSE_Nifty_Sep_2022[1,2])/(NSE_Nifty_Sep_2022[1,2])
Nifty_Sep = round(Nifty_Sep,4)*100
Nifty_Oct = (NSE_Nifty_Oct_2022[nrow(NSE_Nifty_Oct_2022),3] - NSE_Nifty_Oct_2022[1,2])/(NSE_Nifty_Oct_2022[1,2])
Nifty_Oct = round(Nifty_Oct,4)*100
Nifty_Nov = (NSE_Nifty_Nov_2022[nrow(NSE_Nifty_Nov_2022),3] - NSE_Nifty_Nov_2022[1,2])/(NSE_Nifty_Nov_2022[1,2])
Nifty_Nov = round(Nifty_Nov,4)*100
Nifty_Dec = (NSE_Nifty_Dec_2022[nrow(NSE_Nifty_Dec_2022),3] - NSE_Nifty_Dec_2022[1,2])/(NSE_Nifty_Dec_2022[1,2])
Nifty_Dec = round(Nifty_Dec,4)*100
#4 Binding all Monthly returns in one dataframe..
df = data.frame(rbind(Nifty_Jan,
Nifty_Feb,
Nifty_Mar,
Nifty_Apr,
Nifty_May,
Nifty_Jun,
Nifty_Jul,
Nifty_Aug,
Nifty_Sep,
Nifty_Oct,
Nifty_Nov,
Nifty_Dec)) %>% tibble::rownames_to_column("Months")
names(df)[1] = "Months"
names(df)[2] = "Percent_Change"
df$Month_Number = c("01","02","03","04","05","06","07","08","09","10","11","12")
#5 Visualise month by month return for Nifty 50 Index..
ggplot(df, aes(x = Month_Number, 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 = "Months", y = "% Change")