# Lettura dei dati giornalieri scaricati da yahoo finance enel.p<-read.csv("c:/data/enel.csv",header=T,sep=",",dec=".") enel.p names(enel.p) n.col<-ncol(enel.p) n.oss<-nrow(enel.p) n.col n.oss # Ordinamento dei dati a<-as.matrix(seq(1,n.oss,1)) # sequenza additiva di passo 1 a enel.p<-cbind(a,enel.p) enel.p enel.p<-enel.p[sort.list(enel.p[,1],decreasing=T),] enel.p # visualizzazione dei dati enel.cp<-ts(enel.p$Close,start=c(2003,1,1),frequency=252) par(mfrow=c(2,1)) ts.plot(enel.cp,ylab="Closing prices",main="Enel") barplot(enel.p$Volume,ylab="Volumes") par(mfrow=c(1,1)) # Calcolo Rendimenti giornalieri sui prezzi di chiusura enel.ra<-as.matrix(diff(enel.cp)) ts.plot(enel.ra,ylab="Rendimenti assoluti di Enel") enel.Rt<-as.matrix((enel.cp/lag(enel.cp,-1))-1) ts.plot(enel.Rt,ylab="Rendimenti relativi di Enel") enel.rt<-as.matrix(diff(log(enel.cp))) ts.plot(enel.rt,ylab="Rendimenti logaritmici di Enel") nrow(enel.ra) tabella<-cbind(enel.ra,enel.Rt,enel.rt) tabella tabella<-cbind(as.matrix(enel.p$Close[(n.oss-14):n.oss]), enel.ra[(n.oss-15):(n.oss-1)], enel.Rt[(n.oss-15):(n.oss-1)]*100, enel.rt[(n.oss-15):(n.oss-1)]*100) tabella<-as.data.frame(tabella) names(tabella)<-c("P_t","RA_t","R_t","r_t") tabella # Scrittura di un file di output write.table(tabella,"c:/data/enel.out",sep=",") # Calcolo di rendimenti multiperiodali nell'intervallo (t-k,t) lag.k<-10 enel.Rt.k<-as.matrix((enel.cp/lag(enel.cp,-lag.k))-1) enel.Rt.k enel.rt.k<-as.matrix(diff(log(enel.cp),lag=lag.k)) enel.rt.k par(mfrow=c(2,1)) ts.plot(enel.rt,ylab="r_t giornalieri") ts.plot(enel.rt.k,ylab="r_t(k) multiperiodali") par(mfrow=c(1,1)) nrow(enel.rt) nrow(enel.rt.k)