Historical model tournament · #2 historical tournament

M2

NQ + overnight-RV state LAD
130.8232historical OOS MAE · index points

The mathematics

M2 extends M1 by allowing the value of the futures signal to depend on overnight realised volatility.

Five-minute futures returns are

\[ u_{t,j}=\ln\left(\frac{P_{t,j}}{P_{t,j-1}}\right). \]

Overnight realised volatility is constructed as

\[ RV_t=\sqrt{\sum_j u_{t,j}^2}. \]

The volatility state is centred using only the training sample:

\[ v_{c,t}=\log(RV_t)-\overline{\log(RV)}_{\mathcal T}. \]

M2 then estimates

\[ Q_{0.5}(r_t^{IXIC}\mid x_t,v_{c,t}) = \alpha+\beta_1x_t+\beta_2v_{c,t}+\beta_3x_tv_{c,t}. \]

The interaction means the effective response to futures is

\[ \frac{\partial Q_{0.5}(r_t^{IXIC})}{\partial x_t} = \beta_1+\beta_3v_{c,t}. \]

So the same futures move can imply a different forecast when the overnight market is unusually calm or unusually volatile.

Historical out-of-sample forecasts

Each point below is a rolling pseudo-real-time forecast from the historical model tournament. Each forecast was generated using only observations available before its forecast date.

Click to zoom · drag left/right to pan · pinch on trackpad or touchscreen · double-click to reset

Hover or tap the chart to inspect the forecast and actual Nasdaq Composite close. This is historical tournament performance, not a live Graham Says forecast.

Track the experiment as it happens

Every forecast below was frozen before the US cash market opened. Once the Nasdaq Composite closes, the same row is updated with the observed close and absolute forecast error. Historical tournament observations are not mixed into this prospective record.

Prospective record
Waiting for the first prospective forecast.
Date Forecast Actual close Absolute error Status
Waiting for the first prospective forecast.

Common tournament framework

All five models were evaluated on the same historical pseudo-real-time out-of-sample dates. The target variable was the Nasdaq Composite daily log return:

\[ r_t^{IXIC}=\ln\left(\frac{S_t}{S_{t-1}}\right). \]

The main pre-open futures signal was

\[ x_t=r^{NQ}_{t,\mathrm{pre}} =\ln\left(\frac{NQ_{t,09:15}}{NQ_{t-1,16:00}}\right). \]

For LAD models, the fitted conditional median return \(\widehat r_t\) was transformed back into a closing-level forecast using

\[ \widehat S_t=S_{t-1}\exp(\widehat r_t). \]
Loss functionAbsolute Nasdaq Composite closing index-point error
LAD quantile\(\tau=0.50\)
Minimum training sample504 observations
Maximum rolling window756 observations
Common OOS dates1,623
Selection ruleLowest full-OOS raw index-point MAE

How the tournament avoided look-ahead

For every historical test date, the target observation was excluded from estimation. Training began with 504 eligible observations, expanded until 756 observations were available, and then became a fixed-length 756-observation rolling window.

All five models were scored on the same common sample. The selection metric was mean absolute error:

\[ MAE_m=\frac{1}{T}\sum_{t=1}^{T}\left|S_t-\widehat S_{m,t}\right|. \]

Lower MAE is better.