☰
Kronos 金融 K 线预测:从 clone 到 120 根未来 K 线的 5 步实操手册
2026/10/14 3:14:10 网站建设 项目流程

Kronos 金融 K 线预测:从 clone 到 120 根未来 K 线的 5 步实操手册

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

Kronos 是一个专为金融 K 线(K-line)数据设计的开源基础模型:输入一段历史 OHLCV 序列,输出未来多个时间点的开高低收与成交量预测,而不是单点"涨/跌"判断。与通用时间序列模型不同,它先做金融数据专属的 tokenizer 离散化,再让自回归 Transformer 学习"续写 K 线",预训练数据覆盖全球 45 个以上交易所。

模型档位与能力矩阵

Kronos 以from_pretrained方式从 Hugging Face Hub 加载,模型家族按参数量分三档开源。各档差异只影响速度和上下文长度,不影响输入输出接口。

模型参数量上下文长度配套 Tokenizer适用场景
Kronos-mini4.1M2048Kronos-Tokenizer-2k低资源环境、快速验证
Kronos-small24.7M512Kronos-Tokenizer-base日常预测主力档位
Kronos-base102.3M512Kronos-Tokenizer-base追求更高预测质量
Kronos-large499.2M512未开源,仅论文参考未开源

硬件边界:mini 和 small 在普通 CPU 上也能完成单次预测,base 以及批量推理、微调训练建议直接上 GPU。

最小可运行闭环:从 clone 到第一张预测图

环境要求:Python 3.10+,核心依赖为 torch、pandas、huggingface_hub(完整清单见 requirements.txt)。

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

仓库自带一份 9.3 万行的 5 分钟 K 线样例(阿里巴巴港股 09988),不用自己准备数据,以下脚本可直接跑出预测图:

import pandas as pd 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) df = pd.read_csv("./finetune_csv/data/HK_ali_09988_kline_5min_all.csv") df['timestamps'] = pd.to_datetime(df['timestamps'], format='%Y/%m/%d %H:%M') x_df = df.loc[:399, ['open', 'high', 'low', 'close', 'volume', 'amount']] x_ts = df.loc[:399, 'timestamps'] y_ts = df.loc[400:519, 'timestamps'] pred_df = predictor.predict(df=x_df, x_timestamp=x_ts, y_timestamp=y_ts, pred_len=120, T=1.0, top_p=0.9, sample_count=1) print(pred_df.head())

输入约定:

  • df必须含open/high/low/close四列,缺volume时自动补 0,缺amount时用volume × 均价估算
  • x_timestamp为历史段时序,y_timestamp为待预测时段的时序,返回的pred_df按y_timestamp对齐
  • max_context=512:small/base 的最大上下文,输入更长会被自动截断
  • T(温度)、top_p(核采样)、sample_count(多条采样路径取平均)控制预测随机性,官方建议 T 取 1.2~1.5、top_p 取 0.95~1.0、样本 2~3 条

机制拆解:K 线是怎么被"续写"的

跑通之后再回头看原理,整个系统是两阶段流水线:先把 K 线翻译成离散 token,再让 Transformer 按语言模型方式预测下一个 token。

阶段一 Tokenizer:OHLCV 序列是连续、高噪声的,直接喂给 Transformer 很难学。Tokenizer 先用编码器压缩表示,再通过二值球面量化(BSQ)把每个时间点量化成"粗粒度 + 细粒度"两级子 token,解码器再重建出 K 线,量化保证了对原始数据的逼近,重建能力说明 token 确实保留了价格与成交量的关键信息。

阶段二 自回归 Transformer:拿到 token 序列后,因果 Transformer 按"给定历史、预测下一个 token"的方式预训练。每个 Transformer 块内部由多个 Intra-Block 组成,块之间通过共享参数和交叉注意力传递跨时间尺度信息;预测时按时间步逐点采样生成,解码回价格空间即完成"续写 K 线"。

核心实现分别在 model/module.py(BSQuantizer、Transformer 块)与 model/kronos.py(KronosTokenizer、Kronos、KronosPredictor三个可独立 import 的类)。

输出验证:预测与回测长什么样

第一张图是单资产预测样例:取 400 根 5 分钟 K 线为上下文,预测后续 120 根,蓝色为真实值、红色为模型预测,上方收盘价、下方成交量。

