#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="Доходность акций, %"))
