news 2026/9/2 10:01:14

Kronos 金融K线基础模型:从 400 根历史 K 线预测未来 120 步价格

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Kronos 金融K线基础模型:从 400 根历史 K 线预测未来 120 步价格

Kronos 金融K线基础模型:从 400 根历史 K 线预测未来 120 步价格

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

做量化研究时,一个反复出现的麻烦是:每换一个标的、换一个时间周期,特征工程、训练、评估就得重来一遍。而 K 线数据噪声大、维度多(开盘、最高、最低、收盘、成交量),通用时序模型很难抓住其中的结构。Kronos 是一个开源的金融 K 线基础模型,它在 45 个以上全球交易所的 K 线数据上预训练,你只需给它一段 K 线 DataFrame,它就能自回归地预测未来 N 根 K 线的 OHLCV 走势。

定位:专为 K 线设计的 decoder-only 基础模型

Kronos 是一族面向金融市场"语言"——K 线序列的 decoder-only 基础模型,核心设计是两阶段:tokenizer 先把连续的 OHLCV 量化成分层离散 token,再由自回归 Transformer 在这些 token 上预训练。它带来的实际效果:

  • 层级化离散 tokenization:把连续价格序列变成结构化 token,模型对高噪声金融数据的容忍度更高,这是它区别于通用时序模型的关键
  • 预测开箱即用:model/kronos.py 里的KronosPredictor内部完成归一化、上下文截断、推理、反归一化,从原始 DataFrame 到预测曲线只需要约 10 行代码
  • 模型分级可选:开源权重从 4.1M(mini)到 102.3M(base)三档,配合两套完整微调流程(Qlib 数据管线和 CSV 数据管线),可以按显存和数据形态自选

最小可运行示例:从安装到第一条预测曲线

先克隆仓库并安装依赖(需要 Python 3.10+,依赖只有 numpy、pandas、torch>=2.0 等几个包):

git clone https://gitcode.com/GitHub_Trending/kronos14/Kronos cd Kronos pip install -r requirements.txt

第二步,加载预训练 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)

第三步,准备历史 K 线数据并发起预测(代码取自 examples/prediction_example.py):

df = pd.read_csv("./data/XSHG_5min_600977.csv") df['timestamps'] = pd.to_datetime(df['timestamps']) lookback, pred_len = 400, 120 x_df = df.loc[:lookback-1, ['open','high','low','close','volume','amount']] pred_df = predictor.predict( df=x_df, x_timestamp=df.loc[:lookback-1, 'timestamps'], y_timestamp=df.loc[lookback:lookback+pred_len-1, 'timestamps'], pred_len=pred_len, T=1.0, top_p=0.9, sample_count=1)

返回的pred_df是一个 DataFrame,列为open/high/low/close/volume/amount,索引是你提供的未来时间戳,print(pred_df.head())即可在终端看到前 5 根预测 K 线。注意./data/XSHG_5min_600977.csv不在仓库里,你需要自备一份同格式的 K 线 CSV(必须有timestamps和 OHLC 四列)。直接运行示例脚本则会画出收盘价与成交量的"实际 vs 预测"双面板图:

核心功能速览

批量预测多个标的:predict_batch 用法

场景:你想对几十只股票统一跑未来 N 根的预测做初筛,而不是逐个循环。用法:调用predict_batch,传入df_listx_timestamp_listy_timestamp_list三个列表,要求所有序列的历史长度(lookback)和预测长度(pred_len)一致。examples/prediction_batch_example.py 展示了同一份数据切出 5 个窗口一次性跑完的完整写法。结果:按输入顺序返回一个 DataFrame 列表,每条序列独立做归一化/反归一化,GPU 上并行处理。

用自己的 CSV 微调:finetune_csv 流程

场景:预训练权重对某个特定标的或周期(比如 5 分钟 K 线)拟合不够好。用法:CSV 需包含timestamps/open/high/low/close/volume/amount(没有量价数据时 volume 和 amount 可全填 0),在 yaml 里配置data_pathlookback_windowpredict_window后一条命令顺序训练 tokenizer 和 predictor:

cd finetune_csv python train_sequential.py --config configs/config_ali09988_candle-5min.yaml

结果:checkpoint 分别保存到{exp_name}/tokenizer/best_model/{exp_name}/basemodel/best_model/。仓库自带港股阿里巴巴(09988)5 分钟 K 线的微调配置和预测图,可参考 finetune_csv/README_CN.md。多卡时可加torchrun --standalone --nproc_per_node=N启用 DDP。

A 股 Qlib 微调与回测闭环

场景:你希望用 Qlib 体系的 A 股日线数据完成"数据准备 → 微调 → 回测"的完整闭环。用法:先pip install pyqlib并按 Qlib 官方指南备好数据,改好 finetune/config.py 里的路径后依次执行:

python finetune/qlib_data_preprocess.py torchrun --standalone --nproc_per_node=2 finetune/train_tokenizer.py torchrun --standalone --nproc_per_node=2 finetune/train_predictor.py python finetune/qlib_test.py --device cuda:0

