Kronos金融K线基础模型完整教程:从快速安装到股票价格预测的5步指南
【免费下载链接】KronosKronos: A Foundation Model for the Language of Financial Markets项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos
手里有一份 5 分钟 K 线数据,想看看未来 120 根 K 线里收盘价和成交量大概会怎么走,而不是只得到一个"涨/跌"的单点结论——这正是 Kronos 要解决的场景。Kronos 是一个专为金融 K 线数据设计的开源金融基础模型,直接把开高低收量(OHLCV)序列作为输入,输出未来多个时间点的价格与成交量预测,并支持批量预测和策略回测。
Kronos 是什么:首个开源金融K线基础模型
Kronos 是一个 decoder-only 的金融大模型家族,预训练数据覆盖全球 45 个以上交易所的 K 线序列,论文已被 AAAI 2026 接收,代码与权重以 MIT 协议开源。它不是通用时间序列模型,而是专门针对金融数据高噪声、多尺度的特性设计,目标是作为统一底座支撑预测、信号生成等多样量化任务。
对使用者来说,关键参数决定了"能跑什么":
| 模型 | 参数量 | 上下文长度 | 适用场景 |
|---|---|---|---|
| Kronos-mini | 4.1M | 2048 | 低资源环境、快速验证 |
| Kronos-small | 24.7M | 512 | 日常预测的主力档位 |
| Kronos-base | 102.3M | 512 | 追求更高预测质量 |
| Kronos-large | 499.2M | 512 | 未开源,仅论文参考 |
mini 和 small 参数很小,CPU 也能完成单次预测;base 以上以及批量预测、微调训练则建议上 GPU。
Kronos 工作原理:从K线到token的两阶段框架
整个系统可以理解成两件事:先把 K 线"翻译成"一串离散 token,再让一个自回归 Transformer 学会这种"金融市场语言"。下图是完整架构:
第一阶段 Tokenizer:把 OHLCV 压成分层离散 token
K 线数据是连续、多维、带噪的,直接喂给 Transformer 很难学。Kronos 的 Tokenizer 先用编码器压缩表示,再通过二值球面量化(BSQ)把每个时间点量化成"粗粒度 + 细粒度"两级子 token,最后由解码器重建出 K 线。量化保证了对原始数据的无损逼近,重建能力则说明 token 确实保留了价格、成交量的关键信息。相关实现在 model/module.py 的BSQuantizer中。
第二阶段 自回归 Transformer:学习"下一个 K 线"
拿到 token 序列后,一个因果 Transformer 按语言模型的方式做预训练:给定历史 K 线 token,预测下一个 token。每个 Transformer 块内部由多个 Intra-Block 组成,块之间通过共享参数和交叉注意力(Header/Query)传递跨时间尺度的信息,既控制参数规模,又保证长程依赖的建模。训练完成后的模型就具备了"续写 K 线"的能力,预测时按时间步逐点生成即可。核心代码见 model/kronos.py。
Kronos 快速安装步骤与环境要求
环境要求很轻:Python 3.10+,依赖只有 PyTorch、pandas、huggingface_hub 等几个常见库(见 requirements.txt)。模型权重首次运行时自动从 Hugging Face 拉取,无需手动下载。
git clone https://gitcode.com/GitHub_Trending/kronos14/Kronos cd Kronos pip install -r requirements.txt安装完成后,一个最小可运行的预测脚本只有几行(完整可运行版本在 examples/prediction_example.py):
from model import Kronos, KronosTokenizer, KronosPredictor tokenizer = KronosTokenizer.from_pretrained("NeoQuasar/Kronos-Tokenizer-base") model = Kronos.from_pretrained("NeoQuasar/Kronos-small") predictor = KronosPredictor(model, tokenizer, max_context=512) pred_df = predictor.predict( df=x_df, x_timestamp=x_ts, y_timestamp=y_ts, pred_len=120, T=1.0, top_p=0.9, sample_count=1, )几个必须知道的输入约定:
x_df是历史 K 线 DataFrame,必须含open/high/low/close列,volume/amount可选(缺失时自动补 0);x_timestamp、y_timestamp分别是历史和待预测时段的时序;- small/base 的
max_context为 512,输入过长会被自动截断; - 返回值
pred_df按y_timestamp对齐,包含预测的 open/high/low/close/volume/amount。
功能演示:Web界面与API调用两条路径
零代码:启动 Web 界面
不想写代码时,项目内置了一个本地 Web 界面(Flask + Plotly),支持 CSV、Feather 数据格式,支持 CPU、CUDA、MPS 三种设备:
cd webui python run.py启动后访问http://localhost:7070,操作路径是:选择数据文件 → 选模型(mini/small/base)和设备 → 用滑块拖动 400+120 数据点的时间窗口 → 调整温度、核采样、样本数 → 点击预测。结果页会给出 K 线图、预测与实际的价差统计和误差分析,适合作为第一次体验的入口。
几行代码:predict 与 predict_batch
需要集成到自己的系统时,用前面KronosPredictor的predict方法即可,T(温度)、top_p(核采样)、sample_count(多条预测路径取平均)三个参数控制预测的随机性——官方建议温度 1.2~1.5、top_p 0.95~1.0、2~3 条样本,质量更稳。
批量场景用predict_batch:传入多个等长的 DataFrame 列表,GPU 并行推理,各序列独立做归一化/反归一化,一次跑完一组资产的预测。数据准备和更多示例可看 examples/ 目录。
实测表现:预测结果与真实数据的对比
先看单只股票的预测样例:以 400 根历史 K 线为上下文,预测后续 120 根。上图为 5 分钟级 A 股数据,红色为模型预测、蓝色为真实走势——收盘价预测贴合了震荡后上行的趋势形态,成交量预测整体偏保守,捕捉了部分放量区间。
更值得关注的是回测口径。官方提供了 A 股 top-K 策略回测脚本,下图是扣费后的累计收益(上)与相对 CSI300 基准的累计超额收益(下),last/mean/max/min 分别对应不同采样路径:2024 年 10 月后策略曲线整体位于基准之上,超额收益持续走正。需要说明的是,官方明确标注这是一条简化演示流水线——top-K 选券 + 简单回测,并非生产级量化系统,真实使用还要叠加组合优化、风险因子中性化和交易成本建模。
进阶能力:微调、回测与二次开发
项目内建两条完整的微调管线,可以把模型适配到自有市场或自有数据分布上。
A 股 Qlib 管线(finetune/):用微软 Qlib 准备数据,四步走——
python finetune/qlib_data_preprocess.py # 数据切分 torchrun --standalone --nproc_per_node=2 finetune/train_tokenizer.py # 微调Tokenizer torchrun --standalone --nproc_per_node=2 finetune/train_predictor.py # 微调Predictor python finetune/qlib_test.py --device cuda:0 # 回测评估自定义 CSV 管线(finetune_csv/):面向任意 CSV K 线数据(含 timestamps/open/high/low/close/volume/amount 列),改一个 YAML 配置后一条命令顺序训练 tokenizer 和 predictor,多卡可加torchrun开 DDP。下图就是该管线在阿里巴巴港股 09988 的 5 分钟数据上微调后的预测效果:
二次开发方面,模型全部是标准 PyTorch 模块并通过huggingface_hub的from_pretrained加载,替换权重即可换成任意档位模型;model/目录下的BSQuantizer、KronosTokenizer、Kronos均可单独 import 复用在自己的 pipeline 中。
不同角色能各取所需
- 个人投资者:走 Web 界面,几分钟内拿到个股未来 120 个时间点的价格/成交量预测与误差统计,辅助判断而非替代研究;
- 量化团队:用
predict_batch批量生成多资产信号,接入既有的组合优化与风控流程,用回测脚本做初步验证; - 开发者 / 研究者:在 model/ 源码上做二次开发,或用自己的市场数据微调出领域定制版本。
总结:接下来可以做的 4 件事
Kronos 把"K 线预测"从各写各的脚本,变成了一个可安装、可微调、可回测的开源基础模型底座。建议按这个顺序上手:
- 克隆仓库并执行
pip install -r requirements.txt,完成 Kronos 安装; - 运行 examples/prediction_example.py,看第一张预测对比图;
- 启动 webui/ 零代码体验完整预测流程;
- 有自有数据时,按 finetune_csv/ 的 CSV 管线微调,再用回测脚本验证效果。
需要提醒:模型输出是统计意义上的预测信号,不构成投资建议;真实交易前请用自己的数据做充分回测。
【免费下载链接】KronosKronos: A Foundation Model for the Language of Financial Markets项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考