量化投资作业的R实现——收益率相关图形绘制
生活随笔
收集整理的這篇文章主要介紹了
量化投资作业的R实现——收益率相关图形绘制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Tushare ID:482621
Tushare是一個免費的大數據平臺,你可以很方便地在上面獲取各種各樣的數據,包括但不限于股票數據(日度,月度,年度),公司財務數據(三大報表),新聞資訊等等。只需要簡簡單單的幾行代碼,就可以將數據導入到你所需要的編程軟件當中去(支持各種編程環境)。
當然,如果你是編程小白,tushare也是一個很好的獲取數據的社區,你可以通過鼠標點擊操作,來獲取數據并導出。非常的人性化。
實驗題目6:根據你所查找的某一個股票或指數的近三年價格的日度數據,做如下運算:
導入相關庫
library(zoo) library(timeSeries) library(Tushare) # 導入Tushare包利用tushare獲取數據
api <- Tushare::pro_api(token = '*********************************') # 需要注冊自己的賬號,便可獲取屬于自己的專屬token data0 <- api(api_name = 'daily', ts_code = "000333.SZ", start_date = "20190101", end_date = "20211231") # 查看數據 head(data0)'*************************'這個是自己的token,大家只需要登錄tushare的網站,經過簡單的操作,并完善個人信息之后,就可以使用該社區,來獲取你需要的數據啦,快去試試把!!!
大家可以清晰地看到,只需要簡簡單單的兩行,我就獲取了美的公司近三年的股票的收盤價,最高價,最低價,日漲跌幅,總量等等。
整理數據
data = data0[,c(2,6)] # 獲取我們需要的時間以及收盤價 head(data) data <- na.omit(data) date <- as.character(data[,1]) date <- as.Date(date,'%Y%m%d')(1)繪制收盤價序列圖
clsprc <- as.numeric(data[,2]) cls <- zoo(clsprc, date) plot(cls)(2)計算其收益率,并繪制收益率的時序圖
close = data$close return <- 100 * diff(log(close)) cls2 <- zoo(return,date) plot(cls2)(3)對收益率數據進行描述性統計分析
data_outline <- function(x){n <- length(x)m <- mean(x)v <- var(x)s <- sd(x)me <- median(x)cv <- 100*s/m #變異系數css <- sum((x-m)^2)uss <- sum(x^2)R <- max(x)-min(x)R1 <- quantile(x,3/4)-quantile(x,1/4)sm <- s/sqrt(n)g1 <- n/((n-1)*(n-2))*sum((x-m)^3)/s^3g2 <- ((n*(n-1))/((n-1)*(n-2)*(n-3))*sum((x-m)^4)/s^4-(3*(n-1)^2)/((n-2)*(n-3)))data.frame(N=n,Mean=m,Var=v,std_dev=s,median=me,std_mean=sm,CV=cv,CSS=css,USS=uss,R=R,R1=R1,skewness=g1,kurtosis=g2,row.names=1) } data_outline(return)(4)在同一個畫布里繪出收益率序列的直方圖、核密度估計曲線、經驗分布圖和QQ圖,并將后兩個圖與正態分布做比較。
#直方圖 win.graph(width=7,height=6.5) par(mfrow=c(2,2),mar=c(5,4,3,2)) hist(return,main='(a) 美的集團收益率直方圖',xlab='收益*100',ylab='密度', freq=F,cex.main=0.95,las=1) #核密度估計圖 plot(density(return), main="(b) 美的集團收益率核密度曲線圖 ",xlab="收益", ylab='密度',xlim = c(-7,7), ylim=c(0,0.5),cex.main=0.95) polygon(density(return), col="gray", border="black") curve(dnorm,lty = 2, add = TRUE) abline(v=0,lty = 3) legend("topright", legend=c("核密度","正態密度"),lty=c(1,2,3),cex=0.7) #經驗分布圖 ECD.SSEC <- ecdf(return[1:10]) plot(ECD.SSEC,lwd = 2,main="(c) 美的集團收益率累積分布函數",cex.main=0.95,las=1) xx <- unique(sort(c(seq(-3, 2, length=24), knots(ECD.SSEC)))) lines(xx, ECD.SSEC(xx)) abline(v=knots(ECD.SSEC),lty=2,col='gray70') x1 <- c((-4):3) lines(x1,pnorm(x1,mean(return[1:10]),sd(return[1:10])))#QQ圖 qqnorm(return,main="(d) 美的集團收益率Q-Q",cex.main=0.95,xlab='理論分位數',ylab='樣本分位數') qqline(return,col='red')
我會不定期的發一些關于金融數據分析的小實例,在學習編程的同時,分享自己的經歷,希望大家多多交流和指點。
注:本代碼均來自于課程學習以及網絡,如有雷同,純屬巧合。如果侵犯到您的權益,請及時聯系我。
總結
以上是生活随笔為你收集整理的量化投资作业的R实现——收益率相关图形绘制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何搭建一个会员网站?零基础用WordP
- 下一篇: 使用GDScript(godot)生成仿