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 that you have read and understand our privacy policy and code of conduct.