Kronos 开源 K 线预测模型:日线回测与分钟级预测实践

发布时间:2026/9/12 15:17:19
Kronos 开源 K 线预测模型:日线回测与分钟级预测实践 Kronos 开源 K 线预测模型日线回测与分钟级预测实践【免费下载链接】KronosKronos: A Foundation Model for the Language of Financial Markets项目地址: https://gitcode.com/GitHub_Trending/kronos14/KronosKronos 是一个开源的 K 线基础模型也是目前少见的、专门针对股票预测这类金融序列任务从零训练的 decoder-only 模型它把 K 线的 OHLCV 数据转成离散 Token 序列再用自回归 Transformer 生成未来若干步的价格与成交量。它要解决的核心问题是给一段历史 K 线输出一条带时间戳的完整预测序列而不是单一数字。使用者大致是三类做日线因子研究的量化从业者、需要分钟级短周期预测的日内交易者以及想批量扫描整个股票池的人。它不是交易软件输出的是原始预测信号后续怎么用需要你自己接策略。Kronos 技术总览分词器先把连续 OHLCV 数据量化为分层 Token再由自回归 Transformer 逐步生成未来 K 线来源仓库 README三类典型用法日线级别finetune/目录给了完整示例用 Qlib 拉取 CSI300 成分股日线以 90 个交易日为回看窗口、预测未来 10 日模型输出次日到第 10 日的收盘价变化作为选股信号。分钟级finetune_csv/目录展示了另一条路在阿里巴巴09988.HK的 5 分钟 K 线上微调配置里回看窗口 512 根、预测 48 根约 4 小时仓库examples/下也附带了单只 A 股 5 分钟 K 线、回看 400 根预测 120 根的脚本。批量预测KronosPredictor提供predict_batch接口一次并行处理多只标的。硬约束是所有序列的历史长度和预测长度必须一致成交量和成交额列缺失时自动补零。Kronos 在阿里巴巴 5 分钟 K 线上微调后的预测结果上方为价格下方为成交量来源finetune_csv 示例输出K 线 Token 化与因果自回归是怎么做的model/kronos.py里把流程分成了两段。第一段是 Tokenizer编码器 Transformer 把每一根 K 线的六个维度开高低收、成交量、成交额压成一个向量交给二进制球面量化器BSQuantizer量化再拆成 pre 和 post 两段位串。这其实是先定轮廓、再补细节的层级表示类似视频编码里先用 I 帧定整体、再用 P 帧补差量pre 段决定这步 K 线大致长什么样post 段补回更细的价格和量能。第二段是自回归解码。解码器逐位置生成 pre 码再用一个依赖感知层条件化出 post 码采样过程带温度、top-k、top-p 控制sample_count条路径独立生成后取均值压掉单次采样的随机性。整个生成只向右看预测第 t 步时上下文窗口max_contextsmall/base 为 512mini 可到 2048只包含 t 之前的 Token超出的历史自动截断。价格进模型前按自身窗口做归一化并裁剪到 ±5输出再反归一化还原所以它不需要外部特征工程。回测收益怎么看累计收益、超额收益与成本口径CSI300 日线回测上图含成本累计收益下图为对应累计超额收益虚线为 CSI300 基准来源finetune 回测示例输出这张图出自finetune/qlib_test.py的演示回测口径在仓库里可以逐行核对数据是 Qlib 的 CSI300 日线训练段 2011–2022回测段 2024-07-01 至 2025-06-05策略是 TopkDropout持仓 50 只、每期调出 5 只、最短持有 5 天交易所按开盘价成交买入成本 0.1%、卖出成本 0.15%即两条曲线都是扣费之后的。图中四条曲线对应四种选股信号预测区间内最后收盘价变化 last、均值 mean、最大 max、最小 min 减去当日收盘价。读法是两层上图各信号线整体压在基准之上min 信号末值约 0.30基准约 0.15下图超额收益全程基本为正min 与 max 信号末值约 0.12 至 0.15last 约 0.085。需要强调的是这是单市场、单一简单策略的演示README 自己写明它不是生产级系统数字不能直接外推到别的股票池或时段。跑通第一个预测示例的最短路径git clone https://gitcode.com/GitHub_Trending/kronos14/Kronos pip install -r requirements.txtpredictor KronosPredictor(model, tokenizer, max_context512) pred_df predictor.predict(dfx_df, x_timestampx_ts, y_timestampy_ts, pred_len120, T1.0, top_p0.9)完整可运行脚本在examples/prediction_example.py本地起图形界面看结果可进webui/目录执行python run.py访问本机 7070 端口。参数上有三个要点pred_len是未来步数T与top_p控制采样随机性温度越高路径越发散sample_count建议取 2–3多条路径平均比单条稳定。输入 CSV 至少要有 open/high/low/close 四列volume、amount 可缺。Kronos-mini 只有 4.1M 参数、CPU 也能跑small 24.7M、base 102.3M 更适合 GPU。边界与微调入口它输出原始信号而非指令finetune/的 README 明确说生产级流程要把信号再喂进组合优化、做风险因子中性化回测还要计滑点与市场冲击演示里都没做。微调入口有两条A 股 Qlib 流程按配finetune/config.py→ 预处理数据 → 分别训 tokenizer 和 predictor → 回测走自定义 CSV 走finetune_csv/YAML 里改数据路径和窗口即可多卡可用 torchrun 起分布式训练。采样本质是随机过程同一输入多次运行结果不同想稳就加大sample_count取均值而不是指望单次输出。模型谱系里 Kronos-large约 499M 参数未开源能拿到的最大是 base预训练覆盖 45 个交易所但换市场后分布会偏移是否有效以自己的微调回测为准。Kronos 的论文已被 AAAI 2026 接收仓库为 MIT 协议model/、finetune/、finetune_csv/三块代码结构清晰评估口径也全部公开适合作为起点直接复用。项目仓库https://gitcode.com/GitHub_Trending/kronos14/Kronos【免费下载链接】KronosKronos: A Foundation Model for the Language of Financial Markets项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考