试图找到R中的波动性,但是我的代码无法正常工作

时间:2019-11-26 14:58:24

标签: r finance yahoo-finance volatility

我正在使用以下代码查找特斯拉的波动性:

library(quantmod)
library(ggplot2)

Tesla <-  getSymbols("TSLA", src = "yahoo", from = "2014-10-01", to = "2019-11-25", auto.assign = FALSE)

vol.tesla <- volatility(Tesla[ ,6])


graf_vol_tesla <- ggplot(vol.tesla, aes(x = index(vol.tesla), y = vol.tesla))+ geom_line(color = "violetred4") +
  ggtitle("volatility Tesla") + xlab("Date") + ylab("Volatility") +
  theme(plot.title = element_text(hjust = 0.5)) +
  scale_x_date(date_labels = "%b %y", date_breaks = "9 months")

graf_vol_tesla

但是,它作为输出而不是图像。有人知道如何解决吗?预先感谢!

  

'不知道如何自动为xts / zoo类型的对象选择比例。默认为连续。错误:输入无效:date_trans仅适用于Date类的对象。

1 个答案:

答案 0 :(得分:1)

您只需要将index(vol.tesla)转换为有效的日期对象,以便ggplot可以绘制它。使用as.Date来执行此操作,如下所示:

library(ggplot2)
library(quantmod)

Tesla <-  getSymbols("TSLA", src = "yahoo", from = "2014-10-01", to = "2019-11-25", auto.assign = FALSE)

vol.tesla <- volatility(Tesla[ ,6])

graf_vol_tesla <- ggplot(vol.tesla, aes(x = as.Date(index(vol.tesla)), 
                                        y = vol.tesla))+ geom_line(color = "violetred4") +
  ggtitle("volatility Tesla") + xlab("Date") + ylab("Volatility") +
  theme(plot.title = element_text(hjust = 0.5))+
  scale_x_date(date_labels = "%b %y", date_breaks = "9 months")


graf_vol_tesla

enter image description here