# Forecasting Financial Markets with Timestral

> Source: <https://philippdubach.com/posts/forecasting-financial-markets-with-timestral/>
> Published: 2026-10-23 06:00:00+00:00

[Timestral](https://mistral.ai/news/timestral/) is Mistral’s new family of models for forecasting time series. Give it a sequence of numbers, such as daily sales or electricity demand, and it predicts what comes next. It also produces a range of possible values, so we can ask how uncertain the forecast is.

The family runs from 5 million to 209 million parameters and supports multiple related series and extra inputs. We were interested in the 28-million-parameter version: small enough to run locally, and already trained across other time series before we gave it our market data.

We tested Timestral on daily stock returns, trading volume and a measure of volatility, then fine-tuned the model on older market data. The whole experiment ran on a 16 GB M2 MacBook Air, without a GPU.

Volume gave us the clearest result. In our [2026 research note](https://static.philippdubach.com/timestral-research-note-f28d5782e41e.pdf), the original Timestral-28M reduced fifth-session stock log-volume error by 4.70% against a conditional regression. Fine-tuning moved that to 4.94%, but the direct comparison gave us little reason to prefer the adapted model. Returns were much less encouraging.

The six charts below expand the single figure in that three-page note.

We downloaded daily market data from Yahoo from 2010 onward. The main panel contained fourteen U.S. stocks, including Apple, Microsoft, JPMorgan, Exxon and Coca-Cola, plus three equity funds: SPY, QQQ and IWM. We kept three other funds out of fine-tuning and model selection to test transfer later.

At each forecast date, the model received the preceding 512 completed daily observations. We scored its prediction for the next trading session and for the fifth session ahead.

A fifth-session return means the daily return on that future day, rather than the cumulative return over the next five days.

| Target | What we measured | Simple forecasts to beat | 
|---|---|---|
| Returns | Daily log return from adjusted closing prices | Zero, past mean and past median | 
| Volume | Log of one plus daily trading volume | Last observed volume, a rolling median and a regression | 
| Range volatility | A log-transformed measure based on the day’s high and low | A regression using recent daily, weekly and monthly ranges | 

We used logarithms for volume because trading activity can vary enormously across companies and dates. They also stop the largest volume spikes from dominating the error calculation. For each asset, we compared the model’s average absolute error with the baseline’s, then gave every asset equal weight.

A 4.70% improvement here means a reduction in that log-volume error measure. It does not mean a 4.70% investment return, or even a 4.70% reduction in error measured in shares.

The volatility target uses the [Parkinson high–low range estimator](https://doi.org/10.1086/296071). It captures how far prices moved within the daily range. It leaves out overnight jumps and is different from volatility calculated from intraday returns.

We began by running the original model without further training, usually called zero-shot forecasting. Then we asked whether adapting it to recent financial history would help.

For each test year, training used five older years of labels. The following year was reserved for choosing among saved model versions, called checkpoints. Only after that did we score the forecasts on the test year.

| Test period | Training labels | Checkpoint selection | 
|---|---|---|
| 2023 | 2017–2021 | 2022 | 
| 2024 | 2018–2022 | 2023 | 
| 2025 | 2019–2023 | 2024 | 
| 2026 | 2020–2024 | 2025 | 

We tested 150 forecast dates across 2023–2025, spaced five trading sessions apart. A separate 2026 snapshot gave us forty dates from 2 January to 13 October. The final fifth-session outcome fell on 20 October.

Each training run started again from the same original weights. We updated all 27.8 million parameters for 500 steps and compared checkpoints at steps 0, 100, 250 and 500 using the earlier validation year. The original model at step zero was allowed to win. It did so in three of the 27 historical selections.

We repeated this for three targets, four test years and three training-order seeds, giving 36 runs. For each target and year, we combined the three selected forecasts by taking their median at each predicted probability level. The seeds changed the order of training examples; they did not give us three new market histories.

Every fourth update trained on groups of related series, although the forecasts reported here used one series at a time. We kept one training recipe rather than searching many settings until something looked good.

The uncertainty bars in the charts come from resampling blocks of forecast dates, keeping assets together on each date. They are descriptive 95% intervals from 1,000 resamples. They do not repeat training or adjust for the many comparisons. They help show how stable a result is across the saved dates; a bar crossing zero includes both an improvement and a deterioration.

Across fourteen stocks in our retrospective 2026 evaluation, the original Timestral-28M reduced fifth-session log-volume error by 4.70% against a conditional regression. The descriptive 95% interval ran from 2.08% to 6.98%.

The fine-tuned Timestral-28M ensemble reduced the same error by 4.94%, with an interval from 2.76% to 7.11%. The two estimates were close enough that the chart nearly puts them on top of each other.

Fine-tuning had helped more in the historical sample. For the next session, the adapted model reduced error by 1.08% against the original, with an interval from 0.49% to 1.69%. That gain did not clearly carry into 2026.

Before building a training pipeline, we would first check how far the downloaded weights get us.

Using yesterday’s volume as tomorrow’s forecast is cheap, but it is not the only cheap forecast available.

Our conditional regression used the last log-volume observation, trailing five- and 22-session averages, and a known five-session lag where it added distinct information. It fitted only completed historical pairs inside the same 512-observation window. We added the median past fitted residual to its point forecast.

In our [2026 stock-volume comparison](https://philippdubach.com/posts/forecasting-financial-markets-with-timestral/figures/provenance.json), the original Timestral-28M reduced fifth-session log-volume error by 18.58% against the last observed volume. The reduction was 4.70% against conditional regression. Against the past 20-session median, it was 3.20%, with an interval that crossed zero.

An 18% improvement sounds much more impressive than 5%. Both came from the same forecasts. The difference was what we asked the model to beat.

We added the regression after seeing the early historical volume results, then froze its specification before looking at the adapted-volume and 2026 scores. The older comparisons helped develop the experiment. The reserved period gave us a separate local check of those choices.

Timestral beat our regression on this stock-volume comparison. We did not establish that it beats every simple volume rule.

A model can beat a regression while learning almost nothing useful from our additional training. To separate those questions, we compared each task-adapted model directly with the original checkpoint.

In our [2026 evaluation](https://static.philippdubach.com/timestral-research-note-f28d5782e41e.pdf#page=2), all twelve error comparisons between fine-tuned Timestral-28M and the original model had 95% intervals spanning zero. They covered three tasks, two forecast offsets, and the stock and equity-fund panels.

For fifth-session stock volume, the direct improvement was 0.14%, with an interval from a 1.15% deterioration to a 1.48% improvement. We would use that comparison to decide whether to maintain fine-tuned weights.

Subtracting the two headline regression scores would give a different number. Each score first divides an asset’s error by its comparator’s error. Changing the comparator changes that denominator, so the direct comparison must be calculated separately.

All nine 2026 checkpoint selections preferred a trained candidate on the earlier validation data. That preference still did not produce a clear improvement on the later test. Validation selected what looked best in 2025; it could not guarantee that the advantage would last.

We would therefore start a follow-up with the original 28M model. Fine-tuning would need to earn its place through a repeatable gain large enough to matter for the intended use.

Daily returns were harder to improve. Across the study, we found no consistent advantage over simple return forecasts. In the 2026 stock panel, the adapted fifth-session forecast was 0.38% worse than the past median.

A pretrained model can pick up useful regularities without turning daily price moves into an easy prediction problem. Other [financial evaluations of time-series foundation models](https://arxiv.org/abs/2606.27100) have also found that favourable model rankings can coexist with small and scattered gains over a random walk.

Range volatility was more mixed. The adapted stock forecast beat our HAR-style regression by 2.26% at the fifth-session offset in 2026. The original model already had approximately the same point estimate. For the three equity funds, the adapted model was 5.08% worse than that regression.

The [HAR approach](https://doi.org/10.1093/jjfinec/nbp001) combines information over daily, weekly and monthly periods. Our version applied that idea to the daily range proxy. It outperformed the adapted model on the equity-fund range forecasts in 2026.

We did not convert these forecasts into a trading strategy. There were no simulated fills, transaction costs or profit estimates. Better volume forecasts might eventually help plan execution or allocate capacity, but those uses need their own test.

Timestral predicts quantiles as well as a central forecast. That lets us check whether its uncertainty ranges contain outcomes as often as advertised.

A nominal 90% interval should contain roughly nine out of ten observations. In our [2026 stock-return sample](https://philippdubach.com/posts/forecasting-financial-markets-with-timestral/figures/provenance.json), the fine-tuned Timestral-28M’s nominal 90% intervals contained 83.75% of next-session outcomes and 84.11% of fifth-session outcomes. The original model covered 85.18% and 84.82% respectively.

The 50% and 80% intervals also fell below their nominal coverage. A forecast can have a reasonable central estimate while understating how often an unusual outcome will occur.

We would check and recalibrate these intervals before using them to set risk limits. They describe individual future observations, too. Adding daily quantiles together does not produce a valid uncertainty band for the cumulative price path.

We kept TLT, GLD and USO out of adaptation and checkpoint selection. They gave us a way to ask whether a model adapted to equities would carry over to other exposures: a Treasury fund, a gold fund and an oil-futures fund.

For fifth-session volume in 2026, neither the original nor the adapted model clearly beat conditional regression on any of those funds. Their intervals all crossed zero. The same was true for the three equity ETFs.

Some individual estimates were positive. TLT’s original model showed a 4.75% improvement, but its interval ran from a 5.01% deterioration to a 15.03% improvement. That is a wide range for deciding whether to rely on a forecast.

USO also represents an oil-futures fund, not a direct forecast of spot crude. We would test oil-market forecasts separately before drawing conclusions about that market.

All 36 Timestral-28M fine-tuning runs used 101.6 minutes of CPU training and validation on a 16 GB M2 MacBook Air. We used two threads and 32-bit floating-point arithmetic.

The elapsed interval from the first training start to completion of the queued work was 118.1 minutes, including preparation, gaps and overlapping scoring. Initial setup, earlier experiments and final audits took additional time.

We had also tried the 123M model in the initial zero-shot benchmark. That run took 592.3 seconds, compared with 201.8 seconds for 28M, while giving comparable volume gains. Those timings belonged to that first benchmark, rather than a general inference-speed test. They gave us a practical reason to concentrate the adaptation study on 28M.

Related: [Finding the Performance–Cost–Speed Sweet Spot With LLMs](https://philippdubach.com/posts/llm-performance-cost-speed-sweet-spot/)

Keeping the experiment local made it easier to preserve the actual models and forecasts. The research archive includes the downloaded data, original weights, selected checkpoints, frozen protocols, dependencies and verification scripts. After moving it to its own repository, we replayed the chronology and scores with reads from the original workspace blocked.

The charts here read the preserved result tables. They do not refit the models or rerun statistical tests. Their [underlying rows and file hashes](https://philippdubach.com/posts/forecasting-financial-markets-with-timestral/figures/provenance.json) travel with the article.

We held the 2026 outcomes back from our local evaluation, but every forecast date preceded Timestral’s 15 October release. This was a retrospective test. We do not know which financial data the original model saw during pretraining, so our chronological fine-tuning split cannot establish a completely unseen test for the pretrained model. That problem is broader than this project, as [research on foundation-model evaluation](https://arxiv.org/abs/2510.13654) explains.

The panel is also a fixed selection of surviving stocks, using retrospectively adjusted data, with only forty reserved forecast dates.

For that next experiment, we would freeze the original 28M model, the volume comparators and the scoring rules before collecting post-release observations. We would then choose one concrete use for the volume forecasts and measure whether the error reduction improves that decision. The extra training can wait until it shows a reliable advantage over the model we can already download.
