
Kronos K线基础模型完整实战指南从K线数据到股价预测只需10分钟【免费下载链接】KronosKronos: A Foundation Model for the Language of Financial Markets项目地址: https://gitcode.com/GitHub_Trending/kronos14/KronosKronos是首个开源的金融K线蜡烛图基础模型它把你的OHLCV K线数据量化成离散token再用自回归方式预测未来K线。读完本文你能用几行Python跑通任意标的未来120根五分钟收盘价预测。原理速览K线为什么能被当成语言来预测Kronos的思路可以这么理解tokenizer像一本字典把每根K线的开高低收量翻译成几个字层次化离散token自回归Transformer则像一个语言模型从45个以上交易所的K线序列里学句法。相比通用时间序列模型它专门面向高噪声的K线数据短期趋势的刻画更稳。看图中两段式结构左侧把连续OHLCV量化为token右侧是Transformer在token序列上做自回归预训练。环境怎么装克隆仓库加一条pip命令需要Python 3.10三步搞定git clone https://gitcode.com/GitHub_Trending/kronos14/Kronos cd Kronos pip install -r requirements.txt跑通第一次预测准备输入、生成、验证输出这节分三步走每步结尾都告诉你跑成功后该看到什么照着自查。以下代码都在仓库根目录执行数据直接用仓库自带的港股09988五分钟K线CSV9万多行换成你自己的数据时只需改路径。第一步准备输入数据predict需要三个输入历史K线DataFrameopen/high/low/close必备volume/amount可选、历史时间戳、未来时间戳。import pandas as pd from model import Kronos, KronosTokenizer, KronosPredictor # 加载预训练模型24.7M参数上下文长度512 tokenizer KronosTokenizer.from_pretrained(NeoQuasar/Kronos-Tokenizer-base) model Kronos.from_pretrained(NeoQuasar/Kronos-small) # 读取仓库自带的五分钟K线数据 df pd.read_csv(finetune_csv/data/HK_ali_09988_kline_5min_all.csv) df[timestamps] pd.to_datetime(df[timestamps]) lookback 400 # 历史窗口长度建议不超过512 pred_len 120 # 要预测的K线数量 x_df df.loc[:lookback-1, [open, high, low, close, volume, amount]] x_timestamp df.loc[:lookback-1, timestamps] y_timestamp df.loc[lookback:lookbackpred_len-1, timestamps]跑成功后不报错x_df是400行6列的DataFramey_timestamp长度120且与历史区间无重叠。第二步跑一次预测predict内部自动完成归一化、采样和反归一化。你只需要定采样参数T控制随机性top_p是核采样概率sample_count是取几条独立预测路径求平均。# max_context须与模型上下文一致small对应512 predictor KronosPredictor(model, tokenizer, max_context512) pred_df predictor.predict( dfx_df, x_timestampx_timestamp, y_timestampy_timestamp, pred_lenpred_len, T1.0, # 采样温度越低越保守 top_p0.9, # 核采样概率 sample_count1, verboseTrue )跑成功后终端打印采样进度verboseTrue并生成pred_df这个DataFrame行数等于120。第三步验证输出pred_df以你传入的y_timestamp为索引含open/high/low/close/volume/amount六列。把它和真实数据叠在一张图上就能直观核对预测质量。import matplotlib.pyplot as plt print(pred_df.head()) # 先看前5根预测K线 # 实际与预测收盘价叠图左400根为历史右120根为预测段 fig, ax plt.subplots(figsize(8, 4)) ax.plot(df.loc[:lookbackpred_len-1, close], labelActual) ax.plot(pred_df[close], labelPrediction) ax.legend(); ax.grid(True) plt.show()跑成功后弹出一个双曲线图左段400根为历史右段120根为预测两条线在交界处连续。官方示例的效果图如下上半张看收盘价对比蓝为实际、红为预测下半张是成交量对比重点看预测段起点附近的走势衔接。进阶玩法批量预测与CSV微调 批量预测多个标的一次要给一组股票做预测时别写for循环用predict_batchGPU并行推理输出顺序与输入一一对应。硬约束有三条各序列历史长度相同、pred_len相同、都含open/high/low/close。完整写法见 examples/prediction_batch_example.py。在自己的CSV数据上微调想针对某个标的提升效果用 finetune_csv 目录的流水线。数据只需是含timestamps/open/high/low/close/volume/amount七列的CSVvolume和amount可全0。先改 configs/config_ali09988_candle-5min.yaml 里的数据路径和预训练模型路径再执行python train_sequential.py --config configs/config_ali09988_candle-5min.yaml它会依次训练tokenizer和predictor。参数说明见 finetune_csv/README_CN.md。真实案例港股09988五分钟K线微调这个案例是仓库官方给出的微调结果数据为09988的93,913根五分钟K线2019年11月起。关键参数取值依据lookback_window: 512取满模型最大上下文不浪费历史信息predict_window: 48对应一个交易日的K线数tokenizer训练30轮、predictor训练20轮predictor学习率设1e-6比tokenizer的2e-4小两个数量级——因为是从预训练权重微调学习率太大会破坏已有表征。看预测段右侧红色预测曲线与蓝色实际K线走势同量级、拐点大体对齐偏离集中在极端波动处。结论微调后的预测曲线能跟上短期趋势拐点但极端点仍有明显偏差适合作为信号参考不适合直接当交易指令。常见报错与效果偏差怎么排查显存OOMKronos-base102.3M显存占用高显存不够时换Kronos-mini4.1M或small24.7M并减小lookback。lookback超过512predictor会自动截断但你会白白丢掉最相关的历史把lookback控制在512以内。预测曲线抖动太大把sample_count调到5以上对多条路径求平均同时把T降到0.7左右抑制采样随机性。数据没有volume/amount列这两列可缺省缺失时自动补0无成交量数据的写法参考 examples/prediction_wo_vol_example.py。首次运行极慢from_pretrained首次会从Hugging Face下载模型权重属正常现象第二次起走本地缓存。Kronos能做什么不能做什么Kronos的价值在于把K线预测从从零训练一个模型变成加载预训练权重、喂数据、出预测且微调、回测脚本齐全。但它的输出是概率采样而非确定性结果接入策略前你仍需要做信号过滤、仓位管理和止损。模型核心实现model/kronos.pyCSV微调完整文档finetune_csv/README_CN.md【免费下载链接】KronosKronos: A Foundation Model for the Language of Financial Markets项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考