Conduct the trend analysis for the Netflix stock.

Q1 Import the data for the last five years.

Revise the from code below. No need to type answer. Just revise the code.

# Load tidyquant, tidyverse, lubridate, xts, quantmod, TTR 
library(tidyquant)

from = today() - years(5)
NFLX <- tq_get("NFLX", get = "stock.prices", from = from)
NFLX
## # A tibble: 1,259 x 7
##    date        open  high   low close   volume adjusted
##    <date>     <dbl> <dbl> <dbl> <dbl>    <dbl>    <dbl>
##  1 2013-10-30  47.0  47.0  45.1  45.4 21640500     45.4
##  2 2013-10-31  45.4  46.7  45.1  46.1 18489800     46.1
##  3 2013-11-01  47.0  47.6  46.6  47.0 22020600     47.0
##  4 2013-11-04  47.3  48.3  46.5  48.2 21919100     48.2
##  5 2013-11-05  47.9  48.9  47.6  48.8 17289300     48.8
##  6 2013-11-06  48.5  49.2  47.5  47.9 20733300     47.9
##  7 2013-11-07  48.4  48.5  46.5  46.7 20007400     46.7
##  8 2013-11-08  46.7  47.9  46.5  47.8 19448800     47.8
##  9 2013-11-11  47.5  48.5  46.9  48.3 16815400     48.3
## 10 2013-11-12  48.0  48.5  47.3  47.7 12231800     47.7
## # ... with 1,249 more rows

Q2 How many new columns does the R code chunk below add?

There Are two new colums presented. They are the 100 day moving avertage (SMA.100) And the 200 day moving average (SMA.200).

# Add the 100-day and 200-day simple moving average by passing close prices 
NFLX <-
  NFLX %>%
    tq_mutate(select = close, mutate_fun = SMA, n = 100) %>%
    rename(SMA.100 = SMA) %>%
    tq_mutate(select = close, mutate_fun = SMA, n = 200) %>%
    rename(SMA.200 = SMA)

NFLX
## # A tibble: 1,259 x 9
##    date        open  high   low close   volume adjusted SMA.100 SMA.200
##    <date>     <dbl> <dbl> <dbl> <dbl>    <dbl>    <dbl>   <dbl>   <dbl>
##  1 2013-10-30  47.0  47.0  45.1  45.4 21640500     45.4      NA      NA
##  2 2013-10-31  45.4  46.7  45.1  46.1 18489800     46.1      NA      NA
##  3 2013-11-01  47.0  47.6  46.6  47.0 22020600     47.0      NA      NA
##  4 2013-11-04  47.3  48.3  46.5  48.2 21919100     48.2      NA      NA
##  5 2013-11-05  47.9  48.9  47.6  48.8 17289300     48.8      NA      NA
##  6 2013-11-06  48.5  49.2  47.5  47.9 20733300     47.9      NA      NA
##  7 2013-11-07  48.4  48.5  46.5  46.7 20007400     46.7      NA      NA
##  8 2013-11-08  46.7  47.9  46.5  47.8 19448800     47.8      NA      NA
##  9 2013-11-11  47.5  48.5  46.9  48.3 16815400     48.3      NA      NA
## 10 2013-11-12  48.0  48.5  47.3  47.7 12231800     47.7      NA      NA
## # ... with 1,249 more rows

Q3 What are the values of type variable?

the values of type variable are Close, SMA.100, and SMA. 200.

# Transform to long form to wide form for graphing
NFLX %>%
  select(date, close, SMA.100, SMA.200) 
## # A tibble: 1,259 x 4
##    date       close SMA.100 SMA.200
##    <date>     <dbl>   <dbl>   <dbl>
##  1 2013-10-30  45.4      NA      NA
##  2 2013-10-31  46.1      NA      NA
##  3 2013-11-01  47.0      NA      NA
##  4 2013-11-04  48.2      NA      NA
##  5 2013-11-05  48.8      NA      NA
##  6 2013-11-06  47.9      NA      NA
##  7 2013-11-07  46.7      NA      NA
##  8 2013-11-08  47.8      NA      NA
##  9 2013-11-11  48.3      NA      NA
## 10 2013-11-12  47.7      NA      NA
## # ... with 1,249 more rows

NFLX %>%
  select(date, close, SMA.100, SMA.200) %>%
  gather(key = type, value = price, close:SMA.200)
## # A tibble: 3,777 x 3
##    date       type  price
##    <date>     <chr> <dbl>
##  1 2013-10-30 close  45.4
##  2 2013-10-31 close  46.1
##  3 2013-11-01 close  47.0
##  4 2013-11-04 close  48.2
##  5 2013-11-05 close  48.8
##  6 2013-11-06 close  47.9
##  7 2013-11-07 close  46.7
##  8 2013-11-08 close  47.8
##  9 2013-11-11 close  48.3
## 10 2013-11-12 close  47.7
## # ... with 3,767 more rows

Q4 Filter the date for 2016-06-01 to the latest.

No need to type answer. Just revise the code.

Q5 Does the chart identify a bullish or bearish crossover?

The market is bullish

  • A bullish crossover if the 100-day moving average cross above the 200-day moving average.
  • A bearish crossover if the 100-day moving average cross below the 200-day moving average.

Q6 What day is the crossover?

It’s the first day after the crossover when the shorter-term moving average crosses over the longer-term moving average.

The day after the cross over is 2016-04-06.

Q7 How much 100 shares of the stock would have cost on the day of the crossover in Q6?

the cost of a single stock is $104.83. 100 stocks on 2016-04-06 would cost $10,483.00

Q8 How much profit would you have made, if you had bought 100 shares on the day of crossover and sold them today?

If i sold the 100 shares of stock today i would have a profit of $19,700.00

NFLX %>%
  select(date, close, SMA.100, SMA.200) %>%
  gather(key = type, value = price, close:SMA.200) %>%
  filter(date >= "2016-06-01") %>%
  ggplot(aes(x = date, y = price, col = type)) +
  geom_line() + 
  theme(legend.position="bottom") +
  labs(title = "Simple Moving Averages are a Breeze with tidyquant",
       x = NULL,
       y = "Stock Prices")

Q9 Extend the period by filtering the date for 2015-01-01 to the latest. How much would you have made if you followed the above moving average strategy?

Buy 100 shares at the first bullish crossover; sell all 100 shares at the bearish crossover; buy at the second bullish crossover with all the sales proceeds from the previous transaction; and sell all shares today.

At the end of the buying and selling we would have a profit of $15,399.38 (Buy 100 shares at $79.575.on 2015-04-28 for a cost of $7,957.50. Sell 100 shares at 104.83 on 2016-04-06. Receive cash of $10,483. Buy 82 share of stock at \(127.33. on 2016-10-24. Then Sell shares at\) 284.84 on 2018-10-29 for a total of $23,356.88. Minus the original investment of $7,957.50 = $15,399.38)

NFLX %>%
  select(date, close, SMA.100, SMA.200) %>%
  gather(key = type, value = price, close:SMA.200) %>%
  filter(date >= "2015-01-01") %>%
  ggplot(aes(x = date, y = price, col = type)) +
  geom_line() + 
  theme(legend.position="bottom") +
  labs(title = "Simple Moving Averages are a Breeze with tidyquant",
       x = NULL,
       y = "Stock Prices")