# Lettura dei dati e ordinamento titolo<-read.csv("c:/dati/tenaris.csv",dec=".",sep=",",header=T) durata<-nrow(titolo) ordine<-as.matrix(seq(durata,1,-1)) titolo<-cbind(ordine,titolo) titolo<-titolo[sort.list(titolo[,1]),] close.p<-as.matrix(titolo$Close) close.ts<-ts(close.p,start=c(2002,12,17),frequency=250,names="Tenaris") volumi<-(titolo$Volume) # Finestra grafica par(mfrow=c(2,1)) ts.plot(close.ts) barplot(volumi) par(mfrow=c(1,1)) # Calcolo rendimenti giornalieri (RA_t, R_t, r_t) close.ra<-diff(close.ts) close.Rt<-((close.ts/lag(close.ts,-1))-1)*100 close.rt<-(diff(log(close.ts)))*100 # Grafico prezzi e rendimenti par(mfrow=c(2,1)) ts.plot(close.ts,ylab="Prezzi",xlab="Tempo",main="Tenaris") ts.plot(close.rt,ylab="Rendimenti log",xlab="Tempo") par(mfrow=c(1,1)) names(titolo) #Sistemazione dell'output in tabella tabella<-cbind(titolo[(durata-9):durata,2], close.ts[(durata-9):durata], close.ra[(durata-10):(durata-1)], close.Rt[(durata-10):(durata-1)], close.rt[(durata-10):(durata-1)]) tabella<-as.data.frame(tabella) names(tabella)<-c("Data","P_t","RA_t","R_t","r_t") write.table(tabella,"c:/dati/output.csv",sep=",",append=F) # Calcolo dei rendimenti settimanali lag.aggr<-5 # indica il lag per la selezione dei giorni (5 per rend sett) ind.aggr<-seq(1,nrow(close.ts),lag.aggr) # vettore per il sub-setting close.set<-ts(close.ts[ind.aggr],start=c(2002,12,17),frequency=52) ts.plot(close.set) close.ra.s<-diff(close.set) close.Rt.s<-((close.set/lag(close.set,-1))-1)*100 close.rt.s<-(diff(log(close.set)))*100 # Confronto grafico fra rend giorn e rend sett par(mfrow=c(2,1)) ts.plot(close.rt,ylab="r_t giornalieri",ylim=c(-35,35)) ts.plot(close.rt.s,ylab="r_t settimanali",ylim=c(-35,35)) par(mfrow=c(1,1)) # Calcolo rendimenti con lag superiore a 1 lag.d<-3 # se lag.d=1 --> rend giornalieri close.Rt.d<-((close.ts/lag(close.ts,-lag.d))-1)*100 close.rt.d<-(diff(log(close.ts),lag=lag.d))*100 # Confronto grafico fra rend giorn e rend con lag sup a 1 par(mfrow=c(2,1)) ts.plot(close.rt,ylab="r_t giornalieri",ylim=c(-20,20)) ts.plot(close.rt.d,ylab="r_t con lag=3",ylim=c(-20,20)) par(mfrow=c(1,1)) #Sistemazione dell'output in tabella tabella<-cbind(titolo[(durata-9):durata,2], close.ts[(durata-9):durata], close.ra[(durata-10):(durata-1)], close.Rt[(durata-10):(durata-1)], close.rt[(durata-10):(durata-1)], close.Rt.d[(durata-12):(durata-3)], close.rt.d[(durata-12):(durata-3)]) tabella<-as.data.frame(tabella) names(tabella)<-c("Data","P_t","RA_t","R_t","r_t","R_t(3)","r_t(3)")