Learn R Programming

Overview

RTL is a purposely designed for traders, analysts and risk practitioners in Commodities and Finance. It also supports delivery of Finance classes from one of the creator also in Academics at the Alberta School of Business.

Send feedback to pcote@ualberta.ca. We welcome feedback, suggestions and collaboration.

Energy Markets Reference Data

  • expiry_table: NYMEX and ICE contracts expiry tables.
  • holidaysOil: Holiday calendars for NYMEX and ICE.
  • tradeCycle: US and Canadian crude oil trading calendars.
  • tickers_eia: Mapping of EIA tickers to crude and refined products markets for building supply demand balances.
  • eiaStorageCap: Historical EIA crude storage capacity by PADD.
  • eiaStocks: Sample data set of EIA.gov stocks for key commodities.

Swap Pricing and Contract Roll Adjustement

  • rolladjust() adjusts continuous contracts returns for roll adjustments using expiry_table.
  • swapCOM() computes Calendar Month Average commodity swap prices.
  • swapInfo() returns all information required to price first line futures contract averaging swap or CMA physical trade, including a current month instrument with prior settlements.
  • swapIRS() computes IRS swap prices.

Charting

  • chart_fwd_curves(): plots historical forward curves, a useful feature to understand the pricing dynamics of a market.
  • chart_zscore() supports seasonality adjusted analysis of residuals, particularly useful when dealing with commodity stocks and/or days demand time series with trends as well as non-constant variance across seasonal periods.
  • chart_eia_steo() and chart_eia_sd() return either a chart or dataframe of supply demand balances from the EIA.
  • chart_spreads() to generate specific contract spreads across years e.g. ULSD March/April. Requires Morninstar credentials.

APIs

Valid credentials for commercial API services are required.

Genscape

Genscape API functions:

  • getGenscapeStorageOil().
  • getGenscapePipeOil().

Morningstar Commodities

Morningstar Marketplace API functions:

  • getPrice(), getPrices() and getCurve() using your own Morningstar credentials. Current feeds included:

    • ICE_EuroFutures and ICE_EuroFutures_continuous.
    • CME_NymexFutures_EOD and CME_NymexFutures_EOD_continuous.
    • CME_NymexOptions_EOD.
    • CME_CbotFuturesEOD and CME_CbotFuturesEOD_continuous.
    • CME_Comex_FuturesSettlement_EOD and CME_Comex_FuturesSettlement_EOD_continuous.
    • LME_AskBidPrices_Delayed.
    • CME_CmeFutures_EOD and CME_CmeFutures_EOD_continuous.
    • CME_STLCPC_Futures.
    • ICE_NybotCoffeeSugarCocoaFutures and ICE_NybotCoffeeSugarCocoaFutures_continuous.
    • Morningstar_FX_Forwards.
    • … see ?getPrice for up to date selection and examples.

GIS Dataset

EIA

  • crudepipelines <- getGIS(url = "https://www.eia.gov/maps/map_data/CrudeOil_Pipelines_US_EIA.zip")
  • refineries <- getGIS(url = "https://www.eia.gov/maps/map_data/Petroleum_Refineries_US_EIA.zip")
  • productspipelines <- getGIS(url = "https://www.eia.gov/maps/map_data/PetroleumProduct_Pipelines_US_EIA.zip")
  • productsterminals <- getGIS(url = "https://www.eia.gov/maps/map_data/PetroleumProduct_Terminals_US_EIA.zip")
  • ngpipelines <- getGIS(url = "https://www.eia.gov/maps/map_data/NaturalGas_InterIntrastate_Pipelines_US_EIA.zip")
  • ngstorage <- getGIS(url = "https://www.eia.gov/maps/map_data/PetroleumProduct_Terminals_US_EIA.zip")
  • nghubs <- getGIS(url = "https://www.eia.gov/maps/map_data/NaturalGas_TradingHubs_US_EIA.zip")
  • lngterminals <- getGIS(url = "https://www.eia.gov/maps/map_data/Lng_ImportExportTerminals_US_EIA.zip")
  • tradeHubs has North Americas crude oil trading hubs (WIP).

Alberta Oil Sands, Petroleum and Natural Gas

  • AB <- getGIS(url = "https://gis.energy.gov.ab.ca/GeoviewData/OS_Agreements_Shape.zip")

Interest Rates

  • usSwapIR: Sample data set output of getIRswapCurve.
  • usSwapCurves: Sample data set output of RQuantlib::DiscountCurve().

