# kronos-report **Repository Path**: liebin/kronos-report ## Basic Information - **Project Name**: kronos-report - **Description**: 基于 Kronos 金融大模型的 AI 量化预测报告生成工具(Python 版) - **Primary Language**: Python - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: https://gitee.com/liebin/ - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-06-12 - **Last Updated**: 2026-06-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: Python, kronos ## README # Kronos-Report 基于 Kronos 金融大模型的 AI 量化预测报告生成工具(Python 版) [![License: AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0) [![Python](https://img.shields.io/badge/Python-3.10+-blue.svg)](https://www.python.org/) ## 📖 项目简介 Kronos-Report 是一个基于 Kronos 金融时序大模型的 Python 量化预测工具,支持股票、基金、期货、指数等品种的 K 线数据预测,自动生成多格式分析报告和每日简报。同时提供 HTTP 模型服务,支持远程调用和多模型管理。 ## 🎯 Demo 预览 ### AI量化简报 AI量化简报每日自动生成,包含大盘预测、个股分析、量化提示等内容。 | 简报截图 | 在线预览 | |----------|----------| | ![AI量化简报 Demo](img/AI量化简报_demo.png) | [查看HTML版本](html/AI量化简报_demo.html) | ### AI预测报告 AI预测报告支持股票、基金、期货、指数等品种,包含K线图、趋势图、预测明细等。 | 报告截图 | 在线预览 | |----------|----------| | ![AI预测报告 Demo](img/AI预测报告_北证50_demo.png) | [查看HTML版本](html/AI预测报告_北证50_demo.html) | > **说明**:点击 HTML 链接可在浏览器中查看完整的交互式报告,截图仅供参考,实际报告内容动态生成。 ## ✨ 功能特性 ### 预测与报告 - ✅ 自动识别品种类型(股票/基金/期货/指数) - ✅ 自动判断交易所(上交所/深交所/北交所/期货交易所/指数中心) - ✅ **自动过滤期货指数合约**(品种代码+00,如 RB00、M00) - ✅ 支持多种模型组合(2k/base 分词器 + mini/small/base 模型) - ✅ 支持前复权/不复权数据 - ✅ 多格式报告输出(TXT、HTML、PNG、CSV、图表、JSON) - ✅ **单次回测验证**(多步预测,方向准确率、MAPE、综合评分) - ✅ 普通投资者友好版报告 ### 简报与定时任务 - ✅ **每日简报自动生成**(支持自选股 + 随机个股展示) - ✅ **全局模型复用**(单例模式,避免重复加载) - ✅ **多数据源支持**(本地文件 / TickFlow 免费服务) - ✅ 定时任务(每日自动生成简报) ### HTTP 模型服务 - ✅ **多模型管理**(最多支持 3 个模型同时加载) - ✅ **参数化预测**(支持 lookback、pred_len、t、top_p、sample_count) - ✅ **数据校验与修正**(自动修复违反约束的预测结果) - ✅ **模型热切换**(无需重启服务即可切换模型) - ✅ **健康检查**(服务状态监控) - ✅ **设备自动选择**(默认 auto,无需手动指定) ### 其他 - ✅ 完整的耗时统计 - ✅ 期货代码大小写自动修正 - ✅ 支持自定义预测参数 - ✅ 交易日历支持 ## 📦 环境要求 - Python 3.10+ - PyTorch 2.0+ - 其他依赖见 `requirements.txt` ## 🔧 安装 ```bash # 克隆项目 git clone https://gitee.com/liebin/kronos-report.git cd kronos-report # 安装依赖 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple ``` ## 🚀 使用说明 ### 一、单次预测(完整报告) ```bash # 股票 python predictor.py --code 000001 # 期货(自动排除指数合约) python predictor.py --code RB2505 # 股指 python predictor.py --code zs_000001 # 自定义参数 python predictor.py --code 000001 --lookback 256 --pred-len 10 --model small # 不复权 python predictor.py --code 000001 --no-adjusted ``` ### 二、JSON 数据报告(纯数据格式) ```bash # 生成JSON报告(不生成图表和回测) python predictor.py --code 000001 --json # 只打印JSON到控制台,不保存文件 python predictor.py --code 000001 --json --no-save # 带自定义参数 python predictor.py --code 000001 --json --lookback 256 --pred-len 10 --verbose # 不复权JSON报告 python predictor.py --code 000001 --json --no-adjusted ``` ### 三、每日简报 ```bash # 生成简报(精简模式) python predictor.py --briefing # 生成简报(详细模式) python predictor.py --briefing -v ``` ### 四、定时任务 ```bash # 启动定时任务(每日19:30生成简报) python predictor.py --scheduler # 自定义时间 python predictor.py --scheduler --scheduler-hour 20 --scheduler-minute 0 # 停止定时任务 python predictor.py --scheduler-stop ``` ### 五、HTTP 模型服务 #### 启动服务 ```bash # 方式一:使用启动脚本 ./start_server.sh # 方式二:直接运行 python server.py --host 0.0.0.0 --port 16888 --preload # 方式三:开发模式(热重载) python server.py --host 0.0.0.0 --port 16888 --reload ``` #### 服务端点 | 方法 | 端点 | 说明 | |------|------|------| | GET | `/health` | 健康检查 | | POST | `/models/load` | 加载模型 | | POST | `/models/switch` | 切换模型 | | GET | `/models/list` | 列出已加载模型 | | POST | `/models/unload` | 卸载模型 | | POST | `/predict` | 执行预测 | | GET | `/params/default` | 获取默认参数 | 详细接口参数说明请参考 [HTTP_API.md](HTTP_API.md) #### 快速测试 ```bash # 健康检查 curl http://localhost:16888/health # 加载模型 curl -X POST http://localhost:16888/models/load \ -H "Content-Type: application/json" \ -d '{"tokenizer":"2k","model":"mini"}' # 预测 curl -X POST http://localhost:16888/predict \ -H "Content-Type: application/json" \ -d '{"code":"000001"}' # 指定模型预测 curl -X POST http://localhost:16888/predict \ -H "Content-Type: application/json" \ -d '{"code":"000001","tokenizer":"2k","model":"small"}' # 不复权预测 curl -X POST http://localhost:16888/predict \ -H "Content-Type: application/json" \ -d '{"code":"000001","adjusted":false}' ``` ## 📁 项目结构 ``` kronos-report-python/ ├── README.md # 中文说明文档 ├── README.en.md # 英文说明文档 ├── HTTP_API.md # HTTP 服务接口文档 ├── LICENSE # AGPL-3.0 开源协议 ├── requirements.txt # 依赖列表 ├── start_server.sh # HTTP服务启动脚本 ├── stop_server.sh # HTTP服务停止脚本 ├── restart_server.sh # HTTP服务重启脚本 ├── status_server.sh # HTTP服务状态检查 ├── img/ # 图片资源目录 │ ├── AI量化简报_demo.png # 简报截图 │ ├── AI预测报告_北证50_demo.png # 报告截图 │ └── author_qrcode.jpg # 作者微信二维码 ├── html/ # HTML Demo 目录 │ ├── AI量化简报_demo.html # 简报HTML Demo │ └── AI预测报告_北证50_demo.html # 报告HTML Demo └── src/ # 源代码目录 ├── config/ # 统一配置模块 ├── server.py # HTTP 服务入口 ├── predictor.py # 主程序入口 ├── model_manager.py # 全局模型管理器 ├── predictor_core/ # 预测核心模块 ├── trade_calendar.py # 交易日历 ├── data/ # 统一数据服务模块 ├── report/ # 报告生成模块 ├── briefing/ # 每日简报生成模块 ├── templates/ # HTML模板 └── model/ # Kronos 模型目录 ``` ## 📊 模型配置 ### 分词器(TOKENIZER) | 参数值 | 上下文长度 | 特点 | 适用场景 | |--------|------------|------|----------| | `2k` | 2048 | 精度高 | 高频交易、加密货币 | | `base` | 512 | 速度快 | 股票/期货、快速验证 | ### 预测模型(MODEL) | 参数值 | 参数量 | 速度 | 适用场景 | |--------|--------|------|----------| | `mini` | 4.1M | 最快 | 资源受限场景 | | `small` | 24.7M | 较快 | 专业量化(推荐) | | `base` | 102.3M | 较慢 | 机构级精度 | ## 📝 命令行参数 ### 预测模式参数 | 参数 | 默认值 | 说明 | |------|--------|------| | `--code, -c` | 必填 | 代码(预测模式必填) | | `--start-date, -s` | 无 | 开始日期 YYYYMMDD | | `--end-date, -e` | 无 | 结束日期 YYYYMMDD | | `--pred-len, -p` | 5 | 预测步数 | | `--lookback, -l` | 512 | 回溯窗口长度 | | `--t` | 0.6 | 温度参数 | | `--top-p` | 0.8 | 核采样参数 | | `--sample-count` | 5 | 采样次数 | | `--tokenizer` | 2k | 分词器类型 | | `--model, -m` | mini | 模型类型 | | `--device, -d` | auto | 运行设备 | | `--no-save` | False | 不保存文件 | | `--adjusted` | True | 前复权(默认启用) | | `--no-adjusted` | False | 不复权 | | `--json` | False | 生成JSON数据报告 | | `--verbose, -v` | False | 输出详细日志 | ### 简报模式参数 | 参数 | 默认值 | 说明 | |------|--------|------| | `--briefing` | False | 生成每日简报 | | `--verbose, -v` | False | 输出详细日志 | ### 定时任务参数 | 参数 | 默认值 | 说明 | |------|--------|------| | `--scheduler` | False | 启动定时任务 | | `--scheduler-stop` | False | 停止定时任务 | | `--scheduler-hour` | 19 | 定时任务小时 | | `--scheduler-minute` | 30 | 定时任务分钟 | ## 📂 输出目录结构 ``` /home/liebin/dev/data/report/ ├── AI预测/ # 预测报告 │ └── {日期}/{名称}/{tokenizer}_{model}_{lookback}/ │ ├── AI预测报告_{名称}_{日期}.html │ ├── AI预测报告_{名称}_{日期}.txt │ ├── AI预测报告_{名称}_{日期}.png │ ├── AI预测报告_{名称}_{日期}.json │ ├── {名称}_chart_{日期}.png │ ├── {名称}_trend_{日期}.png │ └── {名称}_backtest_{日期}.png └── AI简报/ # 每日简报 └── {日期}/ ├── AI量化简报_{日期}.html ├── AI量化简报_{日期}.txt └── AI量化简报_{日期}.png ``` ## 📊 JSON 报告格式 ```json { "code": "000001", "name": "平安银行", "timestamp": "2026-06-11T15:30:00", "last_trade_date": "2026-06-10", "model": "2k_mini", "lookback": 512, "pred_len": 5, "adjusted": true, "summary": { "current_price": 11.20, "predicted_price": 11.35, "change_pct": 1.34, "trend": "看涨 📈", "low": 11.10, "high": 11.50 }, "recent": [ { "d": "2026-06-04", "o": 11.05, "h": 11.15, "l": 11.00, "c": 11.10, "v": 1000000, "a": 11100000 } ], "predicted": [ { "d": "2026-06-11", "o": 11.22, "h": 11.38, "l": 11.15, "c": 11.30, "v": 1020000, "a": 11500000 } ] } ``` ### 字段说明 | 字段 | 类型 | 说明 | |------|------|------| | `code` | string | 代码 | | `name` | string | 名称 | | `timestamp` | string | 报告生成时间 | | `last_trade_date` | string | 最后交易日 | | `model` | string | 使用的模型标识 | | `lookback` | int | 回溯窗口长度 | | `pred_len` | int | 预测步数 | | `adjusted` | boolean | 是否前复权 | | `summary` | object | 预测摘要 | | `recent` | array | 最近30个交易日K线 | | `predicted` | array | 未来N个交易日预测K线 | ### K线字段缩写对照 | 缩写 | 全称 | 说明 | |------|------|------| | `d` | date | 日期 | | `o` | open | 开盘价 | | `h` | high | 最高价 | | `l` | low | 最低价 | | `c` | close | 收盘价 | | `v` | volume | 成交量 | | `a` | amount | 成交额 | ## 🔧 配置说明 项目配置统一在 `src/config/` 目录下管理: | 文件 | 说明 | |------|------| | `settings.py` | 用户可修改配置(路径、参数、数据源、简报等) | | `common.py` | 字典映射配置(模型映射、交易所规则等,很少改动) | ### settings.py 常用配置 以下是 `src/config/settings.py` 中常用的可修改配置: #### 1. 数据源配置 ```python # 数据源类型: local(本地txt), tickflow(TickFlow免费服务) DATA_SOURCE = "tickflow" # 可选: local, tickflow ``` | 值 | 说明 | |----|------| | `local` | 使用本地 CSV 文件获取数据 | | `tickflow` | 使用 TickFlow 免费服务获取数据(推荐) | #### 2. 路径配置 ```python # K线数据根目录 DATA_ROOT = "/home/liebin/dev/data/code/d/" # 最新交易日数据根目录 LAST_DATA_ROOT = "/home/liebin/dev/data/last" # 报告输出根目录 REPORT_ROOT = "/home/liebin/dev/data/report/AI预测" BRIEFING_ROOT = "/home/liebin/dev/data/report/AI简报" ``` #### 3. 预测默认参数 ```python DEFAULT_LOOKBACK = 512 # 回溯窗口长度 DEFAULT_PRED_LEN = 5 # 预测步数 DEFAULT_T = 0.6 # 温度参数(控制随机性) DEFAULT_TOP_P = 0.8 # 核采样参数 DEFAULT_SAMPLE_COUNT = 5 # 采样次数 ``` #### 4. 模型默认配置 ```python DEFAULT_TOKENIZER = "2k" # 分词器类型: 2k / base DEFAULT_MODEL = "mini" # 模型类型: mini / small / base DEFAULT_DEVICE = "auto" # 设备: auto / cuda / cpu / mps ``` #### 5. HTTP 服务配置 ```python HTTP_HOST = "0.0.0.0" # 服务地址 HTTP_PORT = 16888 # 服务端口 MAX_MODELS = 3 # 最多同时加载的模型数量 ``` #### 6. 简报配置 ```python # 股指代码(简报中展示的指数) INDEX_CODES = [ "zs_000001", # 上证指数 "zs_399001", # 深证成指 "zs_399006", # 创业板指 "zs_899050", # 北证50 ] # 自选个股代码(优先展示) STOCK_CODES = [] # 例如: ["000001", "600519", "510050"] # 随机获取配置 RANDOM_STOCK_COUNT = 10 # 随机股票数量 RANDOM_FUND_COUNT = 2 # 随机基金数量 # 相对大盘参照指数 BENCHMARK_INDEX = "zs_000001" # 用于判断个股强弱 # 简报预测参数 BRIEFING_LOOKBACK = 512 BRIEFING_PRED_LEN = 5 BRIEFING_TOKENIZER = "2k" BRIEFING_MODEL = "mini" ``` #### 7. 定时任务配置 ```python DEFAULT_CRON_HOUR = 19 # 定时任务小时 DEFAULT_CRON_MINUTE = 30 # 定时任务分钟 ``` #### 8. 回测参数 ```python DEFAULT_BACKTEST_PRED_LEN = 30 # 回测预测步数 ``` ### 配置优先级 | 优先级 | 来源 | 说明 | |:------:|------|------| | 1 | 命令行参数 | `--pred-len 10` | | 2 | 配置文件 | `settings.py` 中的默认值 | | 3 | 代码内置 | 硬编码的备用值 | ## 🧪 运行测试 ```bash # HTTP 服务测试 python server_test.py --action health python server_test.py --action load --tokenizer 2k --model mini python server_test.py --action list python server_test.py --action predict --code 000001 ``` ## 📄 开源协议 本项目采用 **AGPL-3.0** 协议。 ## 💬 技术支持与服务 如果您在使用过程中遇到问题,或者需要以下技术服务,欢迎联系作者: - 🤖 **AI 客服系统开发**:智能问答、自动回复、多渠道接入 - 🧠 **大模型应用开发**:模型微调、Prompt 工程、RAG 系统 - 💻 **软件开发**:Java&Python 后端、量化系统、数据处理 - 📈 **量化策略开发**:因子挖掘、回测系统、实盘对接 - 🔧 **定制化开发**:根据需求定制 AI 量化解决方案 作者微信二维码 **微信扫码添加作者,备注来意即可** *添加时请备注“Kronos咨询”或具体需求,以便更快响应* ## ⚠️ 免责声明 本工具生成的预测结果由 AI 模型生成,只作为个人研究学习用途,不构成投资建议。市场有风险,投资需谨慎。 ```