Metadata-Version: 2.4
Name: QuantAll
Version: 1.0.1
Summary: 给AI使用的金融分析工具
Author: CMF
Author-email: mifochen@foxmail.com
License: Proprietary
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Operating System :: Microsoft :: Windows
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: PySide6>=6.10.1
Requires-Dist: PyOpenGL>=3.1.9
Requires-Dist: PyOpenGL-accelerate>=3.1.9
Requires-Dist: pandas>=2.3.3
Requires-Dist: openpyxl>=3.1.5
Requires-Dist: cryptography>=46.0.3
Requires-Dist: pywin32>=311
Requires-Dist: mcp>=1.26.0
Requires-Dist: duckdb>=1.5.2
Requires-Dist: pydantic>=2.0.0
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: license
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# QuantAll（全A解析）

[![Python](https://img.shields.io/badge/Python-3.10%2B-blue)](https://www.python.org/)
[![Platform](https://img.shields.io/badge/Platform-Windows-lightgrey)]()

A股全市场向量化并行计算引擎。支持 5000+ 股票的**全市场因子计算**、**策略回测**、**因子 IC 分析**及 **GPU 多维可视化**。

核心价值：为 AI 配置本地计算引擎，让 AI 从「数据搬运工」升级为「数据分析师」—— 不再只是查询信息，而是用代码算出客观结果。

---

## 安装

```bash
pip install quantall
```

安装后，包内自带以下内置资源：

| 内置资源 | 说明 |
|----------|------|
| `ai_prompts.toml` | AI 提示词配置，用于 MCP 工具语义理解 |
| `Test.duckdb` | 测试数据库（沪深300近两年行情），开箱即用 |

> **注意**：仅支持 Windows 平台（依赖 PySide6 GUI 和 PyOpenGL GPU 渲染）。

---

## 快速开始

### 第一步：创建启动脚本

在项目目录下创建 `Start_QuantAll.py`：

```python
"""
QuantAll 启动入口

说明：
- Start_main() 需要传入项目路径
- 项目路径下会自动查找 DB_setting.json、数据库文件、data/ 目录
- 如果需要修改数据库路径，编辑 DB_setting.json 中的 db_path 字段
- 注意：文件名不要用 "QuantAll.py"，可能与包名冲突
"""
import os
from QuantAll import Start_main

print("全A解析启动中...")
# 将 os.path.dirname(__file__) 替换为你的项目路径
# Start_main("C:/your/project/path")
Start_main(os.path.dirname(__file__))
```

### 第二步：配置数据库连接

在启动脚本同级目录创建 `DB_setting.json`：

```json
{
  "db_path": "你的数据库路径/data.duckdb",
  "days": 730,
  "ex_do": true,
  "stock_index": "stock_index",
  "map_stock_index": {
    "trade_date": "trade_date", "symbol": "symbol",
    "open": "open", "high": "high", "low": "low",
    "close": "close", "pre_close": "pre_close",
    "vol": "vol", "voe": "voe"
  },
  "stock": "stock",
  "map_stock": {
    "trade_date": "trade_date", "symbol": "symbol",
    "open": "open", "high": "high", "low": "low",
    "close": "close", "pre_close": "pre_close",
    "vol": "vol", "voe": "voe"
  },
  "stock_basic": "stock_basic",
  "map_stock_basic": {
    "symbol": "symbol", "name": "name",
    "check": ["industry", "business_scope", "main_business",
              "province", "city", "act_ent_type", "concept"]
  },
  "stock_factor": "stock_factor",
  "map_stock_factor": {"symbol": "symbol", "trade_date": "trade_date"},
  "stock_forecast": "stock_forecast",
  "map_stock_forecast": {"symbol": "symbol", "ann_date": "ann_date"},
  "stock_dividend": "stock_dividend",
  "map_stock_dividend": {"symbol": "symbol", "ann_date": "ann_date", "ex_date": "ex_date"},
  "stock_report": "stock_report",
  "map_stock_report": {"symbol": "symbol", "ann_date": "ann_date"},
  "_": "_",
  "map__": {}
}
```

| 关键参数 | 类型 | 说明 |
|----------|------|------|
| `db_path` | string | **DuckDB 数据库文件的绝对路径**（必改项） |
| `days` | int | 加载交易天数，默认 730（约2年） |
| `ex_do` | bool | 是否启用除权除息处理 |
| `map_*` | object | 各表字段名映射，可将自定义数据库字段映射到标准名 |

> **测试体验**：若只是想快速体验，将 `db_path` 指向包内自带的 `Test.duckdb`（安装后在 `site-packages/QuantAll/Test.duckdb`），内含沪深300近两年基础行情数据。

### 第三步：启动服务

```bash
python Start_QuantAll.py
```

启动后，QuantAll 在 `http://127.0.0.1:8686/mcp` 提供 HTTP MCP 服务。

---

## 功能概览

QuantAll 提供 **11 个 MCP 工具**，覆盖量化研究的完整工作流：

| 工具 | 类型 | 功能说明 |
|------|------|----------|
| `strategy_backtest` | 回测 | 全市场策略回测，输出收益率、夏普比率、最大回撤、胜率等指标 |
| `factor_analysis` | 因子 | 因子 IC 分析，支持 summary/daily/scatter 三种模式，输出 IC均值、IR、多空收益差 |
| `new_layer_from_code` | 图层 | 自定义散点图层，支持 shift 平移分析标记日前后的数据分布 |
| `move_by_code` | 统计 | 坐标轴平移，按因子/特征给散点着色生成热力图 |
| `weight_by_code` | 统计 | 权重赋值，对选中集合做加权分布统计 |
| `select_by_code` | 集合 | 集合操作（交/并/差/补等 6 种模式），筛选股票 |
| `heat_map` | 矩阵 | 多维热力图统计，支持 x_y / x / y 三种模式 |
| `get_user_selection` | 交互 | 获取 GUI 可视化界面中用户框选的股票列表 |
| `available_data` | 数据 | 查看当前数据库及图层中可用字段列表 |
| `ping` | 系统 | 健康检查，确认服务正常 |
| `MCP_Close` | 系统 | 关闭 QuantAll 服务 |

---

## 数据准备

QuantAll 依赖本地 **DuckDB** 数据库运行，需要包含以下数据表：

| 表名 | 内容 |
|------|------|
| `stock` / `stock_index` | 日线行情（OHLCV） |
| `stock_basic` | 股票基本信息（名称、行业、省份、概念等） |
| `stock_factor` | 日频因子（换手率、PE、PB、市值等） |
| `stock_forecast` | 业绩预告 |
| `stock_dividend` | 分红送转 |
| `stock_report` | 财务报表（153个指标） |

**获取数据有两种方式**：

### 方式一：通过 UpdateStock 自动管理（推荐）

搭配 [UpdateStock] AI技能，可通过 AI 助手一键建库、全量/增量更新：

- **全量更新**：需 tushare 2000+ 积分，覆盖所有历史数据
- **增量更新**：需 tushare 200 积分，仅更新最近数据（免费注册即可获得）

> tushare 注册地址：https://tushare.pro

### 方式二：自行准备数据库

按 `DB_setting.json` 配置的表结构和字段映射，自行准备 DuckDB 数据库。字段名可通过 `map_*` 配置灵活映射，无需严格匹配默认字段名。

---

## AI 助手集成

QuantAll 是一个 **MCP（Model Context Protocol）服务**，可接入 WorkBuddy、Claude Desktop 等支持 MCP 的 AI 助手。

### WorkBuddy 配置

在 `~/.workbuddy/mcp.json` 中添加：

```json
{
  "mcpServers": {
    "全A解析": {
      "url": "http://127.0.0.1:8686/mcp",
      "disabled": false
    }
  }
}
```

### 其他 MCP 客户端

任何支持 HTTP MCP 协议的客户端均可通过 `http://127.0.0.1:8686/mcp` 连接。

---

## 代码执行环境

QuantAll 内置 Python 向量化计算环境，AI 可直接编写策略代码执行。环境提供：

- **`d`**：`dict[str, DataFrame]`，所有可用数据（字段名 -> 全市场 DataFrame）
- **`col_attrs`**：`dict[str, Series]`，各字段属性（分组、分类信息等）
- **`np`**、**`pd`**：numpy、pandas 直接可用

> **约束**：代码必须向量化（禁止 for 循环、`df.apply()`、`lambda`），最后一行用 `out = ...` 输出结果。

---

## 激活

QuantAll 目前不激活可以正常使用。启动需要同意用户协议，激活代表永久同意，后续启动不再弹出用户协议弹窗。

---

## 依赖

核心依赖（`pip install quantall` 时自动安装）：

```
mcp>=1.26.0        # MCP 协议
pandas>=2.3.3      # 数据计算
numpy>=1.24.0      # 数值运算
duckdb>=1.5.2      # 数据库引擎
PySide6>=6.10.1    # GUI 可视化
PyOpenGL>=3.1.9    # GPU 渲染
cryptography>=46.0.3  # 安全与激活
openpyxl>=3.1.5    # Excel 导出
pywin32>=311       # Windows 系统集成
```

> Python 版本要求：**3.10+**，测试通过版本：3.12、3.13。

---

## 许可

QuantAll（全A解析）为商业软件，使用需获得授权许可。

---

## 联系方式

- PyPI: [https://pypi.org/project/quantall/](https://pypi.org/project/quantall/)
- 问题反馈：请在对应平台提交 Issue
