Kronos K线预测完全指南:金融大模型原理、实测效果与部署教程
【免费下载链接】KronosKronos: A Foundation Model for the Language of Financial Markets项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos
Kronos 金融大模型是首个开源的 K 线序列基础模型,它把 OHLCV K 线当作一种"语言",用自回归方式直接生成未来的 K 线。如果你写过量化策略,多半经历过这样的循环:换一只票、换一个周期,模型就要重新训练一遍;模型吐出来的只有单点预测,没有波动范围;想验证想法还得先搭一套数据管道。Kronos 的思路是:先在 45 个以上全球交易所的数据上预训练出一个通用底座,你再针对自己的标的做轻量微调,几行代码就能拿到带成交量的多步 K 线预测。
一句话说清 Kronos 是什么
Kronos 是一个 decoder-only 的基础模型家族,专门针对金融 K 线(蜡烛图)序列预训练,解决的是"高噪声、多市场、多周期"下的价格预测问题。它分两个阶段工作:先用一个专用分词器把连续的 OHLCV 数据量化成离散 token,再在这些 token 上用自回归 Transformer 做预训练。你拿到的是 Hugging Face 风格的from_pretrained接口,输入一个 DataFrame,输出一段预测的 K 线。
| 对比维度 | Kronos 金融大模型 | 通用时序基础模型 | 传统量化模型(ARIMA/LSTM 等) |
|---|---|---|---|
| 预训练语料 | 45+ 全球交易所的 OHLCV K 线 | 通用单/多变量时间序列 | 无预训练,按单标的从零训练 |
| 输入形式 | 分层离散 token(粗粒度 + 细粒度双子 token) | 原始连续值 | 原始数值序列 |
| 输出形式 | 自回归采样,可生成多条预测路径 | 单点预测为主 | 单点预测 |
| 跨市场迁移 | 预训练底座 + 自有数据微调即可适配 | 通常在目标域效果衰减明显 | 每个标的/周期单独建模 |
核心原理:K 线分词 + 因果 Transformer
为什么先把 K 线变成 Token
金融数据噪声大、量纲杂(价格可能差两个数量级,成交量更是另一个世界),直接喂连续值给 Transformer,模型要先花容量去"对齐量纲"。Kronos 的做法类似语言模型处理文本:先把 K 线离散化成 token,让自回归模型专注学"序列规律"本身,而不是数值缩放。
BSQ 分块量化:一个 Token 两层精度
分词器采用 BSQ(Binary Spherical Quantization,二值球面量化)。每一根 K 线被编码成一个 token,token 内部拆成两段:高位的粗粒度子 token 负责宏观形态(涨/跌、影线结构),低位的细粒度子 token 负责微观细节(精确价位、成交量梯度)。类比拍照:粗 token 是缩略图,细 token 是原图,模型先定方向再补细节。
自回归预训练:只让模型看过去
预测器是叠 N 层的因果 Transformer Block,注意力掩码保证位置 t 只能看到 t 之前的 token——这是防未来函数泄露的结构性保证,不靠后处理。推理时按temperature/top_p逐 token 采样,同一历史输入可采样出多条预测路径再平均,天然给出概率化输出。
左:K 线经 Tokenizer 编码器、BSQ 量化、解码器重构的分词流程;右:粗/细双粒度 token 在因果 Transformer 中的自回归预训练结构
K 线预测准不准:用官方示例和数字说话
官方预测示例:400 根历史推 120 根未来
官方示例脚本以 400 根历史 K 线为上下文,预测未来 120 根。在下图的 500 步测试序列中,红色预测段(约第 400 步之后)的收盘价曲线跟住了真实值的下行—回升—再上行走势,转折点位置基本对齐;成交量图里预测段对几个放量尖峰的位置和量级都有覆盖。需要说明:这是单一示例样本,不等于全市场平均水平。
上:收盘价真实值(蓝)与 Kronos K 线预测(红)对比;下:成交量真实值与预测值对比
微调实例:A 股日线与港股 5 分钟数据
仓库里附带了 A 股日线预测的完整输出示例,以 000021 为例,示例脚本给出价格、成交量、日涨跌幅、市场因子评分四个面板,并在图上标注了预测最高价 25.88 元、最低价 18.41 元、最终预测价 19.31 元,方便直接对照实际走势复盘。
000021 日线 K 线预测:价格走势、成交量、涨跌幅与市场因子评分四联图
CSV 微调管线则用了阿里巴巴港股(09988)5 分钟数据:回看窗口 512 根、预测窗口 48 根(48 × 5 分钟 = 4 小时),微调后的模型输出如下,日内波段和量能形态与历史段连贯。
Kronos 在 09988 港股 5 分钟 K 线上微调后的预测效果示例
回测曲线怎么看
A 股日频管线(Qlib 数据 + top-K 策略)的回测输出包含累计收益与超额收益两条曲线,脚本同时打印控制台性能指标。这张示例图展示的是"策略 vs 基准"的形态,具体数值以你自己跑的测试集输出为准——它证明的是管线跑得通,而不是保证收益。
top-K 策略回测:累计收益曲线与基准对比,用于验证微调模型在 A 股日频上的信号有效性
Kronos 如何部署:最快上手步骤
环境与硬件要求
Python 3.10+,依赖主要是 PyTorch ≥ 2.0、pandas、einops。开源的三档模型参数量都不大:Kronos-mini 4.1M、Kronos-small 24.7M、Kronos-base 102.3M,单张消费级 GPU 即可跑推理;微调脚本用 torchrun/DDP 支持多卡。(499.2M 的 Kronos-large 未开源。)注意 small/base 的max_context是 512,mini 为 2048,输入过长会自动截断。
三步跑通第一次 K 线预测
git clone https://gitcode.com/GitHub_Trending/kronos14/Kronos cd Kronos pip install -r requirements.txt然后加载模型、预测:
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)输入 DataFrame 必须含open/high/low/close列,volume、amount可选。多标的场景用predict_batch并行推理(要求所有序列的回看长度和预测长度一致)。完整可运行脚本见 examples/prediction_example.py。
用自己的 CSV 数据微调
CSV 需含timestamps/open/high/low/close/volume/amount七列(后两列可全 0),改好 配置模板 里的data_path和预训练模型路径后:
python finetune_csv/train_sequential.py --config finetune_csv/configs/config_ali09988_candle-5min.yaml一条命令依次完成 tokenizer 和 predictor 两阶段训练,检查点分别落在tokenizer/best_model和basemodel/best_model。A 股 Qlib 管线的对应脚本是 数据预处理、训练 和 回测。
Kronos 适用哪些场景
单标的日内短线(5 分钟级)
高频场景最直接的用法:拿一只票的全部 5 分钟历史做 CSV 微调,predict_window: 48即覆盖一个 4 小时预测窗。09988 的示例就是这条路径,适合做日内节奏判断和量能预警。
多标的日线批量信号
用 Qlib 管线准备 A 股日频数据,微调后在测试集上批量生成预测信号(如预测价格变化率),接 top-K 选股做回测。predict_batch让"一次跑完整个股票池"成为一条调用,适合作为因子候选源而不是最终策略。
概率化预测与情景分析
predict的T(温度)、top_p(核采样)、sample_count(路径数)三个参数控制不确定性:sample_count=5生成 5 条路径取平均,或保留分布做情景分析。这比单点预测多出来的信息量,在仓位管理和风险预算里比多 0.1 个点的精度更实用。
局限与注意事项:先划清边界 ⚠️
- 上下文有限:small/base 最多 512 根 K 线,长周期回看需要换 mini(2048)或滚动拼接。
- 信号 ≠ 策略:官方明确声明回测管线只是演示,不是生产级量化系统。模型输出是原始预测,实盘前需要组合优化、风险因子中性化,以及交易成本/滑点建模。
- 结果是采样:自回归推理带随机性,
T、top_p不同结果会不同,复现对比实验时固定种子和参数。 - 批量推理有约束:
predict_batch要求各序列回看长度、预测长度完全一致,volume/amount缺失会填 0。 - 单标的微调数据量:像 5 分钟这种高频数据,微调样本多、效果好;如果只有几百根 K 线,微调可能不如直接用预训练底座。
开始动手
仓库已经给出了从推理到微调的完整路径:先用 prediction_example.py 跑通第一个预测,再用 finetune_csv 换成你自己的标的。模型团队已被 AAAI 2026 接收,后续方向是模型轻量化、实时预测和多市场 API 化——对你而言,现在最有价值的事是把一只自己熟悉的票喂进train_sequential.py,用真实曲线检验它的边界。
【免费下载链接】KronosKronos: A Foundation Model for the Language of Financial Markets项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考