I have daily closing prices of crude oil monthly contracts up to 36 months. Some contracts are not very liquid so there are missing prices at random. I stitched together contracts to make them rolling so I have 36 'features' from M1 (month ahead) to M36 (36th contact to expiry).

I am looking to forecast the whole forward curve by interpolating and extrapolating but only at the current time step. In other words, I would like to train a Gaussian Process regression model and given any available current prices (lets say I have prices for only some contracts such as 1 to 12, 15, 20, 28), I want to generate the whole forward curve by interpolating any missing prices and extrapolating to month 36. I am not looking to forecast in the future.

My question is:

  • I am not sure how to prepare this dataset for training. If I have a dataframe with daily time-series index and 36 price columns for each contract, then I am dealing with a 36 variable problem which is not what I want to do. My x-axis should not be time dimension but contract to expiry (1 to 36), and my y-axis should be the prices. Any advice?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.