##加载数据处理需要的程序包pacman::p_load(readxl,foreign,plyr,plm,stringr,dplyr,tidyr,knitr, officer,flextable,stargazer,ggthemes,ggplot2,shiny,DT,reticulate)##读入收益率数据load("F:/科研/开题准备/实证/analsisold/dayreturns.RData")##Lo and MacKinlay 方法计算函数vR1<-function(x,k){ T<-length(x) m=k*(T-k+1)*(1-k/T) mu=mean(x) len<-k:T if(k==1){ sim=cumsum(x) }else{ sim=tail(cumsum(x),-(k-1)) } sigmak<-sum((sim-len*mu)^2)/m sigma1<-var(x) VRk<-sigmak/(sigma1) return(VRk)}##Wright方法计算函数vR2<-function(x,k){ T<-length(x) m=k*T mu=mean(x) len<-k:T if(k==1){ sim=cumsum(x) }else{ sim=tail(cumsum(x),-(k-1)) } sigmak<-sum((sim-len*mu)^2)/m sigma1<-var(x) VRk<-sigmak/(sigma1) return(VRk)}##计算每月统计量及噪声交易指标VR<-stockdata%>%mutate(yms= format(as.Date(trade_date),"%Y-%m"))%>% group_by(ts_code,yms)%>%summarise(VR51=vR1(dayreturn,5),VR52=vR2(dayreturn,5))%% ungroup()%>%mutate(NoiseTrad1=abs(VR51-1),NoiseTrad2=abs(VR52-1))