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

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

library(quantmod)

  

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

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

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

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

  看下结果

head(MSFT,10)
tail(MSFT,10)

  

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

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

画出走势图:

chart_Series(c(data1,data2,data3))

  

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

library(ggplot2)

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

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

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

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

  

利用ggplot画图

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对比吧

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

  

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

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

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

  

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

  

原文地址:https://www.cnblogs.com/adam012019/p/14874922.html