##
## Predictive Analytics: A Guide for MBA Students
## by Skip Crooker, Ph. D.
##
## Chapter 04 Data Visualization
##
recent_n_bizdays<-function(today=Sys.Date(),n=200)
{
 year_ago_date<-seq(as.Date(today),length=2,by="-1 year")[2]
cal_year<-timeSequence(from=year_ago_date,to=today)
I_nyse_bizday<-isBizday(x=cal_year)
nyse_bizdays<-names(I_nyse_bizday)[I_nyse_bizday]
trading_days_n<-nyse_bizdays[(length(nyse_bizdays)-n+1):
                               length(nyse_bizdays)]
return(trading_days_n)
}
open_close_visualization<-function(stock_ticker="AMZN",
                                   n_trading_days=200) {
  
  tdays<-recent_n_bizdays(n=n_trading_days)
  my_data<-getSymbols(Symbols=stock_ticker,from=tdays[1],
                      to=tdays[length(tdays)],
                      src="google",auto.assign=FALSE)
  open_col<-grep("Open",names(my_data))
  close_col<-grep("Close",names(my_data))
  plot(x=1:nrow(my_data),y=my_data[,open_col],type="l",col="black",
       main=paste0(stock_ticker," Share Price"),
       xlab="Trading Days",ylab="Dollars-per-Share",lwd=2,las=1)
  points(x=1:nrow(my_data),y=my_data[,close_col],type="l",lwd=2,
         col="red")
  legend(x=1,y=max(c(my_data[,open_col],my_data[,close_col])),
         legend=c("Open","Close"),lty=c(1,1),lwd=c(2,2),
         col=c("black","red"))
}
##
## The lines below will ask R to install necessary packages for these functions.
##
if (!("bizdays" %in% installed.packages())) {
  install.packages("bizdays")
}
if (!("quantmod" %in% installed.packages())) {
  install.packages("quantmod")
}
##
## If libraries are installed, the library() functions below will load the 
## respective package functions into memory.
##
library(bizdays)
library(quantmod)
