Kronos: Open-Source K-Line Foundation Model
Kronos is an open-source, decoder-only foundation model for financial K-line forecasting, pretrained on 45+ exchanges and accepted at AAAI 2026. Reach for it for quantitative research on OHLCV data needing a pretrained base to fine-tune, not build from scratch. Skip it if you need more than 512 bars of lookback, the closed Kronos-large checkpoint, or a production trading signal — this is a research release with sampled, probabilistic forecasts.
Generic Time-Series Models Miss Candlestick Noise
General-purpose time-series foundation models are tuned for comparatively smooth signals like traffic or weather; financial candlesticks are noisier, fat-tailed, and inherently multi-dimensional (open, high, low, close, and volume all moving together). Quant researchers who want a pretrained base for this kind of data have mostly had two options: fine-tune a model that was never trained on market noise, or train something from scratch on their own OHLCV history. Kronos exists to close that gap — a financial foundation model pretrained specifically on candlestick bars pulled from 45+ real exchanges, with the volatility of price data built into the training objective instead of bolted on afterward.
A Foundation Model Pretrained on 45+ Exchanges
Kronos (shiyu-coder/Kronos) is an open-source, decoder-only foundation model for K-line data rather than generic time series. A tokenizer quantizes OHLCV sequences into hierarchical discrete tokens, then a large autoregressive Transformer is pretrained on them like a language model on words. Billed as the first open-source foundation model for candlestick data, it's trained on 45+ exchanges, with an arXiv paper (2508.02739) accepted at AAAI 2026.
A Tokenizer for OHLCV, Then a Transformer
- ✓Two-stage design: a specialized tokenizer quantizes continuous OHLCV bars into hierarchical discrete tokens, then a decoder-only Transformer is pretrained on that token vocabulary
- ✓Four-size model zoo on Hugging Face: Kronos-mini (4.1M params, 2048-bar context), Kronos-small (24.7M params, 512-bar context), Kronos-base (102.3M params, 512-bar context) — all open; Kronos-large (499.2M params) is explicitly not open-sourced
- ✓Explicitly probabilistic forecasting via sampling controls (T for temperature, top_p for nucleus sampling, sample_count for how many forecast paths get averaged) instead of one deterministic point estimate
- ✓predict_batch() runs parallel forecasts across many series at once instead of looping predict() one ticker at a time
- ✓predict() takes a plain pandas DataFrame — open/high/low/close required, volume/amount optional — plus historical and future timestamp Series, no custom data pipeline needed
- ✓Fine-tuning scripts included in the repo, not left as an exercise for downstream users
- ✓Live BTC/USDT 24-hour-ahead forecasting demo to sanity-check the model before writing any code
An AAAI 2026 Paper, Not Just a README
34,112 stars and 5,749 forks is a lot for a niche quant-finance repo, and it's not just hype — there's a real paper behind it (accepted at AAAI 2026), a full model zoo on Hugging Face under the NeoQuasar org instead of weights dumped in a Google Drive link, and a public BTC/USDT demo anyone can check against reality. Fine-tuning scripts shipped within weeks of the arXiv post, which signals the authors expect people to adapt it rather than just cite it. In a moment where "pretrain a Transformer on tokenized X" projects are everywhere, Kronos is one of the few in the financial-forecasting space with a peer-reviewed paper and a reproducible demo attached instead of just README claims.
Fine-Tuning on Your Own Market Data
- •Generating probabilistic price-path forecasts for crypto or equity tickers as a feature or baseline inside a larger quant research pipeline
- •Fine-tuning the pretrained tokenizer-plus-transformer on proprietary or market-specific OHLCV history instead of training a forecasting model from scratch
- •Batch-scanning many tickers at once with predict_batch() for portfolio-level or cross-market research
- •Academic work citing a foundation-model approach to financial time series, given the AAAI 2026-accepted paper backing it
Loading Weights Straight From Hugging Face
pip install -r requirements.txt from the repo. Model weights load directly from Hugging Face by name via KronosTokenizer.from_pretrained(...) and Kronos.from_pretrained(...) — no separate manual download step or API key needed for the open tiers (mini, small, base). Kronos-large isn't available to install since it's not open-sourced.
Sampling Forecasts With predict() and predict_batch()
Instantiate KronosPredictor(model, tokenizer, max_context=512), then call predict() with a pandas DataFrame containing open/high/low/close columns (volume and amount are optional) plus historical and future timestamp Series. Forecasts are sampled rather than deterministic — T controls temperature, top_p does nucleus sampling, and sample_count sets how many sampled paths get averaged into the final output. To score many tickers at once instead of calling predict() in a loop, use predict_batch() for parallel multi-series forecasting. Note that KronosPredictor silently truncates any lookback longer than the model's max_context (512 for small/base), so it's worth checking your input length before you trust the output.
Purpose-Built for Market Noise
- ✓Purpose-built for OHLCV structure and market noise instead of a general time-series model retrofitted onto price data
- ✓Ships as a normal pip-installable package with Hugging Face weights, not a research-only checkout with a manual download script
- ✓Backed by a peer-reviewed paper accepted at AAAI 2026, not just README claims
- ✓Probabilistic sampling (T / top_p / sample_count) gives a distribution of forecast paths instead of one brittle point estimate
- ✓Fine-tuning scripts are already in the repo, so adapting it to your own market isn't left undocumented
512 Bars, and the Large Model Stays Closed
- △max_context caps at 512 bars for the small and base tiers — the ones with meaningful parameter counts — and KronosPredictor silently truncates any longer lookback, so multi-year daily history won't fit in a single pass
- △The largest checkpoint, Kronos-large (499.2M params), is explicitly withheld/closed, so the highest-capacity model isn't something you can self-host or fine-tune
- △Only Kronos-mini gets the 2048-bar context window, and it's the smallest model by far at 4.1M params — there's a real context-length-vs-capacity trade-off, not a free upgrade
- △No hosted API, pricing tier, or managed inference is documented anywhere — you run inference yourself, which at these parameter counts means budgeting your own GPU or CPU time
- △No repo topics/tags and nothing about production SLAs, monitoring, or forecast-drift handling — this reads as a research release to fine-tune and evaluate, not an ops-ready forecasting service
Chronos, TimesFM, Qlib, and TimeGPT
Who Kronos Is Built For
Quant researchers and ML engineers who already work with OHLCV data and want a pretrained, financial-foundation-model starting point for candlestick forecasting experiments — especially if you plan to fine-tune on your own market or asset class using the included scripts. Skip it if you need a live trading signal out of the box, more than 512 bars of context on a model bigger than 24.7M params, or anything resembling commercial support — none of that exists in this repo.
Kronos Questions, Answered
Yes. It's MIT-licensed, and the mini, small, and base checkpoints are open on Hugging Face under the NeoQuasar org. Only Kronos-large (499.2M params) is withheld and not open-sourced.
A pandas DataFrame with open/high/low/close columns (volume and amount are optional), plus historical and future timestamp Series. No custom preprocessing pipeline is required beyond that.
Neither exactly — it samples forecast paths controlled by temperature (T), nucleus sampling (top_p), and sample_count, then you average them. It's explicitly probabilistic, not one deterministic number.
Up to 512 bars for the small and base models — KronosPredictor truncates anything longer. Kronos-mini supports a 2048-bar context but has only 4.1M parameters, so there's a trade-off either way.
Nothing in the repo documents a hosted API, SLA, or production tooling. Treat it as a research foundation model to fine-tune and backtest, not a plug-and-play trading signal.
