#Source:  https://t.me/rstudioprogr

library(quantmod)
## Загрузка требуемого пакета: xts
## Загрузка требуемого пакета: zoo
## 
## Присоединяю пакет: 'zoo'
## Следующие объекты скрыты от 'package:base':
## 
##     as.Date, as.Date.numeric
## Загрузка требуемого пакета: TTR
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
library(ggplot2)
## Warning: пакет 'ggplot2' был собран под R версии 4.3.3
library(plyr)
library(scales)
## Warning: пакет 'scales' был собран под R версии 4.3.3
library(zoo)
library(lubridate)
## 
## Присоединяю пакет: 'lubridate'
## Следующие объекты скрыты от 'package:base':
## 
##     date, intersect, setdiff, union
MSFT <- getSymbols("MSFT", from = "2020-01-01", to = "2023-12-31", auto.assign = FALSE)
data1 <- data.frame(date = index(MSFT), MSFT = MSFT$MSFT.Close)
data1$yearmonth <- as.yearmon(data1$date)
data1$week <- week(data1$date)  
data1$weekdayf <- weekdays(data1$date)
data1$weekdayf <- ordered(data1$weekdayf, levels = c("пятница", "четверг", "среда", "вторник", "понедельник"))
data1$yearmonthf <- month(data1$date)
data1$monthf <- month(data1$date, label = TRUE, abbr = FALSE)
data1$year <- year(data1$date)
data2 <- ddply(data1,.(yearmonthf), transform, monthweek=1+week-min(week))  

ggplot(data2, aes(monthweek, weekdayf, fill = MSFT.Close)) + 
  geom_tile(colour = "white") + 
  facet_grid(year~monthf) + 
  scale_fill_gradient(low="lightblue", high="darkblue") +
  labs(x="Неделя в месяце",
       y="",
       title = "Тепловая карта цены акций Microsoft за 4 года", 
       subtitle="Данные скачаны из Yahoo Finance", 
       fill="Close") + theme_classic() +guides(fill=guide_legend(title="Цена закрытия, $"))

data3 <- data2
data3$returns <- 0


for (i in 1:1005) { 
  data3$returns[i+1] <- data3$MSFT.Close[i+1]/data3$MSFT.Close[i]-1
}

ggplot(data3, aes(monthweek, weekdayf, fill = returns)) + 
  geom_tile(colour = "white") + 
  facet_grid(year~monthf) + 
  scale_fill_gradient(low="lightblue", high="darkblue") +
  labs(x="Неделя в месяце",
       y="",
       title = "Тепловая карта доходности акций Microsoft за 4 года", 
       subtitle="Данные скачаны из Yahoo Finance", 
       fill="Close") + theme_classic() +guides(fill=guide_legend(title="Доходность акций, %"))