Python

A python version of RTL for most functions is available at https://pypi.org/project/risktools/.

Installation

Latest Package devtools::install_github("risktoollib/RTL")

CRAN Stable install.packages("RTL")

Copy Link

Version

Install

install.packages('RTL')

Monthly Downloads

536

Version

1.3.7

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Philippe Cote

Last Published

February 26th, 2025

Functions in RTL (1.3.7)

chart_eia_steo

EIA Short Term Energy Outlook
chart_fwd_curves

Plots historical forward curves
efficientFrontier

Markowitz Efficient Frontier
eia2tidy

EIA API call with tidy output
chart_zscore

Z-Score applied to seasonal data divergence
chart_eia_sd

EIA weekly supply-demand information by product group
crudeOil

dataset: crude assays
eiaStorageCap

dataset: EIA working storage capacity
fizdiffs

dataset: randomised physical crude differentials
cushing

dataset: WTI Cushing Futures and storage utilization
cma

metadata for WTI CMA
expiry_table

dataset: expiry of common commodity futures contract.
simOUJ

OUJ process simulation
futuresRef

dataset: futures contracts metadata
eurodollar

dataset: Eurodollar futures contracts
getBoC

Bank of Canada Valet API
CRROption

Cox-Ross-Rubinstein Option Pricing Model
fitOU

Fits a Ornstein–Uhlenbeck process to a dataset
CRReuro

Cox-Ross-Rubinstein binomial option model
chart_spreads

Futures contract spreads comparison across years
chart_pairs

Pairwise scatter plots for timeseries
getCurve

Morningstar Commodities API forward curves
rolladjust

Adjusts daily returns for futures contracts roll
getPrices

Morningstar Commodities API multiple calls
fxfwd

dataset: USDCAD FX forward rates
simOUt

OU process simulation
holidaysOil

dataset: NYMEX and ICE holiday calendars
spreadOption

Kirk's Approximation for Spread Option Pricing
simGBM

GBM process simulation
returns

Compute absolute, relative or log returns.
steo

dataset: EIA Short Term Energy Outlook
swapFutWeight

Commodity Calendar Month Average Swap futures weights
eia2tidy_all

EIA API multiple calls with tidy output
garch

Wrapper for a Garch(1,1) returning either a plot or data.
getGenscapeStorageOil

Genscape API call for oil storage
refineryLPdata

dataset: refinery LP model sample inputs and outputs
getPrice

Morningstar Commodities API single call
simOU

OU process simulation
simMultivariates

Multivariate normal from historical dataset
swapIRS

Interest Rate Swap
tradeprocess

dataset: data for teaching the various ways to monetize a market call.
tradeStrategySMA

Sample quantitative trading strategy
tradeStats

Risk-reward statistics for quant trading
tradeStrategyDY

Sample quantitative trading strategy
npv

NPV
eiaStocks

dataset: EIA weekly stocks
refineryLP

LP model for refinery optimization
promptBeta

Computes betas of futures contracts with respect to the 1st line contract
swapInfo

Commodity Swap details to learn their pricing
tickers_eia

datasest: metadata of key EIA tickers grouped by products.
ohlc

dataset: randomiser to convert settlement into OHLC
getGIS

Extract and convert GIS data from a URL
getGenscapePipeOil

Genscape API call for oil pipelines
usSwapCurves

dataset: US bootstrapped interest rate curve.
tsQuotes

dataset: interest rate curve data for RQuantlib .
usSwapCurvesPar

dataset: US bootstrapped interest rate curve parallel sample.
%>%

Pipe operator
wtiSwap

dataset: WTI Calendar Month Average Swap pricing data
spot2futConvergence

dataset: spot to futures convergence
swapCOM

Commodity Calendar Month Average Swaps
stocks

dataset: Yahoo Finance data sets
planets

dataset: IR compounding
tradeHubs

dataset: GIS locations for crude oil trading hubs
tradeCycle

dataset: Canadian and US physical crude trading calendars
spot2futCurve

dataset: spot to futures convergence curve
GBSOption

Generalized Black-Scholes (GBS) Option Pricing Model
RTL-package

RTL: Risk Tool Library - Trading, Risk, Analytics for Commodities
barrierSpreadOption

Barrier Spread Option Pricing
bond

Bond pricing
dflong

dataset: commodity prices in a long dataframe format
chart_PerfSummary

Cumulative performance and drawdown summary.
dfwide

dataset: commodity prices in a wide dataframe format