Skip to content

lebin/kronos-report

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kronos-Report

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

License: AGPL v3 Python

📖 项目简介

Kronos-Report 是一个基于 Kronos 金融时序大模型的 Python 量化预测工具,支持股票、基金、期货、指数等品种的 K 线数据预测,自动生成多格式分析报告和每日简报。同时提供 HTTP 模型服务,支持远程调用和多模型管理。

🎯 Demo 预览

AI量化简报

AI量化简报每日自动生成,包含大盘预测、个股分析、量化提示等内容。

简报截图 在线预览
AI量化简报 Demo 查看HTML版本

AI预测报告

AI预测报告支持股票、基金、期货、指数等品种,包含K线图、趋势图、预测明细等。

报告截图 在线预览
AI预测报告 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

🔧 安装

# 克隆项目
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

🚀 使用说明

一、单次预测(完整报告)

# 股票
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 数据报告(纯数据格式)

# 生成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

三、每日简报

# 生成简报(精简模式)
python predictor.py --briefing

# 生成简报(详细模式)
python predictor.py --briefing -v

四、定时任务

# 启动定时任务(每日19:30生成简报)
python predictor.py --scheduler

# 自定义时间
python predictor.py --scheduler --scheduler-hour 20 --scheduler-minute 0

# 停止定时任务
python predictor.py --scheduler-stop

五、HTTP 模型服务

启动服务

# 方式一:使用启动脚本
./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

快速测试

# 健康检查
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 报告格式

{
  "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. 数据源配置

# 数据源类型: local(本地txt), tickflow(TickFlow免费服务)
DATA_SOURCE = "tickflow"  # 可选: local, tickflow
说明
local 使用本地 CSV 文件获取数据
tickflow 使用 TickFlow 免费服务获取数据(推荐)

2. 路径配置

# 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. 预测默认参数

DEFAULT_LOOKBACK = 512      # 回溯窗口长度
DEFAULT_PRED_LEN = 5        # 预测步数
DEFAULT_T = 0.6             # 温度参数(控制随机性)
DEFAULT_TOP_P = 0.8         # 核采样参数
DEFAULT_SAMPLE_COUNT = 5    # 采样次数

4. 模型默认配置

DEFAULT_TOKENIZER = "2k"    # 分词器类型: 2k / base
DEFAULT_MODEL = "mini"      # 模型类型: mini / small / base
DEFAULT_DEVICE = "auto"     # 设备: auto / cuda / cpu / mps

5. HTTP 服务配置

HTTP_HOST = "0.0.0.0"       # 服务地址
HTTP_PORT = 16888           # 服务端口
MAX_MODELS = 3              # 最多同时加载的模型数量

6. 简报配置

# 股指代码(简报中展示的指数)
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. 定时任务配置

DEFAULT_CRON_HOUR = 19      # 定时任务小时
DEFAULT_CRON_MINUTE = 30    # 定时任务分钟

8. 回测参数

DEFAULT_BACKTEST_PRED_LEN = 30   # 回测预测步数

配置优先级

优先级 来源 说明
1 命令行参数 --pred-len 10
2 配置文件 settings.py 中的默认值
3 代码内置 硬编码的备用值

🧪 运行测试

# 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 模型生成,只作为个人研究学习用途,不构成投资建议。市场有风险,投资需谨慎。

About

AI Quantitative Prediction Report Generation Tool Based on Kronos Financial Large Model (Python Edition)

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors