3行代码跑通Kronos股票预测:从安装到回测的K线分析实操路径
2026/9/13 7:36:32 网站建设 项目流程

3行代码跑通Kronos股票预测:从安装到回测的K线分析实操路径

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

Kronos 是一个开源、免费的金融 K 线基础模型:喂给它一段历史蜡烛图序列,它会输出未来每一期的开盘、最高、最低、收盘和成交量。本文面向不想自己训练模型、只想直接拿预训练权重做 K 线分析与股票预测的新手。

🚀💻 安装与运行:先看到预测图

仓库结构很扁平:model/放模型定义,examples/放可直接运行的脚本,装环境只需要三行命令。

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

依赖不重,核心就是 numpy、pandas 和 PyTorch。先加载官方预训练权重:

import pandas as pd from model import Kronos, KronosTokenizer, KronosPredictor df = pd.read_csv("tests/data/regression_input.csv") df["timestamps"] = pd.to_datetime(df["timestamps"]) tokenizer = KronosTokenizer.from_pretrained("NeoQuasar/Kronos-Tokenizer-base") model = Kronos.from_pretrained("NeoQuasar/Kronos-small") predictor = KronosPredictor(model, tokenizer, max_context=512)

这里直接用仓库tests/目录自带的样例 CSV(约 2500 根 5 分钟 K 线),换成任何一只股票的数据也行。接下来就是核心调用:

x_df = df.iloc[:400] x_ts = df["timestamps"].iloc[:400] y_ts = df["timestamps"].iloc[400:520] 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) print(pred_df.head())

predict返回一个 DataFrame:120 行对应未来 120 个周期,列是 open、high、low、close、volume、amount,数据加载、归一化、反归一化都替你做好了。不想写代码的话,仓库自带 Flask 网页界面:执行cd webui && python run.py后在浏览器打开 7070 端口即可,选模型规格、调采样参数、拖动时间窗口都是点选操作,预测曲线和实际 K 线也会画在一起。完整可跑脚本见 examples/prediction_example.py,只需按脚本提示把数据文件换成自己的。

🔍 它凭什么能做到:两级 K 线编码加自回归生成

先把 K 线压成离散编码

Kronos 不把原始数字直接喂给模型,而是用一个专门的 tokenizer(量化的编解码网络)把每根 K 线的开、高、低、收、量五维数据压成两级离散编码:一级位记录这根 K 线的粗形态,二级位补充细节。有点像写地址:先写省,再写门牌号,两级合起来才唯一定位到一个点。

再逐位"续写"未来

主模型是解码器结构的自回归 Transformer(和大语言模型同族),small、base 版的上下文上限是 512 根 K 线。它在 45 多个全球交易所的 K 线数据上预训练(官方文档),学的是"给定前文、续写后文"的分布。预测时逐位生成未来 token,再由 tokenizer 解码回具体价格,预测本质上就是一次"续写"。

上图是官方 README 里的整体架构:数据先经 tokenizer 压缩重建,再进入 Transformer 做续式预测。

📈📊 效果验证:预测曲线与回测收益

官方示例以 400 根 K 线为上下文预测接下来的 120 根,上图红色预测收盘线与真实走势基本贴合,下方图还给出了成交量的预测。

这是finetune/回测脚本在 A 股数据上的产出(官方文档):微调后的模型按预测涨跌幅打分,用简单的 top-K 选股策略与沪深 300 做对比。

目前开源的模型规格(官方 README):

模型参数量最大上下文
Kronos-mini4.1M2048
Kronos-small24.7M512
Kronos-base102.3M512

mini 参数最少、上下文反而最长;small、base 建议输入别超过 512 根,超出的部分 Predictor 会自动截断。批量预测时所有序列必须保持相同的回看长度和预测长度(官方文档)。

⚖️ 边界说明:能做什么与不能做什么

能做的

  • 单序列预测和多序列并行批量预测,批量模式走 GPU 并行
  • 同时输出开、高、低、收、量六个字段,缺成交量会自动补零
  • 用自己的数据微调,finetune/finetune_csv/提供两条流水线

不能做的

  • 不提供行情数据,数据源得自己接开源行情库或自备 CSV
  • 不是开箱即用的交易系统,官方 README 明确说 finetune 流程只是简化演示,非生产可用
  • 不直接输出买卖信号,预测价格到交易信号之间要自己加工

运行要求不高:Python 3.10+ 加 PyTorch,WebUI 支持 CPU、CUDA 和 MPS(Apple 芯片),普通笔记本跑 mini 规格就够用。数据格式是 CSV,必须含 open、high、low、close 四列加时间戳列,volume 可选。

几个常见问题的简答:

Q:没有显卡能跑吗?A:可以。用 4.1M 参数的 mini 版,CPU 推理单序列足够;有 GPU 时 small、base 会快很多。

Q:能预测多长的未来?A:代码里pred_len可以自定,WebUI 则固定为"回看 400、预测 120"的窗口。模型侧上下文上限是 512(mini 为 2048)。

Q:CSV 列名不一样会怎样?A:直接跑不通。列名必须是 open、high、low、close、volume、amount、timestamps,可参考仓库finetune_csv/data/下的样例文件。

Q:5 分钟级数据能微调吗?A:可以。finetune_csv/目录带全套脚本和一个港股 5 分钟 K 线样例,流程在其中的中文 README 有说明。

Kronos 的价值在于把"K 线预测"从自建模型和特征工程的项目,变成了加载权重、调两个函数的活。上述输出都属于统计信号,市场噪声很大,请把它当参考而不是买卖依据。脚本与数据样例在仓库examples/webui/目录里,微调细节可看 finetune_csv/README_CN.md。

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

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

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

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

立即咨询