R语言 金融数据分析之quantmod (4) 对比多只股票

通过上文我们可以进行单一股票的分析,如何进行多只股票的分析呢

1
library(quantmod)

  

获取多只股票数据,可以用c链接

提示:quantmod和tidyquant对A股的支持不是特别理想。对于A股,pedquant包是一个更好的选择。

帮助功能可以直接help()找到提示,不会用就help吧

 

1
# 获取近10年股票数据<br>getSymbols(c('MSFT','AAPL','GOOG'),from="2010-01-01",to="2020-12-31")

  看下结果

1
2
head(MSFT,10)
tail(MSFT,10)

  

转换为周数据 weekly、月monthly、 年 yearly

 

1
2
3
data1 <- to.weekly(MSFT)
data2 <- to.weekly(AAPL)
data3 <- to.weekly(GOOG) 

 

画出走势图:

1
chart_Series(c(data1,data2,data3))

  

 

 

虽然在一张图上,但我们分不清哪个是哪个,这个时候我们可以用ggplot2加以修饰

1
library(ggplot2)

  创建数据框,数据框使用 data.frame() 函数来创建

1
df <- data.frame(time(MSFT),Cl(MSFT),Cl(AAPL),Cl(GOOG))

 

 

可用rownames()及colnames()得到数据框的行列名,我们修改列的名称

 

1
colnames(df) <- c("date","MS","AP","GO" )

  

 

 

 

利用ggplot画图

1
ggplot(df,aes(x=date,y=MS,color='MSFT'))  + geom_line() + theme_bw() + geom_line(aes(y=AP, color="APPL"))+geom_line(aes(y=GO, color="GOOG"))

  

 

 

 

 

GOOG涨的有点夸张,我们还是去掉GOOG对比吧

1
ggplot(df,aes(x=date,y=MS,color='MSFT'))  + geom_line() + theme_bw() + geom_line(aes(y=AP, color="APPL"))

  

 

 

 

这样图就可以直观的看到了,当然有了数据,我们也可以进行数据分析,比如波动率收益率等等,我们今后在学习。

最好,我们可以把这些数据保存到本地。

 

1
2
3
write.csv (data1,'MSFT.csv')
write.csv (data2,'AAPL.csv')
write.csv (data3,'GOOG.csv')

  

这样我们下次就可以更方便的使用了

 

 

  

 

posted @   徐海建  阅读(621)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示