Kronos K线预测基础模型实战指南:3 条命令跑通你的第一次股价预测
【免费下载链接】KronosKronos: A Foundation Model for the Language of Financial Markets项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos
Kronos 是一个面向金融 K 线的开源基础模型,在 45+ 个交易所的数据上训练。它把 OHLCV 蜡烛图变成 Transformer 能读的语言,拿来就能预测未来的价格和成交量。读完本文,你可以用 10 分钟在自己机器上跑通一条 K 线预测,并看懂结果图是否可信。
一句话看懂
Kronos 是专门给金融 K 线做的 decoder-only 基础模型:先用 tokenizer 把连续的 OHLCV 数据量化成层级化离散 token,再在 token 上做自回归 Transformer 预训练。它不是通用时间序列模型,而是针对金融数据高噪声特性专门设计的。
| 维度 | 传统做法 | Kronos |
|---|---|---|
| 建模方式 | 手工指标(MA/MACD),逐市场调参 | 一次预训练覆盖 45+ 交易所,跨市场泛化 |
| 输入 | 单一价格列或指标序列 | OHLCV 多维 K 线整根喂入 |
| 上下文长度 | 受方法本身限制 | 512~2048 根 K 线(看模型规格) |
| 输出 | 点估计 | T/top_p 可控采样,支持多条预测路径 |
它替你省掉什么
手工拼时序预测流水线。自己做时间序列模型,归一化、窗口对齐、超长截断、反归一化每样都要写,每样都可能埋坑。Kronos 用KronosPredictor类把这些全收进去了:你只传一个 DataFrame 和两段时间戳序列,剩下的预处理到反归一化全由它处理。
多标的逐个跑的等待时间。回测或扫全市场时逐只股票推理太慢。predict_batch在 GPU 上并行处理一个序列列表,返回顺序与输入一致,前提是每条序列的 lookback 和 pred_len 相同。
没有成交量的数据源。指数、部分海外数据拿不到 volume。这里 volume、amount 是可选列,缺失时自动填 0,examples/目录里有配套的无成交量示例脚本,不用为缺数据换模型。
🚀 最快上手路径
环境要求:Python 3.10+、PyTorch 2.0+。
git clone https://gitcode.com/GitHub_Trending/kronos14/Kronos cd Kronos pip install -r requirements.txt执行完你会看到依赖逐个安装完成,核心是 torch、pandas、matplotlib、huggingface_hub 这几个包。
然后在 Python 里加载模型和 tokenizer:
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)执行完你会看到 24.7M 参数的 small 模型和 tokenizer 从 Hugging Face 拉到本地缓存,predictor 实例就绪。
最后跑完整示例,脚本取 400 根历史 K 线、预测后 120 根:
cd examples python prediction_example.py执行完你会看到终端打印预测 DataFrame 的头部,并弹出双面板对比图:上板收盘价、下板成交量。注意脚本读取的是./data/XSHG_5min_600977.csv,这个 CSV 不在仓库里,你需要自备一份同列名的 K 线数据或换成自己的文件路径。
📊 结果怎么读才算靠谱
上板是收盘价、下板是成交量,蓝线 Ground Truth 是真实值,红线 Prediction 是最后 120 根区间的预测。三条判读标准:
- 不要求预测线"贴"住真实曲线,看方向和波动带。示例里真实值在谷底后横盘,预测却往上走——方向判断错了,但幅度仍落在历史价格区间内,这是可以接受的误差形态
- 预测成交量的量级必须与历史同档。图中历史成交量大多在 1000 左右,预测也在同一量级;如果放大几倍或塌到 0,先怀疑采样参数
- 把
sample_count调大跑多条路径,如果各条预测分歧很大,说明这条信号置信度低,只适合研究、不适合直接定仓位
回测图是另一个维度的证据:
- 优先看下板"累计超额收益",这是相对 CSI300 基准的净价值;上板累计收益会被大盘整体行情带着走
- 四条曲线对应不同采样参数(last/mean/max/min)。min 那条也站在基准上方,说明信号对采样参数不敏感,比较稳
- 上板前段的回撤(约 -0.1)不用单独恐慌,对照横轴时间看基准同期是否同跌,2024 年初整段都在跌
⚠️ 避坑清单
| 坑 | 现象 | 解法 |
|---|---|---|
| 上下文超限 | 结果比预期"短视" | Kronos-small/base 最大上下文 512,lookback 超过会被自动截断;要长上下文选 Kronos-mini(2048) |
| 数据列不齐 | predict 报错或结果异常 | open/high/low/close 四列必填;volume、amount 可缺,缺失填 0 |
| 示例缺数据文件 | FileNotFoundError | 仓库不附带示例 CSV,自备 K 线数据并确认脚本读的是你的路径 |
| 环境版本 | import torch 失败 | requirements.txt 锁定 torch>=2.0.0、pandas 2.2.2,别用旧版 PyTorch |
| 批量预测错位 | 结果和标的对不上号 | predict_batch 要求所有序列 lookback、pred_len 完全一致 |
🔧 进阶方向
架构上,左侧管道用 BSQ 向量量化把每根 K 线映射成"粗粒度 + 细粒度"两层子 token,右侧 N 层 Causal Transformer Block 做自回归预训练,两头解耦,所以噪声大的金融序列也能稳定建模。
三个可以立刻动手的延伸:
- 用自己的市场数据微调:仓库内置两条微调流水线,CSV 数据走
finetune_csv/(train_sequential.py 一条命令先训 tokenizer 再训 predictor,附港股 09988 五分钟的示例配置和产出图) - A 股 Qlib 全流程:
finetune/目录按预处理 → 训 tokenizer → 训 predictor → qlib_test 回测四步组织,最后一步自动出 top-K 策略回测和上图那张收益曲线 - 换预测参数:先调 T、top_p、sample_count 看多路径分歧,再决定要不要微调,顺序别反
Kronos 的价值在于几十行代码就能把 K 线变成可判读的多维预测,代价只是四列数据和 512 的上下文限制。下一步:挑一只你熟悉的股票,拉一年 5 分钟数据,按"最快上手路径"跑一遍——等你能独立判读预测图和回测图这两类图,再进入微调环节。
【免费下载链接】KronosKronos: A Foundation Model for the Language of Financial Markets项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考