我是靠谱客的博主 无语黑夜,最近开发中收集的这篇文章主要介绍R绘制股票走势图及年份成交量图,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目的:抓取雅虎网站上的还有Oracle公司的股票价格,绘制最高最低点,及描述其年成交量的比例

可以通过getSymbols函数抓取在雅虎上的股票数据,事先需要先下载好两个关于股票的包:

library(quantmod)
library(tseries)
getSymbols("ORCL",src="yahoo")
输入对应的股票名称,就能得到股票数据,eg:

ORCL:
ORCL.Open ORCL.High ORCL.Low ORCL.Close ORCL.Volume
2007-01-03
19
20
19
18
5.2e+07
2007-01-04
19
20
19
18
3.4e+07
2007-01-05
19
20
19
18
3.6e+07
2007-01-08
19
20
19
18
3.1e+07
2007-01-09
20
20
19
18
3.1e+07
2007-01-10
19
20
19
18
2.8e+07
2007-01-11
20
20
19
17
6.5e+07
2007-01-12
19
19
19
18
4.3e+07
绘制相关的图形所用的函数为barChart()见下:

barChart(ORCL)

而在其中标注出最高点与最低点使用的函数为 addTA ,首先,先通过数据找出其最高值与最低值的相关数据:

Max<-Hi(ORCL[which.max(ORCL$ORCL.High)])
Min<-Lo(ORCL[which.min(ORCL$ORCL.Low)])
查看结果:

Max
ORCL.High
2017-06-22
51.85
Min
ORCL.Low
2009-03-09
15.152
再通过addTA函数绘制最高最低点的图

addTA(Max,col="red",type="b",lwd=2,on=1)
addTA(Min,col="blue",type="b",lwd=2,on=1)


即依照图显示出了对应的最高值最低值。

计算对应的成交量的值及其相应的比例,(成交量在抓取数据的第五列),制得成如下的数据框:

df<-data.frame(
year=2015:2017,
or=c(sum(ORCL[which(format(index(ORCL),"%Y")=="2015"),5]),
sum(ORCL[which(format(index(ORCL),"%Y")=="2016"),5]),
sum(ORCL[which(format(index(ORCL),"%Y")=="2017"),5])),
ap=c(sum(AAPL[which(format(index(AAPL),"%Y")=="2015"),5]),
sum(AAPL[which(format(index(AAPL),"%Y")=="2016"),5]),
sum(AAPL[which(format(index(AAPL),"%Y")=="2017"),5])),
MS=c(sum(MSFT[which(format(index(MSFT),"%Y")=="2015"),5]),
sum(MSFT[which(format(index(MSFT),"%Y")=="2016"),5]),
sum(MSFT[which(format(index(MSFT),"%Y")=="2017"),5]))
)
利用数据框的数据进行计算:

df$aveor<-(df$or/(sum(df$or)))
df$aveap<-(df$ap/(sum(df$ap)))
df$avems<-(df$MS/(sum(df$MS)))
得到最终新的表格为如下:

df
year
or
ap
MS
aveor
aveap
avems
1 2015 3750690400 13063147500 9057810400 0.4208588 0.4975680 0.4536930
2 2016 3457618700
9680553200 7814289200 0.3879737 0.3687268 0.3914068
3 2017 1703684100
3510295436 3092523803 0.1911676 0.1337052 0.1549002
绘制相应的统计图形,采用热力图作为颜色:
barplot(as.matrix(df[,5:7]),,beside=T,horiz=F,border="white",ylim=c(0,1),main="stock",col=heat.colors(3))
再添加相应的图例:

legend("right",legend=df$year,bty="n",fill=heat.colors(3))

嗯,讲真好像图形还是挺难看的,关于如何在直方图上加上相应的数据还未学会,

倘若路过有大神希望可以教下渣新

希望本文对你有帮助

技术所限,不当之处,还请见谅。








最后

以上就是无语黑夜为你收集整理的R绘制股票走势图及年份成交量图的全部内容,希望文章能够帮你解决R绘制股票走势图及年份成交量图所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部