Historical model tournament · #5 historical tournament

M0

Random walk
161.0664historical OOS MAE · index points

The mathematics

M0 is the random-walk benchmark. It simply carries the previous Nasdaq Composite close forward:

\[ \widehat S_t^{M0}=S_{t-1}. \]

Equivalently, it predicts a zero log return:

\[ \widehat r_t^{M0}=0. \]

Why include it?

Short-horizon financial prices are hard to forecast. A useful model should improve on the simplest possible rule: tomorrow looks like today.

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.