Indices

Data - yahoo

Info

source dataset .html .RData
yahoo indices 2025-05-18 2025-07-20

LAST_COMPILE

LAST_COMPILE
2025-07-20

Last

date Nobs
2025-07-18 19

symbol

symbol Symbol Nobs
FTSEMIB.MI FTSE MIB Index 7039
ITOT iShares Core S&P Total U.S. Stock Market ETF 5406
PX1GR.PA CAC 40 GR 7077
XU100.IS BIST 100 7003
^AEX AEX-Index 8361
^DJI Dow Jones Industrial Average 8446
^FCHI CAC 40 8985
^FTSE FTSE 100 10494
^GDAXI DAX PERFORMANCE-INDEX 9495
^GSPC S&P 500 11480
^IBEX IBEX 35 8112
^IXIC NASDAQ Composite 11480
^N225 Nikkei 225 11203
^NDX NASDAQ 100 10027
^RUT Russell 2000 9536
^SP500TR S&P 500 (TR) 9457
^SSMI SMI PR 8711
^STOXX STXE 600 PR.EUR 5340
^STOXX50E Euro Stoxx 50 4588

CAC40, TR

1990-

Linear

Code
plot_linear <- indices %>%
  filter(symbol %in% c("^FCHI", "PX1GR.PA")) %>%
  filter(date >= as.Date("1990-01-01")) %>%
  left_join(symbol, by = "symbol") %>%
  group_by(symbol) %>%
  arrange(date) %>%
  mutate(close = 100*close/close[1]) %>%
  ggplot() + geom_line(aes(x = date, y = close, color = Symbol)) +
  theme_minimal() + xlab("") + ylab("") +
  theme(legend.title = element_blank(),
        legend.position = c(0.5, 0.9)) +
  scale_y_continuous(breaks = seq(0, 10000, 100)) + 
  scale_x_date(breaks = as.Date(paste0(seq(1945, 2100, 5), "-01-01")),
               labels = date_format("%Y"))

plot_linear

Log

Code
plot_log <- plot_linear +
  scale_y_log10(breaks = seq(0, 10000, 100))

plot_log

Bind

Code
ggpubr::ggarrange(plot_linear + ggtitle("Linear scale"), plot_log + ggtitle("Log scale"), common.legend = T)

Nasdaq, S&P 500

1995-

Linear

Code
plot_linear <- indices %>%
  filter(symbol %in% c("^GSPC", "^IXIC")) %>%
  filter(date >= as.Date("1995-01-01")) %>%
  left_join(symbol, by = "symbol") %>%
  group_by(symbol) %>%
  arrange(date) %>%
  mutate(close = 100*close/close[1]) %>%
  ggplot() + geom_line(aes(x = date, y = close, color = Symbol)) +
  theme_minimal() + xlab("") + ylab("") +
  theme(legend.title = element_blank(),
        legend.position = c(0.5, 0.9)) +
  scale_y_continuous(breaks = seq(0, 10000, 100)) + 
  scale_x_date(breaks = as.Date(paste0(seq(1945, 2100, 5), "-01-01")),
               labels = date_format("%Y"))

plot_linear

Log

Code
plot_log <- plot_linear +
  scale_y_log10(breaks = seq(0, 10000, 100))

plot_log

Bind

Code
ggpubr::ggarrange(plot_linear + ggtitle("Linear scale"), plot_log + ggtitle("Log scale"), common.legend = T)

2002-

Linear

Code
plot_linear <- indices %>%
  filter(symbol %in% c("^GSPC", "^IXIC")) %>%
  filter(date >= as.Date("2002-01-01")) %>%
  left_join(symbol, by = "symbol") %>%
  group_by(symbol) %>%
  arrange(date) %>%
  mutate(close = 100*close/close[1]) %>%
  ggplot() + geom_line(aes(x = date, y = close, color = Symbol)) +
  theme_minimal() + xlab("") + ylab("") +
  theme(legend.title = element_blank(),
        legend.position = c(0.5, 0.9)) +
  scale_y_continuous(breaks = seq(0, 10000, 100)) + 
  scale_x_date(breaks = as.Date(paste0(seq(1945, 2100, 5), "-01-01")),
               labels = date_format("%Y"))

plot_linear

Log

Code
plot_log <- plot_linear +
  scale_y_log10(breaks = seq(0, 10000, 100))

plot_log

Bind

Code
ggpubr::ggarrange(plot_linear + ggtitle("Linear scale"), plot_log + ggtitle("Log scale"), common.legend = T)

2010-

Linear

