# Determinazione di un numero indice di borsa nomi<-c("bulgari","eni","fastweb","mediaset","mps", "pirelli","telecom","unipol") indici.r<-function(nomi,tipo) { tipo<-2 durata<-1000 den<-matrix(0,durata,1) num<-matrix(0,durata,1) closes<-matrix(0,durata,1) volumi<-matrix(0,durata,1) for(i in (1:length(nomi))) { a<-paste("u:/dati/",nomi[i],".csv",sep="") titolo<-read.csv(a,header=T,dec=".",sep=",") close_vol<-titolo[,5:6] ordine<-matrix(seq(nrow(titolo),1,-1)) close_vol<-cbind(ordine,close_vol) close_vol<-close_vol[sort.list(close_vol[,1]),] close.p<-close_vol[,2] volum<-close_vol[,3] tempo0<-nrow(titolo)-durata+1 titolo.nis<-close.p/close.p[tempo0] # Calcolo della capitalizzazione (fissa per Lasp. # variabile per Paasche if(tipo==1) # capitalizzazione fissa (Lasp) titolo.cap<-close.p[tempo0]*volum[tempo0] else {titolo.cap<-as.matrix(close.p[tempo0]*volum) den<-cbind(den,titolo.cap[tempo0:nrow(titolo)]) } # Calcolo del numeratore del NI sintetico titolo.num<-as.matrix(titolo.nis*titolo.cap) num<-cbind(num,titolo.num[tempo0:nrow(titolo)]) closes<-cbind(closes,close.p[tempo0:nrow(titolo)]) volumi<-cbind(volumi,volum[tempo0:nrow(titolo)]) } num<-num[,2:ncol(num)] num<-apply(num,1,sum) closes<-closes[,2:ncol(closes)] volumi<-volumi[,2:ncol(volumi)] if(tipo==1) # Laspeyres den<-t(as.matrix(closes[1,]))%*%as.matrix(volumi[1,]) #else # Paasche if(tipo!=1) den<-apply(den,1,sum) indice<-num/den }