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)
Nifty_Index = pdfetch_YAHOO("^NSEI")
#This creates an xts object that you can convert to a dataframe and use
Nifty_Index = pdfetch_YAHOO("^NSEI", from = "2022-01-01", to = "2022-12-31")
Nifty_Index = data.frame(Nifty_Index) %>% tibble::rownames_to_column("date")
rm(Nifty_Index)
Index details Top 6 economies -> US, China, Japan, Germany, India, UK India just overtook UK to becomes the fifth largest economy
SP500 = pdfetch_YAHOO("^GSPC", from = "2022-01-01", to = "2022-12-31") %>% data.frame() %>% tibble::rownames_to_column("date") %>% select(date,contains(".open"),contains(".close"))
SSE = pdfetch_YAHOO("000001.SS", from = "2022-01-01", to = "2022-12-31") %>% data.frame() %>% tibble::rownames_to_column("date") %>% select(date,contains(".open"),contains(".close"))
NIKKEI225 = pdfetch_YAHOO("^N225", from = "2022-01-01", to = "2022-12-31") %>% data.frame() %>% tibble::rownames_to_column("date") %>% select(date,contains(".open"),contains(".close"))
DAX = pdfetch_YAHOO("^GDAXI", from = "2022-01-01", to = "2022-12-31") %>% data.frame() %>% tibble::rownames_to_column("date") %>% select(date,contains(".open"),contains(".close"))
NSE_Nifty = pdfetch_YAHOO("^NSEI", from = "2022-01-01", to = "2022-12-31") %>% data.frame() %>% tibble::rownames_to_column("date") %>% select(date,contains(".open"),contains(".close"))
FTSE100 = pdfetch_YAHOO("^FTSE", from = "2022-01-01", to = "2022-12-31") %>% data.frame() %>% tibble::rownames_to_column("date") %>% select(date,contains(".open"),contains(".close"))
Calculating Holding Period Returns for the time period
SP500_YTD_Return = (SP500[nrow(SP500),3] - SP500[1,2])/(SP500[1,2])
SP500_YTD_Return = round(SP500_YTD_Return,4)*100
SSE_YTD_Return = (SSE[nrow(SSE),3] - SSE[1,2])/(SSE[1,2])
SSE_YTD_Return = round(SSE_YTD_Return,4)*100
NIKKEI225_YTD_Return = (NIKKEI225[nrow(NIKKEI225),3] - NIKKEI225[1,2])/(NIKKEI225[1,2])
NIKKEI225_YTD_Return = round(NIKKEI225_YTD_Return,4)*100
DAX_YTD_Return = (DAX[nrow(DAX),3] - DAX[1,2])/(DAX[1,2])
DAX_YTD_Return = round(DAX_YTD_Return,4)*100
NSE_Nifty_YTD_Return = (NSE_Nifty[nrow(NSE_Nifty),3] - NSE_Nifty[1,2] )/(NSE_Nifty[1,2])
NSE_Nifty_YTD_Return = round(NSE_Nifty_YTD_Return,4)*100
FTSE100_YTD_Return = (FTSE100[nrow(FTSE100),3] - FTSE100[1,2])/(FTSE100[1,2])
FTSE100_YTD_Return = round(FTSE100_YTD_Return,4)*100
#Creating DataFrame of the YTD Returns
df = data.frame(rbind(SP500_YTD_Return,
SSE_YTD_Return,
NIKKEI225_YTD_Return,
DAX_YTD_Return,
NSE_Nifty_YTD_Return,
FTSE100_YTD_Return)) %>% tibble::rownames_to_column("Index")
names(df)[1] = "Index"
names(df)[2] = "Percent_Change"
df = df %>% mutate(Index = stringr::str_replace(Index,"_YTD_Return",""))
#removing datasets, only focus on df ahead to create a plot
rm(FTSE100,SP500,DAX,NIKKEI225,NSE_Nifty,SSE)
rm(DAX_YTD_Return,FTSE100_YTD_Return,NIKKEI225_YTD_Return,NSE_Nifty_YTD_Return,SP500_YTD_Return,SSE_YTD_Return)
Let’s create a plot that we can visualise YTD Returns and compare the Top 6 Economies of the world…
ggplot(df, aes(x = reorder(Index,-Percent_Change), 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 = "Top 6 Economies", y = "% Change")
fill=rgb(0.1,0.4,0.5,0.7)