收盘价预测贴合了震荡后上行的趋势形态,成交量预测整体偏保守,捕捉了部分放量区间。需要说明:预测图展示的是短窗口的形态拟合,长周期点位的绝对准确度不能只看单张图下结论。

第二张图是官方 A 股 top-K 策略回测:上方为扣费后累计收益、下方为相对 CSI300 基准的累计超额收益,last/mean/max/min 对应不同采样路径,2024 年 10 月后策略曲线整体位于基准之上。

官方明确标注这条流水线是简化演示(top-K 选券 + 简单回测),并非生产级量化系统,真实使用还需叠加组合优化、风险因子中性化和交易成本建模。

扩展路径:批量推理、微调与模块复用

批量推理与 Web 界面

多资产场景用predict_batch:传入等长的 DataFrame 列表即可 GPU 并行推理,各序列独立归一化/反归一化,要求所有序列历史长度与pred_len一致。零代码体验则走内置 Web 界面(Flask + Plotly):cd webui && python run.py启动后访问http://localhost:7070,操作路径为:选择数据文件 → 选模型与设备(CPU/CUDA/MPS)→ 滑块拖动 400+120 数据点窗口 → 调 T/top_p/样本数 → 点击预测,结果页给出 K 线图、价差统计和误差分析。

微调

自带 CSV 微调管线,面向任意含timestamps/open/high/low/close/volume/amount列的 K 线数据:改一份 YAML 配置后一条命令顺序训练 tokenizer 和 predictor,多卡可加 torchrun 开 DDP。

python finetune_csv/train_sequential.py --config finetune_csv/configs/config_ali09988_candle-5min.yaml # 顺序训练 tokenizer + predictor python finetune_csv/train_sequential.py --config ...yaml --skip-tokenizer # 只训练 predictor python finetune_csv/train_sequential.py --config ...yaml --skip-existing # 跳过已存在检查点

A 股场景另有 Qlib 管线(数据切分 → 微调 Tokenizer → 微调 Predictor → 回测),流程见 finetune/ 目录,微调后的 09988 预测效果如下图:

模块复用做二次开发

三个核心类都是标准 PyTorch 模块,支持from_pretrained加载任意档位权重:KronosTokenizer可单独接入你自己的 K 线预处理,Kronos可直接替换进自研 pipeline,KronosPredictor封装了归一化/采样/反归一化,只想换推理后端时保留它即可。权重换档只需改from_pretrained的模型名,其余代码不动。

决策参考:你的场景走哪条路

场景描述推荐路径关键配置注意事项
拿 1 只票 30 分钟验证预测形态KronosPredictor.predict+ Cronos-mini/smallmax_context=512,T=1.2~1.5、top_p=0.95CPU 可跑,首次运行需联网下载权重
接入 50 只资产日级信号predict_batch+ 自有数据管道各序列等长历史窗口,pred_len一致必须 GPU;各序列独立归一化,注意对齐交易日历
用自有市场数据做领域适配finetune_csv顺序训练管线YAML 里设lookback_window/predict_window与数据路径先修好配置里的数据与预训练模型路径再启动
只复用量化或推理组件单独 importBSQuantizer/KronosTokenizer从 model/ 直接引用输入张量格式需与源码约定一致

选完路径后先用 1 只资产跑通端到端,再横向扩展到批量与微调,避免一上来就调训练超参。

边界与下一步

  • 做完首次predict调用 → 检查输出pred_df的 index 是否与y_timestamp对齐 → 若对不齐则检查时间戳是否连续、时区是否一致
  • 做完单点预测对比 → 检查收盘价趋势方向是否被捕捉 → 若偏差大则把sample_count提到 2~3、T 提到 1.2~1.5 再对比
  • 做完批量推理 → 检查各资产预测量级是否合理 → 若个别序列异常,优先核对该序列自身的缺失值与归一化窗口
  • 做完微调 → 用 finetune/qlib_test.py 或 webui 跑回测评估 → 若超额收益不稳定,回到配置检查训练/验证集切分比例

模型输出为统计意义上的预测信号,不构成投资建议;真实使用前请用自己的数据做充分回测验证。

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

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

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

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

立即咨询