#用R语言计算沪深300指数的算术收益率
#数据处理,首先清除其他变量,并设定工作空间
rm(list=ls())
setwd("F:/R语言工作空间")
#把沪深300指数数据放入到工作空间文件夹中
#读取数据
hs=read.csv("hs300.csv",sep=",")
#查看数据.对数据整理,并计算
head(hs)
tail(hs)
close=hs[,2]
tail(close)
close=xts(close,order.by=as.Date(hs[,1]))
head(close,7)
close1=lag(close,1)
head(close1)
calclose=merge(close,close1)
head(calclose)
simplerate<-(close-close1)/close1
names(simplerate)="simplerate"
head(simplerate)
calrate=merge(calclose,simplerate)
head(calrate)
#使用R包进行计算
#加载quantmod、TTR包和PerformanceAnalytics包进行计算
library(quantmod)
library(PerformanceAnalytics)
library(TTR)
rate=periodReturn(close,period="daily",type="arithmetic")
head(rate)
rate2=periodReturn(close,period="daily",type="log")
head(rate2)
#ROc(X,n=1,type="discret"),默认计算的是连续收益率
rate3=ROC(close)
rate4=ROC(close,n=1,type="discrete")
#calculateReturns(price,method="discrete")
rate5=CalculateReturns(close)
head(rate5)
转载自我的博客:http://blog.sina.com.cn/s/blog_659ec1310102wnbs.html