Kronos 开源K线预测大模型:3 步在本地跑通股票预测,规格怎么选一次讲清
【免费下载链接】KronosKronos: A Foundation Model for the Language of Financial Markets项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos
Kronos 是少见的开源 K 线预测基础模型,用 45 家以上全球交易所的行情数据预训练,把 K 线序列量化成符号后自回归地预测未来走势。适合只想看效果的个人投资者、有自有 CSV 数据的开发者,以及要做批量回测的量化研究者。
⚡ 零代码到命令行:3 步完成第一次 K 线预测
第一步:装好环境
先确认本机是 Python 3.10+,然后克隆仓库并安装依赖:
git clone https://gitcode.com/GitHub_Trending/kronos14/Kronos cd Kronos pip install -r requirements.txt依赖清单很短,核心就是 numpy、pandas、torch、matplotlib 几个包,装完即可用。
第二步:网页界面出第一张预测图
不想写代码就直接起 webui/:
cd webui python run.py然后浏览器打开http://localhost:7070,按"选 CSV 文件 → 选模型和计算设备(CPU / CUDA / MPS)→ 拖时间窗口 → 点预测"四步操作。窗口固定为 400 个历史点加 120 个预测点;首次加载会去 Hugging Face Hub 下载模型权重,耐心等一会。
数据只认列名,最低要求如下:
| 列名 | 是否必填 | 说明 |
|---|---|---|
| open、high、low、close | 必填 | 四价,缺一不可 |
| volume、amount | 可选 | 没有就留空,批量预测时按 0 处理 |
| timestamps / timestamp / date | 必填 | 历史与未来两段数据各自的时间戳 |
第三步:用 KronosPredictor 接管批量预测
要进自己的代码,核心入口是 model/ 里的KronosPredictor:先从模型库加载 tokenizer 和模型,把它们和 max_context 交给预测器实例,再调用predict,传入历史 K 线 DataFrame、历史时间戳、未来时间戳、预测点数四样东西。归一化和反归一化它都替你处理了。
采样参数控制随机性,常用取值如下:
| 参数 | 控制什么 | 取值参考 |
|---|---|---|
| T(温度) | 采样随机性 | 0.1–2.0,网页界面建议 1.2–1.5 |
| top_p | 核采样截断 | 0.1–1.0,示例脚本常用 0.9 |
| sample_count | 采样条数,多条取平均 | 1–5,2–3 条更稳 |
| lookback | 历史窗口长度 | small/base 建议不超过 512 |
| pred_len | 预测点数 | 如 120,需与未来时间戳对齐 |
一次要跑多只标的就用predict_batch,要求各序列的历史长度和预测长度一致。想要端到端脚本,直接看 examples/prediction_example.py;数据里没有成交量,也有对应版本 examples/prediction_wo_vol_example.py。
📐 mini / small / base 怎么按显卡选
四个规格对照
| 模型 | 参数量 | 上下文长度 | 配套分词器 | 开源状态 |
|---|---|---|---|---|
| Kronos-mini | 4.1M | 2048 | Kronos-Tokenizer-2k | 已开源 |
| Kronos-small | 24.7M | 512 | Kronos-Tokenizer-base | 已开源 |
| Kronos-base | 102.3M | 512 | Kronos-Tokenizer-base | 已开源 |
| Kronos-large | 499.2M | 512 | Kronos-Tokenizer-base | 未开源 |
三条选型经验
- mini 只有 4.1M 参数,上下文却给到 2048,适合先拿长历史数据把流程跑通
- small 是 README 示例的默认选择,速度和精度均衡,适合大多数入门场景
- base 是开源系列里最大的,精度定位最高,显存和算力要求也水涨船高;large 目前没有放出权重,不用花时间找
一个容易忽略的点:small 和 base 的上下文上限是 512,你喂的 lookback 最好别超这个数,超了KronosPredictor会自动截断,等于白喂数据。稳妥做法是先拿 mini 验证数据格式和流程,再换大模型,少绕弯路。
🎼 为什么读得懂 K 线:"记谱 + 续写"的两段式原理
K 线同时带着开高低收和成交量五个维度,还混着大量噪声,传统时序模型很难一次消化。Kronos 的解法是两段式:先"记谱",再"续写",底层是 decoder-only 的 Transformer 家族。
分词器:给连续 K 线"记谱"
一段连续录音没法直接印成书,但乐谱可以——符号化的东西才能被印刷、传递、学习。Kronos 的分词器干的就是这件事:把 OHLCV 连续数据量化成分层离散符号,粗的一层记大轮廓,细的一层补进细节,两层叠起来信息不丢。
自回归:听前半段,续后半段
记好谱之后,模型在符号序列上做自回归预训练。类比一位乐手:听完整部曲目前半段,他能预判后半段的旋律走向,而且同类作品听得越多,判断越准。Kronos 在 45 家以上交易所的符号序列上预训练过,所以它不是只学过单一市场的"偏科生",而是见过多种市场"方言"的通用底模。论文已被 AAAI 2026 接收,核心实现就在 model/ 目录。
📈 效果怎么验证:预测图、回测曲线与个股示例
单标的预测对比图
跑通 examples/prediction_example.py 后会得到历史走势与预测叠加的对比图,预测贴合度一眼可查:
回测曲线:策略对基准
用 finetune/ 的 Qlib 流水线在 A 股日线数据上微调后,脚本会生成 top-K 策略相对基准的累计收益曲线:
沪深个股的真实输出
examples/yuce/ 里放着平安银行 000021 等四只 A 股的预测图,每张图都配了 JSON 分析报告,可以逐条核对模型对单只股票的输出细节:
🧪 进阶路线:按角色分流,以及离实盘还差什么
三条路线按角色选
| 你的情况 | 推荐路线 | 入口 |
|---|---|---|
| 只想看效果,不写代码 | 网页界面 | webui/ |
| 有自己的 CSV 行情 | CSV 微调 | finetune_csv/,内置阿里港股 09988 五分钟线示例,改一份 yaml 就能训练 |
| 要自建量化策略 | Qlib 流水线 | finetune/,数据处理→分词器/预测器两阶段微调→回测 |
微调命令速查
| 环节 | 命令 |
|---|---|
| A 股路线依赖 | pip install pyqlib,并按 Qlib 官方文档备齐日线数据 |
| 数据预处理 | python finetune/qlib_data_preprocess.py |
| 微调分词器(多卡) | torchrun --standalone --nproc_per_node=卡数 finetune/train_tokenizer.py |
| 微调预测器(多卡) | torchrun --standalone --nproc_per_node=卡数 finetune/train_predictor.py |
| 回测评估 | python finetune/qlib_test.py --device cuda:0 |
| CSV 路线全流程 | python train_sequential.py --config configs/config_ali09988_candle-5min.yaml(在 finetune_csv/ 目录下执行) |
A 股路线的路径和超参集中在 finetune/config.py,跑任何脚本之前先改它。
回测演示 ≠ 实盘系统
这条必须说在前面:官方明确标注,回测流水线只是演示,不是生产级交易系统。模型吐出来的是原始预测信号,离实盘还差一整套工程——组合优化、风险因子中性化(市场 beta、风格因子)、交易成本与滑点建模;top-K 策略本身也只是最简单的起点。把前面那张回测曲线当成收益承诺,是踩坑的第一步。
从一张 CSV 到可复现的预测曲线,Kronos 把读 K 线拆成了开源可查的每一步——剩下的是你的数据和判断。
【免费下载链接】KronosKronos: A Foundation Model for the Language of Financial Markets项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考