Kronos-small, retrained on EGX candles
A fine-tune of NeoQuasar/Kronos-small
(revision 901c26c1) on daily candles from the Egyptian Exchange, made for one
narrow purpose: to remove a defect in how the original forecasts this market.
This model is published so that the forecasts made with it can be checked. It is not published as an improvement. What it has been shown to do and what it has not are both below, in that order, and the second list is the longer one.
Licence and attribution
MIT, inherited from the base model and from the
Kronos code it was trained with —
MIT License, Copyright (c) 2025 ShiYu. The tokeniser is upstream's
NeoQuasar/Kronos-Tokenizer-base at revision 0e011738, unmodified: it was
frozen throughout training, so this model and the original read a candle into
exactly the same tokens.
What it fixes, and the evidence
Kronos-small's forecasts on the EGX were mostly a pull back to the average price of the 90 candles it was shown. Measured: its 20-session forecasts correlated 0.94–0.97 with the move back to each company's 90-session average on every night from 13 to 16 September 2026, and on invented prices a steady rise from 100 to 130 drew a 16% fall.
The likely cause was scaling. Upstream's CSV fine-tuning script normalises each training window by that window's own mean and standard deviation — future included — so the model learns that a rise must come back. This fine-tune scales every window by its 90 past candles only, the same scaling used when forecasting, so nothing in training rewards a return to the average.
It worked, and it is the one result here that is large and unambiguous. On months the model had never seen, the correlation between its 20-session forecast and the move back to the window average falls from +0.98 to −0.13. The original was above +0.95 at essentially every origin tested; this model is inside ±0.5 at all of them.
What it has NOT been shown to do
It has not been shown to forecast better. Two preregistered readings, both written before any of their months were read:
- Reading 1 (72 origins, Jan 2025 – Jun 2026) failed. Rank IC at 20 sessions came in 0.000636 below the original's. It was not retuned against those months.
- Reading 2 (34 origins, Jun – Aug 2026) passed, on a margin of 0.00064 over the best rival at one session — the same size as the gap that failed reading 1. Paired on the same origins it is a tie with everything: t +0.21 against the original, t +0.02 against a 90-session mean-reversion baseline.
The one-session edge that motivated reading 2 — +0.0258, t +2.77 in reading 1 — came in at +0.0029, t +0.21 in reading 2. That is a failure to confirm.
On reading 2's months it is significantly worse at 20 sessions than the original (−0.037, t −2.19) and significantly better at 5 (+0.053, t +2.58). Neither was claimed and neither should be read as a finding.
A three-line baseline is hard to beat here. Ranking companies by how far the last close sits below the mean of its 90 candles scored +0.1124 at 20 sessions on validation, against +0.1047 for the original Kronos-small and +0.0541 for this model. Much of what the original scored at that horizon was bought by the defect this fine-tune removes.
Training
- 258 EGX companies, 896,608 candles, split-adjusted daily, cut into 500 clean segments. Train through 2023; validation 2024; test 2025 onward, with a 20-session gap between splits.
- 90 candles in, 20 out — exactly how it is asked to forecast.
- Upstream's loss and Qlib settings: AdamW 4e-5, betas 0.9/0.95, weight decay 0.1, batch 50, 2,000 iterations an epoch, gradients clipped at 3.
- Ten epochs on one RTX 3060. This checkpoint is epoch 10, the last one — not the best of the ten, so nothing in it was selected by looking.
- Survivorship: only companies listed at the snapshot date could be fetched, so failed companies are missing and absolute returns look kinder than the market was.
Intended use, and what it must not be used for
Research on time-series forecasting for a thin, frontier market. It is one entrant in a public forecasting record where every model is scored against cheap baselines on the same companies and the same days.
It is not investment advice, and its output is not a prediction of any company's price. It has no view on any issuer's business. Do not present its forecasts as expectations, targets or recommendations.
Full method, both readings and every number: docs/kronos-retraining-plan.md
in elbarbary/The_barbarian_project.