IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Impact of Trump’s Win on Financial ETFs

    Selcuk Disci发表于 2024-12-24 11:34:16
    love 0
    [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 = "<span style = 'color:red;'>US Election Date</span><br>Daily Index: (t = 100)",
        title = "iShares Global Financials ETF<br><span style = 'color:darkorange;'>2024</span> vs. <span style = 'color:navyblue'>2016</span>"
      ) +
      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"
      )
    

    To leave a comment for the author, please follow the link and comment on their blog: DataGeeek.

    R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
    Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
    Continue reading: Impact of Trump’s Win on Financial ETFs


沪ICP备19023445号-2号
友情链接