quantquote.com provides free daily S&P 500 data from 1998 - 2013. I filtered the data down to the years 2006 - 2008. Each stock is a separate .csv file with the following columns: date, open price, high price, low price, closing price, trading volume. We will use this data set for the homework. If you’re interested in the full data set, you can find it here: https://quantquote.com/historical-stock-data and click “free data”. There is an extra column in these data – date, time, open, high, low, close, volume.

#1. Use the list.files function to create a list of all the .csv files.  Remember to unzip the data.

list.files(path="X:/Stat201/HW3/HW3/SP500",pattern="csv",full.names=FALSE)
##   [1] "a.csv"     "aa.csv"    "aapl.csv"  "abbv.csv"  "abc.csv"  
##   [6] "abt.csv"   "ace.csv"   "acn.csv"   "act.csv"   "adbe.csv" 
##  [11] "adi.csv"   "adm.csv"   "adp.csv"   "adsk.csv"  "adt.csv"  
##  [16] "aee.csv"   "aep.csv"   "aes.csv"   "aet.csv"   "afl.csv"  
##  [21] "agn.csv"   "aig.csv"   "aiv.csv"   "aiz.csv"   "akam.csv" 
##  [26] "all.csv"   "altr.csv"  "alxn.csv"  "amat.csv"  "amd.csv"  
##  [31] "amgn.csv"  "amp.csv"   "amt.csv"   "amzn.csv"  "an.csv"   
##  [36] "anf.csv"   "aon.csv"   "apa.csv"   "apc.csv"   "apd.csv"  
##  [41] "aph.csv"   "apol.csv"  "arg.csv"   "ati.csv"   "avb.csv"  
##  [46] "avp.csv"   "avy.csv"   "axp.csv"   "azo.csv"   "ba.csv"   
##  [51] "bac.csv"   "bax.csv"   "bbby.csv"  "bbt.csv"   "bby.csv"  
##  [56] "bcr.csv"   "bdx.csv"   "beam.csv"  "ben.csv"   "bf.b.csv" 
##  [61] "bhi.csv"   "biib.csv"  "bk.csv"    "blk.csv"   "bll.csv"  
##  [66] "bmc.csv"   "bms.csv"   "bmy.csv"   "brcm.csv"  "brkb.csv" 
##  [71] "bsx.csv"   "btu.csv"   "bwa.csv"   "bxp.csv"   "c.csv"    
##  [76] "ca.csv"    "cag.csv"   "cah.csv"   "cam.csv"   "cat.csv"  
##  [81] "cb.csv"    "cbg.csv"   "cbs.csv"   "cce.csv"   "cci.csv"  
##  [86] "ccl.csv"   "celg.csv"  "cern.csv"  "cf.csv"    "cfn.csv"  
##  [91] "chk.csv"   "chrw.csv"  "ci.csv"    "cinf.csv"  "cl.csv"   
##  [96] "clf.csv"   "clx.csv"   "cma.csv"   "cmcsa.csv" "cme.csv"  
## [101] "cmg.csv"   "cmi.csv"   "cms.csv"   "cnp.csv"   "cnx.csv"  
## [106] "cof.csv"   "cog.csv"   "coh.csv"   "col.csv"   "cop.csv"  
## [111] "cost.csv"  "cov.csv"   "cpb.csv"   "crm.csv"   "csc.csv"  
## [116] "csco.csv"  "csx.csv"   "ctas.csv"  "ctl.csv"   "ctsh.csv" 
## [121] "ctxs.csv"  "cvc.csv"   "cvh.csv"   "cvs.csv"   "cvx.csv"  
## [126] "d.csv"     "dd.csv"    "de.csv"    "dell.csv"  "df.csv"   
## [131] "dfs.csv"   "dg.csv"    "dgx.csv"   "dhi.csv"   "dhr.csv"  
## [136] "dis.csv"   "disca.csv" "dlph.csv"  "dltr.csv"  "dnb.csv"  
## [141] "dnr.csv"   "do.csv"    "dov.csv"   "dow.csv"   "dps.csv"  
## [146] "dri.csv"   "dte.csv"   "dtv.csv"   "duk.csv"   "dva.csv"  
## [151] "dvn.csv"   "ea.csv"    "ebay.csv"  "ecl.csv"   "ed.csv"   
## [156] "efx.csv"   "eix.csv"   "el.csv"    "emc.csv"   "emn.csv"  
## [161] "emr.csv"   "eog.csv"   "eqr.csv"   "eqt.csv"   "esrx.csv" 
## [166] "esv.csv"   "etfc.csv"  "etn.csv"   "etr.csv"   "ew.csv"   
## [171] "exc.csv"   "expd.csv"  "expe.csv"  "f.csv"     "fast.csv" 
## [176] "fcx.csv"   "fdo.csv"   "fdx.csv"   "fe.csv"    "ffiv.csv" 
## [181] "fhn.csv"   "fis.csv"   "fisv.csv"  "fitb.csv"  "flir.csv" 
## [186] "flr.csv"   "fls.csv"   "fmc.csv"   "fosl.csv"  "frx.csv"  
## [191] "fslr.csv"  "fti.csv"   "ftr.csv"   "gas.csv"   "gci.csv"  
## [196] "gd.csv"    "ge.csv"    "gild.csv"  "gis.csv"   "glw.csv"  
## [201] "gme.csv"   "gnw.csv"   "goog.csv"  "gpc.csv"   "gps.csv"  
## [206] "grmn.csv"  "gs.csv"    "gt.csv"    "gww.csv"   "hal.csv"  
## [211] "har.csv"   "has.csv"   "hban.csv"  "hcbk.csv"  "hcn.csv"  
## [216] "hcp.csv"   "hd.csv"    "hes.csv"   "hig.csv"   "hnz.csv"  
## [221] "hog.csv"   "hon.csv"   "hot.csv"   "hp.csv"    "hpq.csv"  
## [226] "hrb.csv"   "hrl.csv"   "hrs.csv"   "hsp.csv"   "hst.csv"  
## [231] "hsy.csv"   "hum.csv"   "ibm.csv"   "ice.csv"   "iff.csv"  
## [236] "igt.csv"   "intc.csv"  "intu.csv"  "ip.csv"    "ipg.csv"  
## [241] "ir.csv"    "irm.csv"   "isrg.csv"  "itw.csv"   "ivz.csv"  
## [246] "jbl.csv"   "jci.csv"   "jcp.csv"   "jdsu.csv"  "jec.csv"  
## [251] "jnj.csv"   "jnpr.csv"  "joy.csv"   "jpm.csv"   "jwn.csv"  
## [256] "k.csv"     "key.csv"   "kim.csv"   "klac.csv"  "kmb.csv"  
## [261] "kmi.csv"   "kmx.csv"   "ko.csv"    "kr.csv"    "krft.csv" 
## [266] "kss.csv"   "l.csv"     "leg.csv"   "len.csv"   "lh.csv"   
## [271] "life.csv"  "lll.csv"   "lltc.csv"  "lly.csv"   "lm.csv"   
## [276] "lmt.csv"   "lnc.csv"   "lo.csv"    "low.csv"   "lrcx.csv" 
## [281] "lsi.csv"   "ltd.csv"   "luk.csv"   "luv.csv"   "lyb.csv"  
## [286] "m.csv"     "ma.csv"    "mar.csv"   "mas.csv"   "mat.csv"  
## [291] "mcd.csv"   "mchp.csv"  "mck.csv"   "mco.csv"   "mdlz.csv" 
## [296] "mdt.csv"   "met.csv"   "mhfi.csv"  "mjn.csv"   "mkc.csv"  
## [301] "mmc.csv"   "mmm.csv"   "mnst.csv"  "mo.csv"    "molx.csv" 
## [306] "mon.csv"   "mos.csv"   "mpc.csv"   "mrk.csv"   "mro.csv"  
## [311] "ms.csv"    "msft.csv"  "msi.csv"   "mtb.csv"   "mu.csv"   
## [316] "mur.csv"   "mwv.csv"   "myl.csv"   "nbl.csv"   "nbr.csv"  
## [321] "ndaq.csv"  "ne.csv"    "nee.csv"   "nem.csv"   "nflx.csv" 
## [326] "nfx.csv"   "ni.csv"    "nke.csv"   "noc.csv"   "nov.csv"  
## [331] "nrg.csv"   "nsc.csv"   "ntap.csv"  "ntrs.csv"  "nu.csv"   
## [336] "nue.csv"   "nvda.csv"  "nwl.csv"   "nwsa.csv"  "nyx.csv"  
## [341] "oi.csv"    "oke.csv"   "omc.csv"   "orcl.csv"  "orly.csv" 
## [346] "oxy.csv"   "payx.csv"  "pbct.csv"  "pbi.csv"   "pcar.csv" 
## [351] "pcg.csv"   "pcl.csv"   "pcln.csv"  "pcp.csv"   "pcs.csv"  
## [356] "pdco.csv"  "peg.csv"   "pep.csv"   "petm.csv"  "pfe.csv"  
## [361] "pfg.csv"   "pg.csv"    "pgr.csv"   "ph.csv"    "phm.csv"  
## [366] "pki.csv"   "pld.csv"   "pll.csv"   "pm.csv"    "pnc.csv"  
## [371] "pnr.csv"   "pnw.csv"   "pom.csv"   "ppg.csv"   "ppl.csv"  
## [376] "prgo.csv"  "pru.csv"   "psa.csv"   "psx.csv"   "pvh.csv"  
## [381] "pwr.csv"   "px.csv"    "pxd.csv"   "qcom.csv"  "qep.csv"  
## [386] "r.csv"     "rai.csv"   "rdc.csv"   "rf.csv"    "rhi.csv"  
## [391] "rht.csv"   "rl.csv"    "rok.csv"   "rop.csv"   "rost.csv" 
## [396] "rrc.csv"   "rsg.csv"   "rtn.csv"   "s.csv"     "sai.csv"  
## [401] "sbux.csv"  "scg.csv"   "schw.csv"  "se.csv"    "see.csv"  
## [406] "shw.csv"   "sial.csv"  "sjm.csv"   "slb.csv"   "slm.csv"  
## [411] "sna.csv"   "sndk.csv"  "sni.csv"   "so.csv"    "spg.csv"  
## [416] "spls.csv"  "srcl.csv"  "sre.csv"   "sti.csv"   "stj.csv"  
## [421] "stt.csv"   "stx.csv"   "stz.csv"   "swk.csv"   "swn.csv"  
## [426] "swy.csv"   "syk.csv"   "symc.csv"  "syy.csv"   "t.csv"    
## [431] "tap.csv"   "tdc.csv"   "te.csv"    "teg.csv"   "tel.csv"  
## [436] "ter.csv"   "tgt.csv"   "thc.csv"   "tif.csv"   "tjx.csv"  
## [441] "tmk.csv"   "tmo.csv"   "trip.csv"  "trow.csv"  "trv.csv"  
## [446] "tsn.csv"   "tso.csv"   "tss.csv"   "twc.csv"   "twx.csv"  
## [451] "txn.csv"   "txt.csv"   "tyc.csv"   "unh.csv"   "unm.csv"  
## [456] "unp.csv"   "ups.csv"   "urbn.csv"  "usb.csv"   "utx.csv"  
## [461] "v.csv"     "var.csv"   "vfc.csv"   "viab.csv"  "vlo.csv"  
## [466] "vmc.csv"   "vno.csv"   "vrsn.csv"  "vtr.csv"   "vz.csv"   
## [471] "wag.csv"   "wat.csv"   "wdc.csv"   "wec.csv"   "wfc.csv"  
## [476] "wfm.csv"   "whr.csv"   "win.csv"   "wlp.csv"   "wm.csv"   
## [481] "wmb.csv"   "wmt.csv"   "wpo.csv"   "wpx.csv"   "wu.csv"   
## [486] "wy.csv"    "wyn.csv"   "wynn.csv"  "x.csv"     "xel.csv"  
## [491] "xl.csv"    "xlnx.csv"  "xom.csv"   "xray.csv"  "xrx.csv"  
## [496] "xyl.csv"   "yhoo.csv"  "yum.csv"   "zion.csv"  "zmh.csv"
#2. Use a for loop and the strsplit function to create a vector of the stock symbols from the file names.

