Currency Crosses - currency_crosses

Data - Investing

currency_crosses_catalog

Code
currency_crosses_cat |>
  select(name, base_name, second_name) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Currencies

Code
currency_crosses_USA_var |>
  select(symbol = base, base_name) |>
  left_join(currency_crosses_USA |>
              group_by(symbol) |>
              summarise(Nobs = n(),
                        value = last(Close) |> round(2)), 
            by = "symbol") |>
  arrange(-Nobs) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Pound, Euro, Swiss Franc

All

Code
currency_crosses_USA |>
  filter(symbol %in% c("EUR", "CHF", "GBP")) |>
  left_join(currency_crosses_USA_var |>
              rename(symbol = base), by = "symbol") |>
  ggplot() + geom_line(aes(x = date, y = Close, color = base_name)) + 
  theme_minimal() + xlab("") + ylab("Currency in $") +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 3, 0.2),
                     labels = dollar_format(accuracy = 0.1)) +
  scale_color_manual(values = viridis(5)[1:4]) +
  theme(legend.position = c(0.85, 0.9),
        legend.title = element_blank())

2010-

Code
currency_crosses_USA |>
  filter(symbol %in% c("EUR", "CHF", "GBP"),
         date >= as.Date("2010-01-01")) |>
  left_join(currency_crosses_USA_var |>
              rename(symbol = base), by = "symbol") |>
  ggplot() + geom_line(aes(x = date, y = Close, color = base_name)) + 
  theme_minimal() + xlab("") + ylab("Currency in $") +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 3, 0.2),
                     labels = dollar_format(accuracy = 0.1)) +
  scale_color_manual(values = viridis(5)[1:4]) +
  theme(legend.position = c(0.85, 0.9),
        legend.title = element_blank())

2018-

Code
currency_crosses_USA |>
  filter(symbol %in% c("EUR", "CHF", "GBP"),
         date >= as.Date("2018-01-01")) |>
  left_join(currency_crosses_USA_var |>
              rename(symbol = base), by = "symbol") |>
  ggplot() + geom_line(aes(x = date, y = Close, color = base_name)) + 
  theme_minimal() + xlab("") + ylab("Currency in $") +
  scale_x_date(breaks = "3 months",
               labels = date_format("%b %Y")) +
  scale_y_log10(breaks = seq(0, 3, 0.1),
                labels = dollar_format(accuracy = 0.1)) +
  scale_color_manual(values = viridis(5)[1:4]) +
  theme(legend.position = c(0.85, 0.9),
        legend.title = element_blank())

Australian, Canadian, New Zealand Dollars

Code
currency_crosses_USA |>
  filter(symbol %in% c("AUD", "NZD", "CAD")) |>
  left_join(currency_crosses_USA_var |>
              rename(symbol = base), by = "symbol") |>
  ggplot() + geom_line(aes(x = date, y = Close, color = base_name)) + 
  theme_minimal() + xlab("") + ylab("Currency in $") +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 3, 0.2),
                     labels = dollar_format(accuracy = 0.1)) +
  scale_color_manual(values = viridis(5)[1:4]) +
  theme(legend.position = c(0.45, 0.9),
        legend.title = element_blank())

Australian, Canadian, New Zealand Dollars

Code
currency_crosses_USA |>
  filter(symbol %in% c("ILS", "PLN", "BRL")) |>
  left_join(currency_crosses_USA_var |>
              rename(symbol = base), by = "symbol") |>
  ggplot() + geom_line(aes(x = date, y = Close, color = base_name)) + 
  theme_minimal() + xlab("") + ylab("Currency in $") +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 2000, 100),
                     labels = dollar_format(accuracy = 1)) +
  scale_color_manual(values = viridis(5)[1:4]) +
  theme(legend.position = c(0.45, 0.9),
        legend.title = element_blank())

Australian, Canadian, New Zealand Dollars

Code
currency_crosses_USA |>
  filter(symbol %in% c("ILS", "PLN", "BRL")) |>
  filter(date >= as.Date("1996-01-01")) |>
  left_join(currency_crosses_USA_var |>
              rename(symbol = base), by = "symbol") |>
  ggplot() + geom_line(aes(x = date, y = Close, color = base_name)) + 
  theme_minimal() + xlab("") + ylab("Currency in $") +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 2, 0.1),
                     labels = dollar_format(accuracy = 0.1)) +
  scale_color_manual(values = viridis(5)[1:4]) +
  theme(legend.position = c(0.45, 0.9),
        legend.title = element_blank())

Ruble, Peso, Yen

Code
currency_crosses_USA |>
  filter(symbol %in% c("ARS", "RUB", "JPY")) |>
  left_join(currency_crosses_USA_var |>
              rename(symbol = base), by = "symbol") |>
  ggplot() + geom_line(aes(x = date, y = Close, color = base_name)) + 
  theme_minimal() + xlab("") + ylab("Currency in $") +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 3, 0.01),
                     labels = dollar_format(accuracy = 0.01)) +
  scale_color_manual(values = viridis(5)[1:4]) +
  theme(legend.position = c(0.45, 0.7),
        legend.title = element_blank())

Ruble, Peso, Yen

Code
currency_crosses_base_USA |>
  filter(partner %in% c("ARS", "RUB", "JPY")) |>
  left_join(currency_crosses_base_USA_var |>
              rename(partner = second), by = "partner") |>
  ggplot() + geom_line(aes(x = date, y = 1/Close, color = second_name)) + 
  theme_minimal() + xlab("") + ylab("Currency in $") +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 3, 0.1),
                labels = dollar_format(accuracy = 0.01)) +
  scale_color_manual(values = viridis(5)[1:4]) +
  theme(legend.position = c(0.85, 0.9),
        legend.title = element_blank())

Parités croisées (hors dollar et euro)

currency_crosses : 22 grandes parités croisées qui ne sont ni USD/* (currency_crosses_USD) ni EUR/* (currency_crosses_EUR) — les crosses classiques entre livre, yen, franc suisse, dollars australien / néo-zélandais / canadien, plus quelques croisées scandinaves.

Code
currency_crosses |>
  distinct(name) |>
  left_join(currency_crosses |>
              group_by(name) |>
              summarise(depuis = min(date), Nobs = n(),
                        Close = last(Close) |> round(4)),
            by = "name") |>
  arrange(name) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Croisées du yen

Code
currency_crosses |>
  filter(name %in% c("GBP/JPY", "CHF/JPY", "AUD/JPY", "NZD/JPY", "CAD/JPY"),
         date >= as.Date("1990-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = Close, color = name)) +
  theme_minimal() + xlab("") + ylab("Cours (en yen)") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_color_manual(values = viridis(6)[1:5]) +
  theme(legend.position = c(0.5, 0.12), legend.title = element_blank(),
        legend.direction = "horizontal")

Autres grandes croisées, rebasées à 100 (2000)

Code
currency_crosses |>
  filter(name %in% c("GBP/CHF", "AUD/NZD", "GBP/AUD", "NOK/SEK", "GBP/ZAR"),
         date >= as.Date("2000-01-01"), !is.na(Close), Close > 0) |>
  group_by(name) |> arrange(date) |>
  mutate(y = 100 * Close / first(Close)) |> ungroup() |>
  ggplot() + geom_line(aes(x = date, y = y, color = name)) +
  theme_minimal() + xlab("") + ylab("Base 100 = janv. 2000") +
  scale_x_date(breaks = seq(1960, 2100, 4) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10() +
  scale_color_manual(values = viridis(6)[1:5]) +
  theme(legend.position = c(0.5, 0.12), legend.title = element_blank(),
        legend.direction = "horizontal")