R语言金融分析作业(一)

1、从WDI分别下载所有国家2016年和2017年GDP数据

1)计算经济增长

2)变成宽数据

library(WDI)
library(reshape)
#在线获取数据
DF <- WDI(country="all",
         indicator="NY.GDP.PCAP.KD",
         start=2016, end=2017)
head(DF,6)
#整理数据
j<-1
country<-c()
iso2c<-c()
GDP2017<-c()
GDP2016<-c()
for(i in 1:(length(DF[,1])/2)){
  iso2c<-append(iso2c,DF[j,1])
  country<-append(country,DF[j,2])
  GDP2017<-append(GDP2017,DF[j,3])
  GDP2016<-append(GDP2016,DF[j+1,3])
  j<-j+2
}
country_GDP<-data.frame(iso2c,country,GDP2016,GDP2017)
head(country_GDP,6)
#1)计算经济增长
eco_strenth<-country_GDP$GDP2017/country_GDP$GDP2016-1
head(eco_strenth,6)
#2)变成宽数据
DFw<-reshape(DF,timevar="year",idvar="country",direction="wide")
head(DFw,6)

2、用quantmod程序包下载中国平安,工商银行,上证指数,新和成四家公司2016年后行情数据

1)求出中国平安公司在2019.1-2019.10的股票总成交量

2)找出这些股票暴涨暴跌的时间点(例如开盘价或收盘价比前一天涨跌幅度超过3%),通过搜索引擎寻找是什么原因导致这些暴涨暴跌,观察(或用程序分析)数据,看就暴涨暴跌事件是否有可以利用的买卖规律

3)上证指数数据集中产生一个新的变量level:涨幅超过5%标为“暴涨”;涨幅在(0,0.05)标为“略涨”;涨幅为0标为“零”;跌幅为(-0.05,0)为“略跌”;跌幅超过5%标为“暴跌”。

4)提取各股票股指收盘价,合并到一个数据集closed,计算各家公司的收盘收益率;将closed数据集保存为.Rdata数据。

5)将closed数据变为窄数据

6)将Rstudio中的编程代码保存为PDF文件

library(zoo)
library(xts)
library(TTR)
library(quantmod)
library(reshape)
#中国平安
setSymbolLookup(ZGPA=list(name='601318.ss',src='yahoo'))
getSymbols("ZGPA",from='2016-01-01',to='2020-03-20')
#工商银行
setSymbolLookup(GSYH=list(name='601398.ss',src='yahoo'))
getSymbols("GSYH",src="yahoo",from='2016-01-01',to='2020-03-20')
#上证指数
getSymbols("^SSEC",src="yahoo",from='2016-01-01',to='2020-03-20')
#新和成
setSymbolLookup(XHC=list(name='002001.sz',src='yahoo'))
getSymbols("XHC",src="yahoo",from='2016-01-01',to='2020-03-20')
head(XHC,3)

#1)求出中国平安公司在2019.1-2019.10的股票总成交量
apply(ZGPA["2019-01-01/2019-10-31"][,5],2,sum,na.rm=T)

#2)找出这些股票暴涨暴跌的时间点(例如开盘价或收盘价比前一天涨跌幅度超过3%)
SSEC$rate<-diff(log(c(SSEC[,1])))
head(SSEC)
SSEC[which(abs(SSEC$rate)>0.03)]
#3)上证指数数据集中产生一个新的变量level:涨幅超过5%标为“暴涨”;涨幅在(0,0.05)标为“略涨”;涨幅为0标为“零”;跌幅为(-0.05,0)为“略跌”;跌幅超过5%标为“暴跌”。
SSEC$level<-NA
SSEC$level[SSEC$rate>=0.05]<-"暴涨"
SSEC$level[SSEC$rate<0.05 & SSEC$rate>0]<-"略涨"
SSEC$level[SSEC$rate==0]<-"零"
SSEC$level[SSEC$rate<0 & SSEC$rate>-0.05]<-"略跌"
SSEC$level[SSEC$rate<=-0.05]<-"暴跌"
head(SSEC)
#4)提取各股票股指收盘价,合并到一个数据集closed,计算各家公司的收盘收益率;将closed数据集保存为.Rdata数据。
closed<-cbind(c(ZGPA[,4]),c(GSYH[,4]),c(XHC[,4]),c(SSEC[,4]))
colnames(closed)<-c("ZGPA","GSYH","XHC","SSEC")
close<-data.frame(closed)
head(close,3)
rate_close<-cbind(diff(log(closed[,1])),diff(log(closed[,2])),diff(log(closed[,3])))
colnames(rate_close)<-c("ZGPA_clorate","GSYH_clorate","XHC_clorate")
head(rate_close,3)
save(closed,file="C:/Users/Desktop/closed.Rdata")
#5)将closed数据变为窄数据
closedL<-stack(as.data.frame(closed))
head(closedL)

#6)将Rstudio中的编程代码保存为PDF文件
pdf(file="C:/Users/Desktop/第二讲数据获取与处理 作业.pdf")
while (!is.null(dev.list()))
dev.off()
  • 8
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值