Как построить XTS, который содержит возврат 4 акций? - PullRequest
1 голос
/ 27 октября 2019

Это мой код

library(ggplot2)
library(quantmod)
library(xts)
library(magrittr)
start <- as.Date("2012-01-01")
end <- as.Date("2019-10-01")
getSymbols(c("AAPL","MSFT", "GOOG","INTC","AMD"), src = "yahoo", from = start, to = end)
stocks <- as.xts(data.frame(AAPL = AAPL[, "AAPL.Close"], MSFT = MSFT[, "MSFT.Close"], 
                            GOOG = GOOG[, "GOOG.Close"],INTC = INTC[, "INTC.Close"],AMD = AMD[, "AMD.Close"]))
head(stocks)
stock_change = stocks %>% log %>% diff
head(stock_change)

Что мне делать дальше? Я хочу построить это, используя ggplot2 и функцию фасетного переноса

1 Ответ

0 голосов
/ 28 октября 2019

Если вы хотите использовать ggplot2, вы можете использовать tidyquant. Это оборачивает xts и quantmod в аккуратный формат для удобного использования с dplyr и ggplot2. Смотрите простой пример из тидиквантной виньетки ниже. Больше информации о графике доступно в тидиквантных виньетках .

library(tidyquant)
library(ggplot2)

start <- as.Date("2012-01-01")
end <- as.Date("2019-10-01")

# default source is yahoo. Read help to use other sources.
stocks <- tq_get(c("AAPL","MSFT", "GOOG","INTC","AMD"), from = start, to = end)
stocks %>%
  ggplot(aes(x = date, y = close, group = symbol)) +
  geom_candlestick(aes(open = open, high = high, low = low, close = close)) +
  labs(title = "Stocks Candlestick Chart", 
       subtitle = "Experimenting with Mulitple Stocks",
       y = "Closing Price", x = "") + 
  coord_x_date(xlim = c(start, end)) +
  facet_wrap(~ symbol, ncol = 2, scale = "free_y") + 
  theme_tq()

enter image description here

...