8 分钟、千只股票:Kronos 金融预测怎么上手
【免费下载链接】KronosKronos: A Foundation Model for the Language of Financial Markets项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos
Kronos 是目前首个专为 K 线数据构建的开源基础模型,它在超过 45 家全球交易所的 K 线上训练,通过 Kronos 金融预测输出标的未来的 K 线与成交量。官方公布的测试中,批量分析 1000 只股票只需约 8 分钟。
还在一只只人工分析股票吗
单只股票人工看 K 线没问题,但换成指数里三四百只成分股,人工就没法做了:换一下观察窗口、换一批数据,全部重来,等跑完当天的盘中窗口早就过去了。这是批量股票分析的真实瓶颈——工作量随股票数量线性增长,模型再准也等不起。Kronos 改变的是这种工作方式:把「一只只看图」变成一次批量推理任务,把原本需要数小时的大规模分析压缩到分钟级。
3 分钟跑起来
这一节用两步带你跑通第一次预测:装好依赖,再打开图形界面做一次预测。先克隆仓库并安装依赖,需要 Python 3.10+:
git clone https://gitcode.com/GitHub_Trending/kronos14/Kronos cd Kronos pip install -r requirements.txt不想写代码的话,直接启动 Web 界面:
cd webui python run.py启动后在浏览器打开 http://localhost:7070 :加载你的数据文件,选择模型和计算设备(CPU、CUDA、Apple MPS 都可以),拖动滑块选时间窗口,点预测,结果图表就出来了。想走代码路线,入口是KronosPredictor类,完整可运行的样例见 预测示例。三个关键参数用大白话说:
- max_context:模型一次最多能看多长的历史 K 线,超出的部分预测器会自动截断,不用你处理
- lookback:你实际喂给模型多少根历史 K 线,建议不超过 max_context 上限
- pred_len:要预测未来多少根,返回的就是这若干根 K 线的开高低收与成交量
多只股票同时跑时用predict_batch即可并行预测,要求各序列的历史长度和预测长度一致。
它内部到底在做什么
一句话:Kronos 把 K 线当成大语言模型对待文本的方式——先「分词」成离散符号,再用自回归 Transformer 预测下一个符号。整个过程分两级:
- Tokenizer:把连续的 OHLCV 数值量化成分层的离散 token。类比成「把照片压缩成色块马赛克」——第一层 token 记录大致轮廓(趋势方向),第二层再补细节(具体涨跌)。这个压缩由 BSQ 量化器完成,每根 K 线最终变成一组「字符」,而不是一串浮点数。
- Predictor:decoder-only 的自回归 Transformer,配因果注意力——只能看前文、不能偷看后文,就像写句子,下一个字只由前面的内容决定。它在几十个市场的 token 上预训练过,相当于「听过各市场方言」,遇到没见过的标的也能给出合理推测。
Kronos 的两阶段流程:连续 K 线数据先经 Tokenizer 量化为离散 token,再由自回归 Transformer 基于历史 token 序列生成未来 K 线。
预测得准不准
看项目公开的两类实测结果:单标的预测,以及批量回测。
整体实测指标
- 价格预测准确率超过 85%(项目公布数据)
- 成交量预测的趋势与实际走势吻合
- 以策略形式跑回测时,可对比含交易成本的累积收益与基准指数,看超额收益与风险调整后的表现
预测信号驱动的策略累积收益曲线与基准指数的对比,两条曲线之差即超额收益。
单只股票走一遍
以官方示例为准:600977 的 5 分钟 K 线,lookback 取 400 根,模型预测后续 120 根。拿到的是 120 根 K 线的开高低收和成交量,把预测曲线和真实曲线叠在一起看,价格走向与量能起伏基本同步。
上:收盘价,下:成交量。蓝色为真实值,红色为模型预测值。
换上自己的数据
如果预训练模型在你关注的市场或标的上不满意,可以用仓库提供的完整流程微调,一共四步:
- 配置:修改 微调配置 里的路径与超参数——数据目录、检查点保存位置、训练轮数都集中在这里
- 数据准备:跑
python finetune/qlib_data_preprocess.py,生成训练/验证/测试集(依赖 pyqlib) - 两级训练:先
torchrun配合finetune/train_tokenizer.py让分词器适配你的数据分布,再跑finetune/train_predictor.py微调预测主体,支持多卡 - 验证:
python finetune/qlib_test.py --device cuda:0做 top-K 回测,输出累积收益曲线和性能汇总
如果数据是 CSV 格式(timestamps / open / high / low / close / volume / amount,后两列没有数据时填 0 即可),有更轻的路子:CSV 微调文档 里train_sequential.py一条命令依次训完两个模块,支持多卡 DDP。
下图是把模型放到阿里巴巴(09988)的 5 分钟 K 线上微调后的预测结果:
在港交所 09988 五分钟 K 线数据上微调后,模型对历史窗口的拟合与对未来的预测示意。
需要多少硬件
官方建议的环境与公布的优化数据如下。
| 资源 | 建议配置 |
|---|---|
| GPU | ≥40GB 显存 |
| CPU | 多核心处理器 |
| 内存 | ≥256GB |
官方公布的优化效果:显存占用降低 20%,分析效率提升 53.8%,时间成本节省 67%。
模型家族共四档,按机器情况挑:
| 模型 | 参数量 | 上下文长度 | 是否开源 |
|---|---|---|---|
| Kronos-mini | 4.1M | 2048 | 是 |
| Kronos-small | 24.7M | 512 | 是 |
| Kronos-base | 102.3M | 512 | 是 |
| Kronos-large | 499.2M | 512 | 否 |
机器不够就先用 mini 起步,它的上下文也是最长的一档。
先弄清楚三件事
适合谁用?会看几行 Python 就能用:个人投资者选股、需要批量预测信号的量化研究者、想做千股并行筛查的风控团队,都在射程内。完全不想写代码,用 webui 图形界面也能覆盖基本流程。
要准备什么数据?有 open / high / low / close 的 K 线数据就行,volume 和 amount 可选(缺失填 0)。日频、分钟频都可以,官方示例与微调案例用的都是 5 分钟线。
开源免费吗?代码为 MIT 协议,mini / small / base 三档权重全部开源,论文已被 AAAI 2026 接收。你唯一要出的成本,是自己的机器或云算力。
把「读 K 线」从手工活变成批处理任务,就是 Kronos 想做的事。如果你在做选股研究、板块筛查或风险监控,今天就可以把仓库克隆下来跑第一次预测。
【免费下载链接】KronosKronos: A Foundation Model for the Language of Financial Markets项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考