futures_price_simulate {NFCP} | R Documentation |
Simulate futures prices of an N-factor model through Monte Carlo simulation
Description
Simulate Futures price data with dynamics that follow the parameters of an N-factor model through Monte Carlo simulation.
Usage
futures_price_simulate(
x_0,
parameters,
dt,
N_obs,
futures_TTM,
ME_TTM = NULL,
verbose = TRUE
)
Arguments
x_0 |
|
parameters |
|
dt |
|
N_obs |
|
futures_TTM |
|
ME_TTM |
|
verbose |
|
Details
The futures_price_simulate
function simulates futures price data using the Kalman filter algorithm, drawing from a normal
distribution for the shocks in the transition and measurement equations at each discrete time step. At each discrete time point,
an observation of the state vector is generated through the transition equation, drawing from a normal distribution with a covariance equal to \(Q_t\).
Following this, simulated futures prices are generated through the measurement equation, drawing from a normal distribution with covariance matrix equal to \(H\).
Input futures_TTM
can be either a matrix specifying the constant time to maturity of futures contracts to simulate, or it can be a matrix where nrow(futures_TTM) == N_obs
for the time-varying time to maturity of the futures contracts to simulate. This allows for the simulation of both aggregate stitched data and individual futures contracts.
Value
futures_price_simulate
returns a list with three objects when verbose = T
and a matrix of simulated futures prices when verbose = F
. The list objects returned are:
#'
state_vector | A matrix of Simulated state variables at each discrete time point. The columns represent each factor of the N-factor model and the rows represent
the simulated values at each discrete simulated time point. |
futures_prices | A matrix of Simulated futures prices, with each column representing a simulated futures contract. |
spot_prices | A vector of simulated spot prices |
References
Schwartz, E. S., and J. E. Smith, (2000). Short-Term Variations and Long-Term Dynamics in Commodity Prices. Manage. Sci., 46, 893-911.
Cortazar, G., and L. Naranjo, (2006). An N-factor Gaussian model of oil futures prices. Journal of Futures Markets: Futures, Options, and Other Derivative Products, 26(3), 243-268.
Examples
# Example 1 - Simulate Crude Oil with constant time-to-maturity:
simulated_futures <- futures_price_simulate(x_0 = c(log(SS_oil$spot[1,1]), 0),
parameters = SS_oil$two_factor,
dt = SS_oil$dt,
N_obs = nrow(SS_oil$stitched_futures),
futures_TTM = SS_oil$stitched_TTM)
##Simulate Crude Oil Contracts with a rolling-window of measurement error:
simulated_futures_prices <- futures_price_simulate(x_0 = c(log(SS_oil$spot[1,1]), 0),
parameters = SS_oil$two_factor,
dt = SS_oil$dt,
N_obs = nrow(SS_oil$contracts),
futures_TTM = SS_oil$contract_maturities,
ME_TTM = c(1/4, 1/2, 1, 2, 5))