基于 Kronos 金融大模型的 AI 量化预测报告生成工具(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+
# 克隆项目
git clone https://gitee.com/liebin/kronos-report.git
cd kronos-report
# 编译打包
mvn clean package
# 安装到本地仓库
mvn install# 股票
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报告(不生成图表和回测)
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# 生成简报(精简模式)
java -jar target/kronos-report-1.0.0.jar --briefing
# 生成简报(详细模式)
java -jar target/kronos-report-1.0.0.jar --briefing -v# 启动定时任务(每日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-stopkronos-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
{
"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线 |
| 缩写 | 全称 | 说明 |
|---|---|---|
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 修改配置:
// 数据来源配置
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 模型生成,仅供参考,不构成投资建议。市场有风险,投资需谨慎。
