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 Oct 2026 75.2700 75.3050 73.8900 3.2600 4.53 24/09
E-mini Crude Oil Nov 2026 93.0300 94.0500 92.7500 -1.5800 -1.66 06:09:17
Emissions de carbone Déc 2026 86.9600 87.0000 85.6300 0.9500 1.10 24/09
Essence RBOB Oct 2026 3.4858 3.5501 3.4767 -0.0788 -2.21 06:37:21
Fioul Oct 2026 4.6679 4.7747 4.6425 -0.1249 -2.61 06:38:07
Gasoil Londres Oct 2026 1429.8800 1445.7500 1416.3800 -22.2500 -1.53 06:37:17
Gaz naturel Oct 2026 3.1990 3.1990 3.1440 -0.0280 -0.87 06:37:50
Malaysian Crude Palm Oil c2 1180.2500 1180.2500 1180.2500 -15.0000 -1.25 23/09
Micro Henry Hub Natural Gas c2 Nov 2026 3.2820 3.2830 3.2490 -0.0880 -2.61 06:09:56
Micro WTI Crude Oil Nov 2026 93.0700 94.0700 92.7100 -1.5400 -1.63 06:09:56
Pétrole Brent Nov 2026 105.6300 107.1700 105.3600 -0.9700 -0.91 06:36:33
Pétrole brut WTI Nov 2026 93.1100 94.7300 92.7400 -1.5000 -1.59 06:38:04

Source : investing.com, instantané du 25 septembre 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())
}