Skip to content

lebin/kronos-report-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kronos-Report-Java

基于 Kronos 金融大模型的 AI 量化预测报告生成工具(Java 版)

License: AGPL v3 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 数据报告(纯数据格式)

# 生成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-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 报告格式

{
  "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 修改配置:

// 数据来源配置
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 模型生成,仅供参考,不构成投资建议。市场有风险,投资需谨慎。

About

Kronos-Report-Java是一个基于 Kronos 金融时序大模型的 Java 量化预测工具,支持股票、基金、期货、指数等品种的 K 线数据预测,自动生成多格式分析报告和每日简报。支持多种模型推理方式(HTTP、ONNX Runtime、DJL),提供统一的数据服务接口。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors