Why Futures Prices Are Not Direct Spot Forecasts
Summary
The document evaluates a simple proposal to use the price of a crude oil futures contract as a forecast of spot price at that contract’s maturity. Its central caution is that, for storable commodities, futures prices reflect current spot prices and carrying costs; they are not automatically unbiased predictions of future spot. Storage costs, financing, and convenience yield affect the relationship, so comparing a futures quote directly with a later spot observation does not by itself establish forecasting skill.
The answers outline more structured alternatives. One is to calibrate a commodity pricing model to futures prices. Another is to model the relationship between futures and spot with an error-correction framework, using the long-run connection implied by the pricing relation and short-run changes in both series. Model choices could be compared using information criteria or cross-validation, and evaluation should consider alternative targets such as price levels or returns. These are proposals rather than reported test results. Their usefulness depends on assumptions such as a shared long-run trend, and the document provides no empirical finding that any approach beats a baseline.
Key ideas
- A futures quote incorporates spot and carrying costs, so it is not automatically a forecast of future spot.
- Commodity pricing relationships depend on factors such as financing, storage, and convenience yield.
- An error-correction model can represent short-run changes around a hypothesized long-run futures-spot relationship.
- Forecast evaluation should compare modeling choices and account for assumptions about the long-run relationship.
Tags
Full text
# Use futures contracts of different lengths to predict spot prices
# Use futures contracts of different lengths to predict spot prices
So I am trying to see how future contracts prices with different time to maturity are able to predict the actual spot price of crude oil at the time of maturity for the contracts. I have the simple equation of:
$\hat S_{t+h} = F_{t,h}$
Hence, the predicted future spot price at e.g. h=2 (months), is equal to the observed futures contract's price at time t with maturity in h months.
The concept is quite straight forward and would allow for predictions h months in the future by looking at the corresponding futures contract of this maturity. I have obtained futures contracts prices (continuos futures to be exact) for varying maturities from: Quandl
So, my question is, is this the appropriate way to do such an evaluation based on this simple equation. In practice, what I would do from here, is to look at the futures contracts prices with maturities of say: (1-12months i.e. CL1-CL12) at a specific year and month, then set these as my predicted future spot prices in the next 12 months from the year and month they were observed. Finally evaluate these vs the actual spot prices observed for the next 12 months.
Thanks for any clarifications, as this has confused me a lot..
## Answer by gte (score 1)
https://quant.stackexchange.com/a/66525
As already mentioned, in storable commodities "futures prices are not predictions about future spot prices. They simply reflect the current spot price and the cost of carry". However, one thing you can do is use Futures prices to calibrate a pricing model. Schwartz (1997) is a good example of this:
https://static.twentyoverten.com/593e8a9e7299b471eaecf644/H1tGPLaXM/The-Stochastic-Behavior-of-Commodity-Prices-Implications-for-Valuation-and-Hedging.pdf
Here you can also see explicitly the code to calibrate and run your own model:
https://gtezio.medium.com/commodity-pricing-how-do-you-actually-do-it-fac34a0b7e08
## Answer by Stéphane (score 0)
https://quant.stackexchange.com/a/51833
Let's start from theory. A futures is a standardized forward. In principle, its price should be \begin{align} F_{0,T} &:= \exp(r_{n0} T) E_0^Q(S_T) = \exp(r_{n0} T) S_0 \\ r_{n0} &:= \text{risk-free rate} + \text{storage cost} - \text{dividend yield} - \text{convenience yield} \end{align} where $Q$ is the risk-neutral measure and $(S_t)_{t \geq 0}$ is the price process of your asset. That equation follows from the absence of arbitrage.
One thing you could assume is that the equation does not hold exactly and the gap in $h \geq 1$ is predictable and depends on prior gaps. For example, you could write an error correction model for the rate of return on stocks: after all, if you take logarithms above and add a distrubtance term, the log forward price and log stock prices should be cointegrated, in fact with a cointegration vector of (1,-1). \begin{align} lnS_{t+1} - lnS_t = \phi_0 + \beta(lnF_{t,1} - lnS_t) + \sum_{i=1}^{p_s} \phi_{si} (lnS_{t-i} - lnS_{t-1-i}) + \sum_{i=1}^{p_f} \phi_{fi} (ln F_{t-i,1} - ln F_{t-1-i,1}) + \epsilon_{t+1}. \end{align} This can be estimated by ordinary least square and you can easily choosen the hyperparameters $(p_s,p_f)$ by using an information criteria like the BIC or by cross-validation. Even if you deal with time series, K-fold would be asymptotically valid (Bergmeir, Hyndman and Koo, 2015) and, in practice, it accounting for the time dependency in the the CV doesn't really matter either (Goulet-Coulombe, Leroux, Stevanovic and Surprenant, 2020), although I don't see the point of using that kind of slow method when you work with a linear parametric model -- the BIC should work just fine.
The above model essentially says that the arbitrage restriction holds, but only in the long run. It's not super-sophisticated and, yes, you could use the same regressors in non-linear models such as support vector regressions, kernel ridge regressions or neural networks to try to improve performance. Personally, I'd go for KRR, perhaps with a 2nd or 3rd degree polynomial kernel: it's going to prevent you from choosing the relevant regressors, it's going to allow plenty of nonlinearity and it's simple enough to code.
Note that the model I proposed imposes a restriction. It is assuming that whatever is making the prices of both futures and stock prices grow over the long run is the same (stochastic) trend. It might not hold true. One thing you could do is to compare (i) working directly with prices, (ii) exploiting the possible cointegration between futures and prices for the underlying and (iii) predict logarithmic growth rates and use them to recover prices using the current levels of prices.
This way, you get to penalize everything in the same manner and you get to see whether it's worth imposing some of those restrictions or not. Moreover, the loss you compute is an estimate of conditional expectations in all cases and that should be fine -- as long as the forecast horizon doesn't become absurdly long versus the sample frequency, the error on that expectation should be covariance stationnary (although, serially correlated if you do multiple step forecasting because you'll have overlapping errors).Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.