公司动态
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.1Mmini到 102.3Mbase三档配合两套完整微调流程Qlib 数据管线和 CSV 数据管线可以按显存和数据形态自选最小可运行示例从安装到第一条预测曲线先克隆仓库并安装依赖需要 Python 3.10依赖只有 numpy、pandas、torch2.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_context512)第三步准备历史 K 线数据并发起预测代码取自 examples/prediction_example.pydf 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( dfx_df, x_timestampdf.loc[:lookback-1, timestamps], y_timestampdf.loc[lookback:lookbackpred_len-1, timestamps], pred_lenpred_len, T1.0, top_p0.9, sample_count1)返回的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_list、x_timestamp_list、y_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_path、lookback_window、predict_window后一条命令顺序训练 tokenizer 和 predictorcd finetune_csv python train_sequential.py --config configs/config_ali09988_candle-5min.yaml结果checkpoint 分别保存到{exp_name}/tokenizer/best_model/和{exp_name}/basemodel/best_model/。仓库自带港股阿里巴巴099885 分钟 K 线的微调配置和预测图可参考 finetune_csv/README_CN.md。多卡时可加torchrun --standalone --nproc_per_nodeN启用 DDP。A 股 Qlib 微调与回测闭环场景你希望用 Qlib 体系的 A 股日线数据完成数据准备 → 微调 → 回测的完整闭环。用法先pip install pyqlib并按 Qlib 官方指南备好数据改好 finetune/config.py 里的路径后依次执行python finetune/qlib_data_preprocess.py torchrun --standalone --nproc_per_node2 finetune/train_tokenizer.py torchrun --standalone --nproc_per_node2 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 线 CSVtimestamps/open/high/low/close必填volume/amount可选放到该位置或修改脚本里的读取路径。为什么输入了 1000 根 K 线模型却只用到最后 512 根Kronos-small 和 Kronos-base 的上下文固定为 512KronosPredictor对超过max_context的历史会自动截断建议lookback不超过 512。如果确实需要更长上下文可换 Kronos-mini上下文 2048仅 4.1M 参数。数据里没有成交量和成交额列怎么办predict在缺少volume或amount列时会自动补 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),仅供参考