当前位置 博文首页 > 苍林翠竹的博客:R语言金融分析作业(一)

    苍林翠竹的博客:R语言金融分析作业(一)

    作者:[db:作者] 时间:2021-06-30 15:35

    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()
    
    下一篇:没有了