Kronos金融大模型:从K线Token化到A股回测的完整实践
2026/9/1 11:28:04 网站建设 项目流程

Kronos金融大模型:从K线Token化到A股回测的完整实践

【免费下载链接】KronosKronos: A Foundation Model for the Language of Financial Markets项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos

Kronos是首个开源的金融市场K线基础模型,在45个以上全球交易所的数据上完成预训练。它把开高低收量(OHLCV)K线序列当作一种"语言"来处理,先量化成分层离散token,再由自回归Transformer生成对未来K线的预测,为股票预测与量化回测提供了一条端到端的开源路径。

🚀 Kronos的十分钟上手:单只股票预测全流程

对想快速验证效果的读者,仓库给出了从加载到出图的完整脚本,跑通一次只需要十分钟。

运行examples/prediction_example.py后生成的Kronos预测结果:上半图为收盘价真实值与预测值对比,下半图为成交量对比

复现路径:安装requirements.txt中的依赖后,KronosPredictor类把数据归一化、推理、反归一化封装为一步,传入历史K线的 DataFrame、历史时间戳和未来时间戳,再指定pred_len即可拿到预测的 OHLCV 序列,返回的仍是标准 DataFrame。参数直觉:采样参数T(温度)、top_p(核采样)和sample_count(并行采样路径数再取平均)决定了预测的随机性与稳定性——想要贴近历史风格可调低温度,想要捕捉尾部行情可调高采样数;examples/prediction_wo_vol_example.py则演示了没有成交量数据时的用法。批量能力:需要同时预测多只标的时,predict_batch方法利用 GPU 并行独立处理多条序列,自动完成每条序列的归一化与还原,前提是各序列的回看窗口与预测长度保持一致。

一句话:对大多数读者,examples/prediction_example.py就是理解 Kronos 推理接口的最短路径。

🧩 把K线拆成"词汇表":双阶段Token化架构拆解

理解了接口,再看一眼内部——Kronos 与直接把价格喂给 Transformer 的做法不同,它先用专用分词器把连续的多维K线压成分层离散token,再让语言模型式的架构在其上自回归预训练。

Kronos完整架构:左侧为K线Token化流程,右侧为基于离散token的自回归预训练框架

分层离散化:分词器(model/kronos.py中的KronosTokenizer)由编解码器 Transformer 加二值球面量化器(BSQuantizer)组成,把每个时间步的OHLCV向量量化为"粗粒度+细粒度"两段位编码,粗token捕捉主要形态、细token补全局部细节,避免了单一码本表达力不足的问题。依赖感知解码:主干模型(model/kronos.py中的Kronos)是带旋转位置编码的因果Transformer,model/module.py中的DependencyAwareLayer用交叉注意力让细粒度token条件于粗粒度表征,再由DualHead先预测粗token、再条件生成细token,模拟了"先骨架后细节"的K线生成过程。规模选择:开源模型族包含 Kronos-mini(4.1M参数,上下文2048)、Kronos-small(24.7M)与 Kronos-base(102.3M),后者两者上下文长度为512,注意输入回看窗口不宜超过该上限,超出部分会被自动截断。

这种"先词法后语法"的两阶段设计,是它能跨市场复用的关键——量化层负责适配数据分布,Transformer 负责学习K线的"语法"。

📊 A股实证:从单只股票到多股综合分析

架构讲完,看真实数据上的表现。examples/yuce/目录保存了一组对A股的批量预测产物,可以当作 Kronos 在A股场景下的参考基准。

Kronos在A股000021上的优化预测结果,配套综合分析报表位于examples/yuce/目录

批量产物:该目录为 000021、002354、300207、600580 四只股票各生成了一份优化预测图与*_comprehensive_analysis_report.json报表,market_analysis_report.json则汇总了市场层面的分析结论,说明 Kronos 的predict_batch接口被用于多标的并行推理。复现路径:目录内的historical_backtest.py脚本给出了针对这些预测结果做历史回测的参考实现,配合run_backtest_kronos.py可以把预测信号接到策略评估流程上。观察角度:判断预测是否可用,建议同时看价格路径的贴合度与成交量走势,单看收盘价容易高估模型的稳定性。

需要强调:这些是示例性结果而非收益承诺,A股风格与市场结构与其他交易所差异明显,跨市场使用时更推荐先微调再评估。

📈 A股微调与回测管线:从原始信号到top-K策略

把预训练模型放到A股上,官方给出的是一条基于 Qlib 的四步微调管线,也是回测数据的主要来源。

运行finetune/qlib_test.py后生成的回测图:策略累积收益曲线与基准的对比如上

管线四步:先在finetune/config.py中配置 Qlib 数据路径、训练区间与保存目录,再依次运行finetune/qlib_data_preprocess.py切分数据、torchrun多卡启动finetune/train_tokenizer.pyfinetune/train_predictor.py完成两阶段微调,最后用python finetune/qlib_test.py --device cuda:0在测试集上推理并回测。回测口径:测试脚本基于预测的价格变化信号构建简单的 top-K 选股策略,输出控制台的绩效分析与上方累积收益曲线,便于直观对比基准。边界提示:官方明确说明这条管线是演示性质而非生产级系统——原始信号未经风险因子中性化,top-K 是极简策略,交易成本、滑点与市场冲击都未精细建模;tests/test_kronos_regression.py提供的回归测试(固定随机种子下预测 MSE 与参考值比对)更适合用来校验推理环境是否正确。

回测曲线回答"管线跑得通",离"策略能上线"中间还隔着组合优化与风控这一层。

🏭 端到端CSV微调案例:阿里巴巴港股5分钟K线

不想搭 Qlib 环境的话,finetune_csv/提供了最轻量的路径:只要一张 CSV 表格,就能完成分词器+预测模型的顺序微调。

Kronos在阿里巴巴(09988.HK)5分钟K线上微调后的多步预测示例,数据文件位于finetune_csv/data/

数据要求:CSV 需包含timestamps与开高低收六列(量额可填0),仓库自带样例finetune_csv/data/HK_ali_09988_kline_5min_all.csvfinetune_csv/configs/config_ali09988_candle-5min.yaml中可配置回看窗口512、预测长度48等参数。训练方式:一条命令python train_sequential.py --config ...即可按"先tokenizer后predictor"的顺序完成全流程,也支持--skip-tokenizer只训其一,多卡时可用 torchrun 开启 DDP 加速;分步训练则分别对应finetune_csv/finetune_tokenizer.pyfinetune_csv/finetune_base_model.py结果对照finetune_csv/examples/保存了多份微调后的预测图,上方这张展示了港股5分钟级别的多步预测——高频级别下预测长度受上下文限制,更适合日内而非长线场景。

想跳过命令行直接交互,webui/run.py提供了一个带K线图渲染与参数滑块的网页端,启动后访问 7070 端口即可操作。

从45个交易所的预训练语料,到A股Qlib回测与港股CSV微调,Kronos 把"K线语言模型"从论文概念落成了可复现的开源工程。如果你手上有自己的行情数据,最快的验证方式是打开finetune_csv/目录,把一张 CSV 换成你的数据跑一遍顺序微调;想先感受推理效果,则可以直接运行examples/prediction_example.py,十几分钟内就能看到预测曲线与真实走势的对照。

【免费下载链接】KronosKronos: A Foundation Model for the Language of Financial Markets项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询