results <- c()
text <- list.files(path="Z:/Stat201/HW3/HW3/SP500",pattern="csv",full.names=FALSE)
text.split <- strsplit(text, split ="[.]")
for(i in text.split){
  v <- setdiff(i, "csv")
  results <- c(results, v[1])
  print(results)}


#3. Use a for loop to read in the files and record the daily difference price and the date.


results.2 <- c()
results.diff <- c()
results.date <- c() 
path <- "Z:/Stat201/HW3/HW3/SP500"
files <- list.files(path="Z:/Stat201/HW3/HW3/SP500",pattern="csv",full.names=FALSE)
for(f in files){
    file.f <- paste(path, f, sep = "/")
    dat <- read.csv(file.f)
    results.diff <- dat[,2] - dat[,5]
    results.date <- dat[1]
    results.2 <- c(results.2, results.diff)
    print(results.2)
}
#I'm not sure how to "record" the results. Maybe in a matrix?



#4. Calculate the average daily change across all stocks.


v.ave.change <- c() 
path <- "Z:/Stat201/HW3/HW3/SP500"
files <- list.files(path="Z:/Stat201/HW3/HW3/SP500",pattern="csv",full.names=FALSE)
for(f in files){
    file.f <- paste(path, f, sep = "/")
    dat <- read.csv(file.f)
    m.daily.diff <- matrix(nrow = nrow(dat), ncol=2)
    colnames(m.daily.diff) <- (list("date", "difference"))
    m.daily.diff[,1] <- dat[,1]
    m.daily.diff[,2] <- dat[,2] - dat[,5]
    ave.change <- mean(m.daily.diff[,2])
    v.ave.change <- c(v.ave.change, ave.change)
}

#v.ave.change <- c()
#final.matrix <- matrix(nrow = 755, ncol = 501)
#path <- "X:/Stat201/HW3/HW3/SP500"
#files <- list.files(path="X:/Stat201/HW3/HW3/SP500",pattern="csv",full.names=FALSE)
#for(f in files){
   # file.f <- paste(path, f, sep = "/")
    #dat <- read.csv(file.f)
   # results.diff <- dat[,2] - dat[,5]
   # final.matrix <- matrix[,final.matrix, results.diff]
#}

#I tried starting another approach, but ran out of time. I'm struggling with how to store the data coming out of each iteration of the for loop.

#5. Plot the average daily change. You can use the strptime function to create dates from the names in the previous object.  If you named the object in question 4 daily_avg then the code will be dates <- strptime(names(daily_avg), format = "%Y%m%d")


results.date <- strptime(names(results.date), format = "%Y%m%d")

#plot(x = results.date, y = v.ave.change)

#I'm still very confused of how to record two factors at once into the results of a for loop. In this case, average change and year. 

#6. When did the volatility of stocks in 2008 first exceed expectations given the trend in average stock price prior to 2008?