Energy futures - energy_futures

Data - Investing

Instantané quotidien de https://fr.investing.com/commodities/energy : contrats à terme sur l’énergie. Une ligne par instrument et par jour.

Dernier instantané

Code
last_day <- max(energy_futures$scraped_date)

energy_futures |>
  filter(scraped_date == last_day) |>
  transmute(Instrument = name, Échéance = month, Dernier = last,
            `+ Haut` = high, `+ Bas` = low, `Var.` = chg, `Var. %` = chg_pct,
            Heure = quote_time) |>
  arrange(Instrument) |>
  print_table_conditional()
Instrument Échéance Dernier + Haut + Bas Var. Var. % Heure
Dutch TTF Natural Gas Nov 2026 87.3150 87.3150 84.9000 0.0920 0.11 14/10
E-mini Crude Oil Nov 2026 94.0000 95.2800 93.6500 -1.1000 -1.16 05:58:22
Emissions de carbone Déc 2026 87.1400 88.2400 86.6200 -0.9100 -1.03 14/10
Essence RBOB Nov 2026 3.1919 3.2641 3.1911 -0.0676 -2.07 06:33:53
Fioul Nov 2026 4.8515 4.9303 4.8318 -0.0785 -1.59 06:33:53
Gasoil Londres Nov 2026 1441.1300 1465.6400 1433.1300 -24.7500 -1.69 06:33:16
Gaz naturel Nov 2026 3.2710 3.3000 3.2540 0.0710 2.22 06:31:31
Malaysian Crude Palm Oil c2 1183.5000 1183.5000 1183.5000 5.2500 0.45 13/10
Micro Henry Hub Natural Gas Nov 2026 3.2630 3.2960 3.2510 0.0650 2.03 06:00:22
Micro WTI Crude Oil Nov 2026 94.1300 95.3400 93.5800 -0.9600 -1.01 06:00:31
Pétrole Brent Déc 2026 104.1600 106.9700 104.0100 -1.9000 -1.79 06:33:31
Pétrole brut WTI Nov 2026 93.9100 95.3000 93.5900 -1.1800 -1.24 06:33:01

Source : investing.com, instantané du 15 octobre 2026.

Prix (valeurs)

Code
earliest <- min(energy_futures$scraped_date)

energy_price_chart <- function(sel, from = earliest, ylab = "Prix") {
  d <- energy_futures |> filter(name %in% sel, scraped_date >= from)

  if (n_distinct(d$scraped_date) < 2) {
    knitr::asis_output(paste0(
      "_Série trop courte (", n_distinct(d$scraped_date),
      " relevé) — le graphique se remplira au fil des instantanés quotidiens._"))
  } else {
    d |>
      ggplot() + geom_line(aes(x = scraped_date, y = last, color = name)) +
      theme_minimal() + xlab("") + ylab(ylab) +
      scale_color_commodity() +
      theme(legend.position = "bottom", legend.title = element_blank())
  }
}

Pétrole brut WTI vs Pétrole Brent

1er septembre 2026-

Code
energy_price_chart(c("Pétrole brut WTI", "Pétrole Brent"), ylab = "$ / baril")

7 derniers jours

Code
energy_price_chart(c("Pétrole brut WTI", "Pétrole Brent"),
                    from = last_day - 6, ylab = "$ / baril")

Essence RBOB vs Fioul

1er septembre 2026-

Code
energy_price_chart(c("Essence RBOB", "Fioul"), ylab = "$ / gallon")

7 derniers jours

Code
energy_price_chart(c("Essence RBOB", "Fioul"),
                    from = last_day - 6, ylab = "$ / gallon")

Historique

energy_futures.parquet est un instantané quotidien cumulatif : il ne remonte qu’au 1ᵉʳ septembre 2026. Les contrats génériques (toutes échéances confondues) correspondants existent en revanche depuis des décennies dans commodities.parquet (historique complet via l’API investing.com, voir commodity_futures.qmd) : WTI depuis 1983, Brent depuis 1988, gaz naturel depuis 1990, fioul depuis 1979, essence RBOB depuis 2005, gasoil de Londres depuis 2007, quotas carbone depuis 2008, TTF néerlandais depuis 2017.

Code
hist_price_chart <- function(sel, from = NULL, ylab = "Prix", log = FALSE) {
  d <- commodities |> filter(commodity %in% sel)
  if (!is.null(from)) d <- d |> filter(Date >= as.Date(from))

  g <- d |>
    ggplot() + geom_line(aes(x = Date, y = Close, color = commodity)) +
    theme_minimal() + xlab("") + ylab(ylab) +
    scale_x_date(date_labels = "%Y") +
    scale_color_commodity() +
    theme(legend.position = "bottom", legend.title = element_blank())
  if (log) g <- g + scale_y_log10()
  g
}

Pétrole brut WTI vs Brent

Depuis 1988

Code
hist_price_chart(c("Crude Oil WTI", "Brent Oil"), ylab = "$ / baril", log = TRUE)

Depuis 2010

Code
hist_price_chart(c("Crude Oil WTI", "Brent Oil"), from = "2010-01-01",
                  ylab = "$ / baril")

Essence RBOB vs Fioul (Heating Oil)

Depuis 2005

Code
hist_price_chart(c("Gasoline RBOB", "Heating Oil"), ylab = "$ / gallon")

Depuis 2015

Code
hist_price_chart(c("Gasoline RBOB", "Heating Oil"), from = "2015-01-01",
                  ylab = "$ / gallon")

Gaz naturel (Henry Hub)

Depuis 1990

Code
hist_price_chart("Natural Gas", ylab = "$ / MMBtu", log = TRUE)

Depuis 2010

Code
hist_price_chart("Natural Gas", from = "2010-01-01", ylab = "$ / MMBtu")

Gaz naturel : Henry Hub (US) vs TTF (Europe)

Depuis 2017

Code
hist_price_chart(c("Natural Gas", "Dutch TTF Natural Gas"),
                  from = "2017-10-23", ylab = "$ ou € / MMBtu-MWh")

Henry Hub en $/MMBtu, TTF en €/MWh : échelles non directement comparables (unités et devises différentes), mais utile pour visualiser le découplage des prix du gaz US et européen depuis la crise énergétique de 2021-2022.

Gasoil de Londres

Depuis 2007

Code
hist_price_chart("London Gas Oil", ylab = "$ / tonne")

Quotas carbone (EU ETS)

Depuis 2008

Code
hist_price_chart("Carbon Emissions", ylab = "€ / tonne")

Évolution (base 100)

Code
sel <- c("Pétrole brut WTI", "Pétrole Brent", "Gaz naturel",
         "Dutch TTF Natural Gas", "Fioul", "Essence RBOB")
d <- energy_futures |> filter(name %in% sel)

if (n_distinct(d$scraped_date) < 2) {
  knitr::asis_output(paste0(
    "_Série trop courte (", n_distinct(d$scraped_date),
    " relevé) — le graphique se remplira au fil des instantanés quotidiens._"))
} else {
  d |>
    group_by(name) |>
    arrange(scraped_date) |>
    mutate(idx = 100 * last / first(last)) |>
    ggplot() + geom_line(aes(x = scraped_date, y = idx, color = name)) +
    theme_minimal() + xlab("") + ylab("Base 100") +
    scale_color_commodity() +
    theme(legend.position = "bottom", legend.title = element_blank())
}