Code
plot_linear <- indices %>%
  filter(symbol %in% c("^GSPC", "^IXIC")) %>%
  filter(date >= as.Date("2010-01-01")) %>%
  left_join(symbol, by = "symbol") %>%
  group_by(symbol) %>%
  arrange(date) %>%
  mutate(close = 100*close/close[1]) %>%
  ggplot() + geom_line(aes(x = date, y = close, color = Symbol)) +
  theme_minimal() + xlab("") + ylab("") +
  theme(legend.title = element_blank(),
        legend.position = c(0.5, 0.9)) +
  scale_y_continuous(breaks = seq(0, 10000, 100)) + 
  scale_x_date(breaks = as.Date(paste0(seq(1945, 2100, 5), "-01-01")),
               labels = date_format("%Y"))

plot_linear

Log

Code
plot_log <- plot_linear +
  scale_y_log10(breaks = seq(0, 10000, 100))

plot_log

Bind

Code
ggpubr::ggarrange(plot_linear + ggtitle("Linear scale"), plot_log + ggtitle("Log scale"), common.legend = T)

Nasdaq, S&P 500, Euro Stoxx

1995-

Linear

Code
plot_linear <- indices %>%
  filter(symbol %in% c("^STOXX50E", "^GSPC", "^IXIC")) %>%
  filter(date >= as.Date("1995-01-01")) %>%
  left_join(symbol, by = "symbol") %>%
  group_by(symbol) %>%
  arrange(date) %>%
  mutate(close = 100*close/close[1]) %>%
  ggplot() + geom_line(aes(x = date, y = close, color = Symbol)) +
  theme_minimal() + xlab("") + ylab("") +
  theme(legend.title = element_blank(),
        legend.position = c(0.5, 0.9)) +
  scale_y_continuous(breaks = seq(0, 10000, 100)) + 
  scale_x_date(breaks = as.Date(paste0(seq(1945, 2100, 5), "-01-01")),
               labels = date_format("%Y"))

plot_linear

Log

Code
plot_log <- plot_linear +
  scale_y_log10(breaks = seq(0, 10000, 100))

plot_log

Bind

Code
ggpubr::ggarrange(plot_linear + ggtitle("Linear scale"), plot_log + ggtitle("Log scale"), common.legend = T)

2007-

Linear

Code
plot_linear <- indices %>%
  filter(symbol %in% c("^STOXX50E", "^GSPC", "^IXIC")) %>%
  filter(date >= as.Date("2007-01-01")) %>%
  left_join(symbol, by = "symbol") %>%
  group_by(symbol) %>%
  arrange(date) %>%
  mutate(close = 100*close/close[1]) %>%
  ggplot() + geom_line(aes(x = date, y = close, color = Symbol)) +
  theme_minimal() + xlab("") + ylab("") +
  theme(legend.title = element_blank(),
        legend.position = c(0.5, 0.9)) +
  scale_y_continuous(breaks = seq(0, 10000, 100)) + 
  scale_x_date(breaks = as.Date(paste0(seq(1945, 2100, 2), "-01-01")),
               labels = date_format("%Y"))

plot_linear

Log

Code
plot_log <- plot_linear +
  scale_y_log10(breaks = seq(0, 10000, 100))

plot_log

Bind

Code
ggpubr::ggarrange(plot_linear + ggtitle("Linear scale"), plot_log + ggtitle("Log scale"), common.legend = T)

S&P 500

All

Linear

Code
plot_linear <- indices %>%
  filter(symbol %in% c("^GSPC")) %>%
  #filter(date >= as.Date("1990-01-01")) %>%
  left_join(symbol, by = "symbol") %>%
  group_by(symbol) %>%
  arrange(date) %>%
  mutate(close = 100*close/close[1]) %>%
  ggplot() + geom_line(aes(x = date, y = close)) +
  theme_minimal() + xlab("") + ylab("") +
  theme(legend.title = element_blank(),
        legend.position = c(0.5, 0.9)) +
  scale_y_continuous(breaks = seq(0, 10000, 500)) + 
  scale_x_date(breaks = as.Date(paste0(seq(1945, 2100, 5), "-01-01")),
               labels = date_format("%Y"))

plot_linear

Log

Code
plot_log <- plot_linear +
  scale_y_log10(breaks = seq(0, 10000, 500))

plot_log

Bind

Code
ggpubr::ggarrange(plot_linear + ggtitle("Linear scale"), plot_log + ggtitle("Log scale"), common.legend = T)

1990-

Linear

Code
plot_linear <- indices %>%
  filter(symbol %in% c("^GSPC")) %>%
  filter(date >= as.Date("1990-01-01")) %>%
  left_join(symbol, by = "symbol") %>%
  group_by(symbol) %>%
  arrange(date) %>%
  mutate(close = 100*close/close[1]) %>%
  ggplot() + geom_line(aes(x = date, y = close)) +
  theme_minimal() + xlab("") + ylab("") +
  theme(legend.title = element_blank(),
        legend.position = c(0.5, 0.9)) +
  scale_y_continuous(breaks = seq(0, 10000, 100)) + 
  scale_x_date(breaks = as.Date(paste0(seq(1945, 2100, 5), "-01-01")),
               labels = date_format("%Y"))

