# kronos-report-java **Repository Path**: liebin/kronos-report-java ## Basic Information - **Project Name**: kronos-report-java - **Description**: 基于 Kronos 金融大模型的 AI 量化预测报告生成工具(Java 版) - **Primary Language**: Java - **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-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: kronos, Java ## README # Kronos-Report-Java 基于 Kronos 金融大模型的 AI 量化预测报告生成工具(Java 版) [![License: AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0) [![Java](https://img.shields.io/badge/Java-17+-blue.svg)](https://www.oracle.com/java/) ## 📖 项目简介 Kronos-Report-Java是一个基于 Kronos 金融时序大模型的 Java 量化预测工具,支持股票、基金、期货、指数等品种的 K 线数据预测,自动生成多格式分析报告和每日简报。支持多种模型推理方式(HTTP、ONNX Runtime、DJL),提供统一的数据服务接口。 ## ✨ 功能特性 ### 预测与报告 - ✅ 自动识别品种类型(股票/基金/期货/指数) - ✅ 自动判断交易所(上交所/深交所/北交所/期货交易所/指数中心) - ✅ **自动过滤期货指数合约**(品种代码+00,如 RB00、M00) - ✅ 支持多种模型组合(2k/base 分词器 + mini/small/base 模型) - ✅ 支持前复权/不复权数据 - ✅ 多格式报告输出(TXT、HTML、PNG、PDF、CSV、图表、JSON) - ✅ 滚动回测验证(方向准确率、MAPE) - ✅ **快速回测**(使用最近 N 个交易日验证模型效果) - ✅ **回测数据 CSV 导出**(记录预测 OHLCV 与真实数据对比) - ✅ 普通投资者友好版报告 ### 每日简报 - ✅ **每日简报自动生成**(支持自选股 + 热门个股排行) - ✅ **自选股优先展示**(自选股排在热门股前面) - ✅ **全局模型复用**(避免重复加载,提升性能) - ✅ 定时任务(每日自动生成简报) - ✅ 公众号推广模块(二维码、订阅说明、点赞打赏) ### 模型推理 - ✅ **多模型管理**(最多支持 3 个模型同时加载) - ✅ **参数化预测**(支持 lookback、pred_len、t、top_p、sample_count) - ✅ **模型热切换**(无需重启服务即可切换模型) - ✅ 三种推理引擎:HTTP、ONNX Runtime、DJL - ✅ **设备自动选择**(默认 auto,无需手动指定) ### 数据服务 - ✅ **统一数据服务接口**(支持本地文件和 HTTP 网关双数据源) - ✅ **数据来源自动切换**(通过配置 `DATA_SOURCE` 切换) - ✅ **名称映射**(股票、基金、期货、指数名称自动获取) - ✅ **最后交易日数据**(热门排行、根据代码查询) - ✅ **前复权计算**(基于分红送股 JSON 文件) - ✅ **交易日历**(节假日加载、交易日判断) - ✅ **期货代码大小写自动修正** ## 📦 环境要求 - JDK 17+ - Maven 3.6+ ## 🔧 安装与编译 ```bash # 克隆项目 git clone https://gitee.com/liebin/kronos-report.git cd kronos-report # 编译打包 mvn clean package # 安装到本地仓库 mvn install ``` ## 🚀 使用说明 ### 单次预测(完整报告) ```bash # 股票 java -jar target/kronos-report-1.0.0.jar --code 000001 # 期货(自动排除指数合约) java -jar target/kronos-report-1.0.0.jar --code RB2505 # 股指 java -jar target/kronos-report-1.0.0.jar --code zs_000001 # 自定义参数 java -jar target/kronos-report-1.0.0.jar --code 000001 --lookback 256 --pred-len 10 --model small # 不复权 java -jar target/kronos-report-1.0.0.jar --code 000001 --no-adjusted ``` ### JSON 数据报告(纯数据格式) ```bash # 生成JSON报告(不生成图表和回测) java -jar target/kronos-report-1.0.0.jar --code 000001 --json # 只打印JSON到控制台,不保存文件 java -jar target/kronos-report-1.0.0.jar --code 000001 --json --no-save # 带自定义参数 java -jar target/kronos-report-1.0.0.jar --code 000001 --json --lookback 256 --pred-len 10 --verbose # 不复权JSON报告 java -jar target/kronos-report-1.0.0.jar --code 000001 --json --no-adjusted ``` ### 每日简报 ```bash # 生成简报(精简模式) java -jar target/kronos-report-1.0.0.jar --briefing # 生成简报(详细模式) java -jar target/kronos-report-1.0.0.jar --briefing -v ``` ### 定时任务 ```bash # 启动定时任务(每日19:30生成简报) java -jar target/kronos-report-1.0.0.jar --scheduler # 自定义时间 java -jar target/kronos-report-1.0.0.jar --scheduler --scheduler-hour 20 --scheduler-minute 0 # 停止定时任务 java -jar target/kronos-report-1.0.0.jar --scheduler-stop ``` ## 📁 项目结构 ``` kronos-report/ ├── pom.xml ├── README.md ├── README.en.md ├── LICENSE └── src/main/java/cn/tsquant/invest/util/kronos/ ├── KronosPredictor.java # 主入口 ├── config/ # 配置模块 │ └── KronosConfig.java ├── core/ # 模型推理核心 │ ├── ModelPredictor.java │ ├── ModelPredictorFactory.java │ ├── HttpModelPredictor.java │ ├── OnnxModelPredictor.java │ ├── DjlModelPredictor.java │ ├── PredictorWrapper.java │ ├── ModelConfig.java │ ├── ModelManager.java │ ├── ModelInstance.java │ ├── PredictRequest.java │ └── PredictResponse.java ├── data/ # 数据服务模块 │ ├── DataService.java │ ├── DataServiceFactory.java │ ├── bo/ # 业务对象 │ │ ├── AssetInfo.java │ │ ├── EquityItem.java │ │ ├── FuturesInfo.java │ │ ├── FuturesParsed.java │ │ ├── KLine.java │ │ └── TradeDates.java │ ├── gateway/ # HTTP网关实现 │ │ └── GatewayDataService.java │ └── local/ # 本地文件实现 │ ├── LocalDataService.java │ ├── LastDayDataLoader.java │ ├── Mappings.java │ └── ForwardAdjusted.java ├── report/ # 报告生成模块 │ ├── Backtest.java │ ├── ChartGenerator.java │ ├── TxtReport.java │ ├── HtmlReport.java │ ├── ImageReport.java │ └── JsonReport.java ├── briefing/ # 每日简报模块 │ ├── BriefingConfig.java │ ├── BriefingGenerator.java │ ├── HtmlBriefing.java │ └── TxtBriefing.java └── utils/ # 工具类 ├── TradeDateUtils.java ├── TradeCalendar.java ├── CodeUtils.java ├── CsvLoader.java ├── AdjustedUtils.java ├── FileUtils.java └── TypeUtils.java ``` ## 📝 命令行参数 | 参数 | 默认值 | 说明 | |------|--------|------| | `--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数据报告 | | `--briefing` | false | 生成每日简报 | | `--verbose, -v` | false | 输出详细日志 | | `--scheduler` | false | 启动定时任务 | | `--scheduler-stop` | false | 停止定时任务 | ## 📂 输出目录结构 ``` /home/liebin/dev/data/report/ ├── AI预测/ # 预测报告 │ └── {日期}/{名称}/{tokenizer}_{model}_{lookback}/ │ ├── AI预测报告_{名称}_{日期}.html │ ├── AI预测报告_{名称}_{日期}.txt │ ├── AI预测报告_{名称}_{日期}.png │ ├── AI预测报告_{名称}_{日期}.pdf │ ├── AI预测报告_{名称}_{日期}.json │ ├── {名称}_chart_{日期}.png │ ├── {名称}_trend_{日期}.png │ ├── {名称}_backtest_{日期}.png │ ├── {名称}_backtest_data_{日期}.csv │ └── {名称}_predictions_{日期}.csv └── 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 | 成交额 | ## 🔌 模型推理方式 | 方式 | 说明 | 优先级 | |------|------|:------:| | HTTP | 调用远程 Python 模型服务 | 1 | | ONNX Runtime | 本地 ONNX 模型推理 | 2 | | DJL | 本地 PyTorch 模型推理 | 3 | ## ⚙️ 配置说明 编辑 `KronosConfig.java` 修改配置: ```java // 数据来源配置 public static final String DATA_SOURCE = "local"; // local / http // 模型推理配置 public static final boolean USE_HTTP_FIRST = true; public static final String MODEL_HTTP_HOST = "http://localhost"; public static final int MODEL_HTTP_PORT = 16888; // 模型管理 public static final int MAX_MODELS = 3; // 默认模型 public static final String DEFAULT_TOKENIZER = "2k"; public static final String DEFAULT_MODEL = "mini"; ``` ## 📄 开源协议 本项目采用 **AGPL-3.0** 协议。 ## 💬 技术支持与服务 如果您在使用过程中遇到问题,或者需要以下技术服务,欢迎联系作者: - 🤖 **AI 客服系统开发**:智能问答、自动回复、多渠道接入 - 🧠 **大模型应用开发**:模型微调、Prompt 工程、RAG 系统 - 💻 **软件开发**:Java&Python 后端、量化系统、数据处理 - 📈 **量化策略开发**:因子挖掘、回测系统、实盘对接 - 🔧 **定制化开发**:根据需求定制 AI 量化解决方案 作者微信二维码 **微信扫码添加作者,备注来意即可** *添加时请备注“Kronos咨询”或具体需求,以便更快响应* ## ⚠️ 免责声明 本工具生成的预测结果由 AI 模型生成,仅供参考,不构成投资建议。市场有风险,投资需谨慎。 ```