结果qlib_test.py在测试集上做推理,生成预测信号并跑一个简单的 top-K 策略回测,控制台输出性能分析,同时画出策略相对基准的累积收益曲线:

踩坑指南:常见报错解决

运行示例提示找不到 examples/data/XSHG_5min_600977.csv

原因:示例脚本按相对路径读取./data/XSHG_5min_600977.csv,但这个 CSV 并未随仓库发布。解决:自己导出一份格式一致的 K 线 CSV(timestamps/open/high/low/close必填,volume/amount可选)放到该位置,或修改脚本里的读取路径。

为什么输入了 1000 根 K 线,模型却只用到最后 512 根

Kronos-small 和 Kronos-base 的上下文固定为 512,KronosPredictor对超过max_context的历史会自动截断,建议lookback不超过 512。如果确实需要更长上下文,可换 Kronos-mini(上下文 2048,仅 4.1M 参数)。

数据里没有成交量和成交额列怎么办

predict在缺少volumeamount列时会自动补 0,价格四列仍可正常预测;完全不依赖量价数据时,可以直接运行 examples/prediction_wo_vol_example.py。另外价格列含 NaN 会直接抛ValueError,跑之前先做缺失值检查。

GPU 显存不够 / 想在 CPU 上跑

按参数量选模型:mini 4.1M、small 24.7M、base 102.3M。KronosPredictor不传device时会自动选择 cuda → mps → cpu 中最先可用的设备,所以 CPU 推理可行,但自回归是逐 K 线生成的,pred_len较大时速度会明显变慢。

边界与成本:能做什么、不能做什么

  • 能做的:预测未来pred_len根 K 线的 OHLCV,单序列或批量;微调适配特定标的/周期。
  • 不能做的:预测曲线不等于可交易信号。仓库自带的回测是简化 top-K 策略,不含交易成本、滑点和风险因子中性化,README 也明确该管线是演示而非生产系统。
  • 资源成本:Python 3.10+、torch≥2.0;推理建议 8GB 以上显存(small 档),CPU 可跑但慢;CSV 微调单卡即可,finetune/管线默认多卡torchrun
  • 适合:快速搭建 K 线预测基线、在自有标的/周期上微调验证想法的人;不适合:期望拿预测曲线直接下单、或需要毫秒级实时推理的高频场景。

Kronos 把"原始数据 → token → 预测曲线"做成了可直接复用的管线,从 examples/prediction_example.py 和 finetune_csv/README_CN.md 两个入口就能开始上手。

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 10:00:07

UDS 0x3E服务用例设计与testbuddy自动化测试落地

网络诊断 0x3E 服务用例设计:从需求拆解到 testbuddy 自动化落地做网络诊断和 UDS 测试的同学,对 0x3E 服务应该都不陌生。这个服务负责会话切换,是整个诊断流程里被调用次数最多的服务之一。很多刚入门的测试工程师会问:0x3E 服务…

作者头像 李华
网站建设 2026/9/2 10:00:05

PDF转图片技术全解析:主流依赖库选型与Java实战指南

简介:本资源是面向开发者与PDF处理需求者的Poppler-0.68.0_x86依赖库完整包,专为在Windows平台实现PDF转图片(如PNG、JPEG)提供底层支持,适用于网页嵌入、文档预览、批量截图等实际场景。压缩包共58个文件,…

作者头像 李华
网站建设 2026/9/2 10:00:02

MATLAB实现CNN多输入回归预测:从数据预处理到模型部署全流程详解

简介:本资源是一套面向深度学习初学者与MATLAB工程实践者的CNN多输入回归预测完整实现方案,聚焦于利用卷积神经网络处理7维特征输入以预测连续型目标值,适用于时间序列建模、传感器融合分析、工业参数预测等实际回归场景。压缩包共7个文件&am…

作者头像 李华
网站建设 2026/9/2 9:58:19

STC8H1K28驱动三相无刷电机:低成本方波驱动方案详解

简介:本资源是基于STC8H1K28单片机实现三相无刷直流电机(BLDC)驱动的完整嵌入式开发工程,面向嵌入式初学者、电机控制爱好者及自动化方向工程师,解决无感与霍尔传感两类典型换相控制方案的落地实践问题。压缩包共18个文…

作者头像 李华
网站建设 2026/9/2 9:56:05

GC9A01圆形屏MicroPython驱动:从SPI接口到帧缓冲优化全解析

简介:本资源是一套经实测验证的MicroPython GC9A01 TFT显示屏驱动方案,专为ESP32平台开发者设计,面向物联网原型开发、嵌入式UI快速验证及教育实践等场景,有效解决SPI屏初始化复杂、时序难调、图形接口缺失等常见痛点。压缩包共25…

作者头像 李华
网站建设 2026/9/2 9:55:33

SolarAngle_V5.2实操:太阳方位角计算原理与光伏应用常见问题排查

简介:作为一款轻量级太阳方位角计算工具,SolarAngle V5.2面向测绘地理信息、建筑日照分析、光伏系统设计及农业气象等领域的从业者与学习者。程序利用地面点经纬度和时间参数,计算太阳天顶角与太阳方位角,并可通过天顶角间接获得太…

作者头像 李华