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')
这样我们下次就可以更方便的使用了