plot_linear

Log

Code
plot_log <- plot_linear +
  scale_y_log10(breaks = seq(0, 10000, 100))

plot_log

Bind

Code
ggpubr::ggarrange(plot_linear + ggtitle("Linear scale"), plot_log + ggtitle("Log scale"), common.legend = T)

CAC40, S&P 500

1990-

Linear

Code
plot_linear <- indices %>%
  filter(symbol %in% c("^FCHI", "^GSPC")) %>%
  filter(date >= as.Date("1990-01-01")) %>%
  left_join(symbol, by = "symbol") %>%
  group_by(symbol) %>%
  arrange(date) %>%
  mutate(close = 100*close/close[1]) %>%
  ggplot() + geom_line(aes(x = date, y = close, color = Symbol)) +
  theme_minimal() + xlab("") + ylab("") +
  theme(legend.title = element_blank(),
        legend.position = c(0.5, 0.9)) +
  scale_y_continuous(breaks = seq(0, 10000, 100)) + 
  scale_x_date(breaks = as.Date(paste0(seq(1945, 2100, 5), "-01-01")),
               labels = date_format("%Y"))

plot_linear

Log

Code
plot_log <- plot_linear +
  scale_y_log10(breaks = seq(0, 10000, 100))

plot_log

Bind

Code
ggpubr::ggarrange(plot_linear + ggtitle("Linear scale"), plot_log + ggtitle("Log scale"), common.legend = T)

2000-

Linear

Code
plot_linear <- indices %>%
  filter(symbol %in% c("^FCHI", "^GSPC")) %>%
  filter(date >= as.Date("2000-01-01")) %>%
  left_join(symbol, by = "symbol") %>%
  group_by(symbol) %>%
  arrange(date) %>%
  mutate(close = 100*close/close[1]) %>%
  ggplot() + geom_line(aes(x = date, y = close, color = Symbol)) +
  theme_minimal() + xlab("") + ylab("") +
  theme(legend.title = element_blank(),
        legend.position = c(0.5, 0.9)) +
  scale_y_continuous(breaks = seq(0, 10000, 100)) + 
  scale_x_date(breaks = as.Date(paste0(seq(1945, 2100, 5), "-01-01")),
               labels = date_format("%Y"))

plot_linear

Log

Code
plot_log <- plot_linear +
  scale_y_log10(breaks = seq(0, 10000, 100))

plot_log

Bind

Code
ggpubr::ggarrange(plot_linear + ggtitle("Linear scale"), plot_log + ggtitle("Log scale"), common.legend = T)

2010-

Linear

Code
plot_linear <- indices %>%
  filter(symbol %in% c("^FCHI", "^GSPC")) %>%
  filter(date >= as.Date("2010-01-01")) %>%
  left_join(symbol, by = "symbol") %>%
  group_by(symbol) %>%
  arrange(date) %>%
  mutate(close = 100*close/close[1]) %>%
  ggplot() + geom_line(aes(x = date, y = close, color = Symbol)) +
  theme_minimal() + xlab("") + ylab("") +
  theme(legend.title = element_blank(),
        legend.position = c(0.5, 0.9)) +
  scale_y_continuous(breaks = seq(0, 10000, 100)) + 
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 2), "-01-01")),
               labels = date_format("%Y"))

plot_linear

Log

Code
plot_log <- plot_linear +
  scale_y_log10(breaks = seq(0, 10000, 100))

plot_log

Bind

Code
ggpubr::ggarrange(plot_linear + ggtitle("Linear scale"), plot_log + ggtitle("Log scale"), common.legend = T)

Nasdaq, S&P 500, Euro Stoxx

1995-

Linear

Code
plot_linear <- indices %>%
  filter(symbol %in% c("^GDAXI", "^IBEX", "^FCHI")) %>%
  filter(date >= as.Date("1995-01-01")) %>%
  left_join(symbol, by = "symbol") %>%
  group_by(symbol) %>%
  arrange(date) %>%
  mutate(close = 100*close/close[1]) %>%
  ggplot() + geom_line(aes(x = date, y = close, color = Symbol)) +
  theme_minimal() + xlab("") + ylab("") +
  theme(legend.title = element_blank(),
        legend.position = c(0.5, 0.9)) +
  scale_y_continuous(breaks = seq(0, 10000, 100)) + 
  scale_x_date(breaks = as.Date(paste0(seq(1945, 2100, 5), "-01-01")),
               labels = date_format("%Y"))

plot_linear

Log

Code
plot_log <- plot_linear +
  scale_y_log10(breaks = seq(0, 10000, 100))

plot_log

Bind

Code
ggpubr::ggarrange(plot_linear + ggtitle("Linear scale"), plot_log + ggtitle("Log scale"), common.legend = T)