---
title: "Lab1 Dashboard Building - Studying Stock Trade Data"
author: "Runhao Wang"
output:
flexdashboard::flex_dashboard:
orientation: column
social: menu
source_code: embed
vertical_layout: fill
---
#Summary
##Column
###Stock Key Performance Metrics
```{r}
library(quantmod)
library(plyr)
library(DT)
what_metrics <- yahooQF(c("Price/Sales",
"P/E Ratio",
"Price/EPS Estimate Next Year",
"PEG Ratio",
"Dividend Yield",
"Market Capitalization"))
tickers <- c("BABA", "NFLX", "FB", "BA")
# Not all the metrics are returned by Yahoo.
metrics <- getQuote(paste(tickers, sep="", collapse=";"), what=what_metrics)
#Add tickers as the first column and remove the first column which had date stamps
metrics <- data.frame(Symbol=tickers, metrics[,2:length(metrics)])
#Change colnames
colnames(metrics) <- c("Symbol", "P-E Ratio", "Price EPS Estimate Next Year", "Div Yield", "Market Cap")
#Export financial stock key performance metrics to a csv file
write.csv(metrics, "FinancialMetrics.csv", row.names=FALSE)
DT::datatable(metrics)
```
Stock Prices
=====================================
```{r setup, include=FALSE}
chooseCRANmirror(graphics=FALSE, ind=1)
library(flexdashboard)
library(pdfetch)
library(dygraphs)
library(xts)
identifiers <- c("BABA", "NFLX", "FB", "BA")
```
Column {.tabset data-height=550}
-----------------------------------------------------------------------
### Alibaba Group (BABA)
```{r}
OneYearBABA <- pdfetch_YAHOO("BABA", fields = c("open", "high", "low", "close"), from = as.Date("2017-01-01"),interval = "1d")
colnames(OneYearBABA)=c("Open","High","Low","Close")
m <- tail(OneYearBABA, n = 365)
#plot
dygraph(m,
ylab = "Stock Price ($)",
group = "stockprices") %>%
dyCandlestick() %>%
dyLegend(width = 400) %>%
dyRangeSelector(dateWindow = c("2019-06-15", "2020-06-16"))
```
### Netflix (NFLX)
```{r}
OneYearNFLX <- pdfetch_YAHOO("NFLX", fields = c("open", "high", "low", "close"), from = as.Date("2017-01-01"),interval = "1d")
colnames(OneYearNFLX)=c("Open","High","Low","Close")
m <- tail(OneYearNFLX, n = 365)
#plot
dygraph(m,
ylab = "Stock Price ($)",
group = "stockprices") %>%
dyCandlestick() %>%
dyLegend(width = 400) %>%
dyRangeSelector(dateWindow = c("2019-06-15", "2020-06-16"))
```
### Facebook (FB)
```{r}
OneYearFB <- pdfetch_YAHOO("FB", fields = c("open", "high", "low", "close"), from = as.Date("2017-01-01"),interval = "1d")
colnames(OneYearFB)=c("Open","High","Low","Close")
m <- tail(OneYearFB, n = 365)
#plot
dygraph(m,
ylab = "Stock Price ($)",
group = "stockprices") %>%
dyCandlestick() %>%
dyLegend(width = 400) %>%
dyRangeSelector(dateWindow = c("2019-06-15", "2020-06-16"))
```
### Boeing (BA)
```{r}
OneYearFB <- pdfetch_YAHOO("BA", fields = c("open", "high", "low", "close"), from = as.Date("2017-01-01"),interval = "1d")
colnames(OneYearFB)=c("Open","High","Low","Close")
m <- tail(OneYearFB, n = 365)
#plot
dygraph(m,
ylab = "Stock Price ($)",
group = "stockprices") %>%
dyCandlestick() %>%
dyLegend(width = 400) %>%
dyRangeSelector(dateWindow = c("2019-06-15", "2020-06-16"))
```
More Trading Info
=====================================
Column
-----------------------------------------------------------------------
### Price
```{r}
financialData <- pdfetch_YAHOO(identifiers, fields = c("open","adjclose"), from = as.Date("2017-01-01"), to = as.Date("2020-06-16"),interval = "1d")
OneYAdjClose <- cbind(financialData$BABA.adjclose,financialData$NFLX.adjclose, financialData$FB.adjclose, financialData$BA.adjclose)
colnames(OneYAdjClose) <-c("BABA","NFLX","FB", "BA")
c <- tail(OneYAdjClose, n = 365)
#plot
dygraph(c,
main = "Adjusted Closing Price (past 365 trading days)",
ylab = "Closing Price ($)",
group = "trading") %>%
dyOptions(strokeWidth = 2,colors = RColorBrewer::brewer.pal(5, "Set2"))%>%
dyHighlight(highlightCircleSize = 3,
highlightSeriesBackgroundAlpha = 0.2,
hideOnMouseOut = TRUE)%>%
dyLegend(width = 400) %>%
dyRangeSelector(dateWindow = c("2019-06-15", "2020-06-16"))
```
### Volume
```{r}
financialData1y <- pdfetch_YAHOO(identifiers, fields = c("open", "high", "low", "close","volume","adjclose"), from = as.Date("2017-01-01"),interval = "1d")
OneYRTradingVol <- cbind(financialData$BABA.adjclose,financialData$NFLX.adjclose, financialData$FB.adjclose, financialData$BA.adjclose)
colnames(OneYAdjClose) <-c("BABA","NFLX","FB", "BA")
t <- tail(OneYRTradingVol, n = 365)
#plot
dygraph(t,
main = "Trading Volume (past 365 trading days)",
ylab = "Volume",
group = "trading") %>%
dyOptions(strokeWidth = 2,colors = RColorBrewer::brewer.pal(5, "Set2"))%>%
dyHighlight(highlightCircleSize = 3,
highlightSeriesBackgroundAlpha = 0.2,
hideOnMouseOut = TRUE)%>%
dyLegend(width = 400) %>%
dyRangeSelector(dateWindow = c("2019-06-15", "2020-06-16"))
```