Impact of Trump’s Win on Financial ETFs



[This article was first published on DataGeeek, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)


Want to share your content on R-bloggers? click here if you have a blog, or here if you don’t.

Donald Trump’s recent election win has sparked a rapid surge in sectors like Financials. Barclays calls this a clear reflection of the “Trump playbook,” trends seen in 2016. According to this, the iShares Global Financials ETF seems to have room to continue the uptrend.

Source code:

library(tidyverse)
library(tidyquant)
library(timetk)

#iShares Global Financials ETF (IXG) Stock Price
df_ixg <- 
  tq_get("IXG") %>% 
  select(date, ixg = close)


#2016 term
df_ixg_2016 <- 
  df_ixg %>% 
  filter(date >= as.Date("2016-10-29"),
         date <= as.Date("2016-12-08")) %>% 
  mutate(ixg = round(ixg / subset(., date=="2016-11-08")[["ixg"]] * 100),
         symbol = "2016") %>% 
  mutate(
    days_from_election = as.integer(date - as.Date("2016-11-08")),
    t_label = ifelse(
      days_from_election == 0,
      "t",
      ifelse(
        days_from_election > 0,
        paste0("t+", days_from_election),
        paste0("t", days_from_election)
      )
    )
  ) %>% 
  select(t_label, symbol, ixg) %>% 
  mutate(t_label = factor(t_label, levels = .$t_label))


#2024 term
df_ixg_2024 <- 
  df_ixg %>% 
  filter(date >= as.Date("2024-10-26"),
         date <= as.Date("2024-11-13")) %>% 
  mutate(ixg = round(ixg / subset(., date=="2024-11-05")[["ixg"]] * 100),
         symbol = "2024") %>% 
  mutate(
    days_from_election = as.integer(date - as.Date("2024-11-05")),
    t_label = ifelse(
      days_from_election == 0,
      "t",
      ifelse(
        days_from_election > 0,
        paste0("t+", days_from_election),
        paste0("t", days_from_election)
      )
    )
  ) %>% 
  select(t_label, symbol, ixg) %>% 
  mutate(t_label = factor(t_label, levels = .$t_label))

#Merging the datasets
df_merged <- 
  bind_rows(
    df_ixg_2024,
    df_ixg_2016
  )


#Plot
df_merged %>% 
  ggplot(aes(t_label, ixg, col = symbol)) +
  geom_line(linewidth = 1.5, aes(group = symbol)) +
  ggrepel::geom_text_repel(
    data = . %>% slice_tail(n = 1, by = symbol),
    aes(label = ixg),
    hjust = 1, 
    vjust = 1,
    nudge_x = 0.5,
    size = 8,
    fontface = "bold", 
    family = "Roboto Slab"
  ) +
  scale_color_manual(
    values = c("2024" ="darkorange","2016"  = "navyblue")
  ) +
  scale_x_discrete(expand = expansion(mult = c(.1, .1)),
                   breaks = c(as.factor("t-8"),
                              as.factor("t"),
                              as.factor("t+8"),
                              as.factor("t+30"))) +
  geom_vline(xintercept = "t", 
             size = 1.5, 
             linetype= "dashed", 
             color = "red") +
  labs(
    x = element_blank(), 
    y = element_blank(),
    subtitle = "US Election Date
Daily Index: (t = 100)", title = "iShares Global Financials ETF
2024 vs. 2016" ) + theme_minimal( base_family = "Roboto Slab" ) + theme( panel.grid = element_blank(), panel.grid.major.x = element_line(linetype = "dashed", color = "gray"), panel.grid.major.y = element_line(linetype = "dashed", color = "gray"), plot.subtitle = ggtext::element_markdown(face = "bold",size = 18), plot.title = ggtext::element_markdown(face = "bold", size = 20), axis.text = element_text(face = "bold", size = 18), plot.background = element_rect(fill = "azure", color = "azure"), legend.position = "none" )





Source link

Related Posts

About The Author

Add Comment