The code for the moving average analysis below is taken from: https://www.r-bloggers.com/tidyquant-bringing-quantitative-financial-analysis-to-the-tidyverse/.
## # A tibble: 253 x 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 AAPL 2019-04-02 191. 194. 191. 194. 22765700 192.
## 2 AAPL 2019-04-03 193. 196. 193. 195. 23271800 193.
## 3 AAPL 2019-04-04 195. 196. 193. 196. 19114300 193.
## 4 AAPL 2019-04-05 196. 197. 196. 197 18526600 194.
## 5 AAPL 2019-04-08 196. 200. 196. 200. 25881700 198.
## 6 AAPL 2019-04-09 200. 203. 199. 200. 35768200 197.
## 7 AAPL 2019-04-10 199. 201. 198. 201. 21695300 198.
## 8 AAPL 2019-04-11 201. 201 198. 199. 20900800 196.
## 9 AAPL 2019-04-12 199. 200. 196. 199. 27760700 196.
## 10 AAPL 2019-04-15 199. 200. 198. 199. 17536600 197.
## # … with 243 more rows
## # A tibble: 253 x 10
## symbol date open high low close volume adjusted SMA.short SMA.long
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 AAPL 2019-04-02 191. 194. 191. 194. 2.28e7 192. NA NA
## 2 AAPL 2019-04-03 193. 196. 193. 195. 2.33e7 193. NA NA
## 3 AAPL 2019-04-04 195. 196. 193. 196. 1.91e7 193. NA NA
## 4 AAPL 2019-04-05 196. 197. 196. 197 1.85e7 194. NA NA
## 5 AAPL 2019-04-08 196. 200. 196. 200. 2.59e7 198. NA NA
## 6 AAPL 2019-04-09 200. 203. 199. 200. 3.58e7 197. NA NA
## 7 AAPL 2019-04-10 199. 201. 198. 201. 2.17e7 198. NA NA
## 8 AAPL 2019-04-11 201. 201 198. 199. 2.09e7 196. NA NA
## 9 AAPL 2019-04-12 199. 200. 196. 199. 2.78e7 196. NA NA
## 10 AAPL 2019-04-15 199. 200. 198. 199. 1.75e7 197. NA NA
## # … with 243 more rows
## # A tibble: 759 x 3
## date type price
## <date> <chr> <dbl>
## 1 2019-04-02 close 194.
## 2 2019-04-03 close 195.
## 3 2019-04-04 close 196.
## 4 2019-04-05 close 197
## 5 2019-04-08 close 200.
## 6 2019-04-09 close 200.
## 7 2019-04-10 close 201.
## 8 2019-04-11 close 199.
## 9 2019-04-12 close 199.
## 10 2019-04-15 close 199.
## # … with 749 more rows
## # A tibble: 253 x 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 ^GSPC 2019-04-02 2868. 2873. 2859. 2867. 3246900000 2867.
## 2 ^GSPC 2019-04-03 2876. 2885. 2865. 2873. 3550240000 2873.
## 3 ^GSPC 2019-04-04 2874. 2881. 2867. 2879. 3015180000 2879.
## 4 ^GSPC 2019-04-05 2884. 2893. 2883. 2893. 3146820000 2893.
## 5 ^GSPC 2019-04-08 2888. 2896. 2881. 2896. 3054030000 2896.
## 6 ^GSPC 2019-04-09 2887. 2887. 2873. 2878. 3007980000 2878.
## 7 ^GSPC 2019-04-10 2881. 2890. 2879. 2888. 3062380000 2888.
## 8 ^GSPC 2019-04-11 2892. 2893. 2882. 2888. 2938540000 2888.
## 9 ^GSPC 2019-04-12 2901. 2911. 2898. 2907. 3688490000 2907.
## 10 ^GSPC 2019-04-15 2908. 2910. 2896. 2906. 3088330000 2906.
## # … with 243 more rows
## # A tibble: 253 x 10
## symbol date open high low close volume adjusted SMA.short SMA.long
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 ^GSPC 2019-04-02 2868. 2873. 2859. 2867. 3.25e9 2867. NA NA
## 2 ^GSPC 2019-04-03 2876. 2885. 2865. 2873. 3.55e9 2873. NA NA
## 3 ^GSPC 2019-04-04 2874. 2881. 2867. 2879. 3.02e9 2879. NA NA
## 4 ^GSPC 2019-04-05 2884. 2893. 2883. 2893. 3.15e9 2893. NA NA
## 5 ^GSPC 2019-04-08 2888. 2896. 2881. 2896. 3.05e9 2896. NA NA
## 6 ^GSPC 2019-04-09 2887. 2887. 2873. 2878. 3.01e9 2878. NA NA
## 7 ^GSPC 2019-04-10 2881. 2890. 2879. 2888. 3.06e9 2888. NA NA
## 8 ^GSPC 2019-04-11 2892. 2893. 2882. 2888. 2.94e9 2888. NA NA
## 9 ^GSPC 2019-04-12 2901. 2911. 2898. 2907. 3.69e9 2907. NA NA
## 10 ^GSPC 2019-04-15 2908. 2910. 2896. 2906. 3.09e9 2906. NA NA
## # … with 243 more rows
## # A tibble: 759 x 3
## date type price
## <date> <chr> <dbl>
## 1 2019-04-02 close 2867.
## 2 2019-04-03 close 2873.
## 3 2019-04-04 close 2879.
## 4 2019-04-05 close 2893.
## 5 2019-04-08 close 2896.
## 6 2019-04-09 close 2878.
## 7 2019-04-10 close 2888.
## 8 2019-04-11 close 2888.
## 9 2019-04-12 close 2907.
## 10 2019-04-15 close 2906.
## # … with 749 more rows
Bullish crosses: June 24 2019 close 2945.35, September 16 2019 close 2997.96 Bearish crosses: August 14 2019 close 2840.60, March 2 2020 close 3090.23
## # A tibble: 253 x 12
## symbol date open high low close volume adjusted SMA.short SMA.long
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 ^GSPC 2019-04-02 2868. 2873. 2859. 2867. 3.25e9 2867. NA NA
## 2 ^GSPC 2019-04-03 2876. 2885. 2865. 2873. 3.55e9 2873. NA NA
## 3 ^GSPC 2019-04-04 2874. 2881. 2867. 2879. 3.02e9 2879. NA NA
## 4 ^GSPC 2019-04-05 2884. 2893. 2883. 2893. 3.15e9 2893. NA NA
## 5 ^GSPC 2019-04-08 2888. 2896. 2881. 2896. 3.05e9 2896. NA NA
## 6 ^GSPC 2019-04-09 2887. 2887. 2873. 2878. 3.01e9 2878. NA NA
## 7 ^GSPC 2019-04-10 2881. 2890. 2879. 2888. 3.06e9 2888. NA NA
## 8 ^GSPC 2019-04-11 2892. 2893. 2882. 2888. 2.94e9 2888. NA NA
## 9 ^GSPC 2019-04-12 2901. 2911. 2898. 2907. 3.69e9 2907. NA NA
## 10 ^GSPC 2019-04-15 2908. 2910. 2896. 2906. 3.09e9 2906. NA NA
## # … with 243 more rows, and 2 more variables: SMA.short50 <dbl>,
## # SMA.long100 <dbl>
## # A tibble: 759 x 3
## date type price
## <date> <chr> <dbl>
## 1 2019-04-02 close 2867.
## 2 2019-04-03 close 2873.
## 3 2019-04-04 close 2879.
## 4 2019-04-05 close 2893.
## 5 2019-04-08 close 2896.
## 6 2019-04-09 close 2878.
## 7 2019-04-10 close 2888.
## 8 2019-04-11 close 2888.
## 9 2019-04-12 close 2907.
## 10 2019-04-15 close 2906.
## # … with 749 more rows
There are no bullish crosses when adjusting the moving averages to 50 and 100 days, only the single bearish cross in late March 2020.