racing-quant-ai
# Racing Quant AI 赛马量化AI选股系统
## Overview
Racing Quant AI是一套集成化的A股量化选股分析系统,核心功能包含两大部分:
1. **策略选股**:从远程MySQL量化策略数据库中,根据用户需求智能匹配推荐量化策略,并获取策略对应的最新持仓股票
2. **深度分析**:对筛选出的持仓个股,使用结构化分析框架进行个股深度分析,给出客观的投资参考
整个工作流闭环:用户需求 → 匹配策略 → 获取持仓 → 个股分析 → 综合推荐
## 触发条件
当用户满足以下任意一种场景时,自动启用本skill:
1. 用户要求"量化选股"、"AI选股"、"策略选股"
2. 用户提到"racing quant"、"赛马量化"、"赛马量化AI"
3. 用户需要从数据库选股并进行深度分析
4. 用户要求根据量化策略推荐股票并分析
## 数据源
- 赛马量化策略数据库:实时获取策略持仓、历史绩效、因子暴露数据
- **new-akshare-stock 新版量化接口**:行情、财务、资金流向、龙虎榜等稳定A股量化数据
- **cn-web-search 全网搜索**:个股深度研究、行业动态、政策解读,优先返回微信公众号来源内容,自动备注文章标题
## 核心功能
### 功能1:策略数据库查询与选股
支持多种查询方式,包括直接查询、关键词搜索和**互动偏好匹配**,满足不同用户场景:
#### 数据库配置
连接信息(远程公开量化策略库):
- 地址:47.121.180.199
- 端口:3306
- 账号:display
- 密码:display999!
- 数据库:db_strategy
- 主表:strategy_information
#### 主策略表字段说明
| 字段 | 类型 | 说明 |
|------|------|------|
| strategy_table | text | 策略对应持仓数据表名称 |
| strategy_name | text | 策略英文名称 |
| strategy_id | text | 策略ID(唯一标识) |
| benchmark | text | 对标指数 |
| owner_name | text | 策略创建人姓名 |
| owner_id | text | 创建人ID |
| start_date | datetime | 策略开始回测时间 |
| online_date | datetime | 策略上线时间 |
| strategy_name_cn | text | 策略中文名称 |
| strategy_summ | text | 策略简介 |
| strategy_desc | text | 策略详细描述 |
| strategy_cat | text | 策略分类(量价/基本面/事件驱动/量化选股等) |
| how_to_trade | text | 交易调仓规则 |
| if_recommended | bigint | 是否推荐(1=推荐,0=不推荐) |
#### 策略持仓表字段说明
| 字段 | 类型 | 说明 |
|------|------|------|
| trade_date | text | 交易日期 |
| strategy_name | text | 策略名称 |
| strategy_id | text | 策略ID |
| trading_info | text | 交易信息(持仓信息json,主键为证券代码、值为权重,举例 {'300001.SZ':'0.1'}) |
| trade_price | text | 交易价格(open/close) |
| update_time | datetime | 更新时间 |
#### 支持的查询操作
1. **获取全部策略列表**:查询数据库中所有注册策略,展示策略基本信息
2. **关键词搜索策略**:根据关键词搜索策略名称/简介/描述,返回匹配结果
3. **分类筛选**:按策略分类(量价/基本面等)筛选策略
4. **推荐策略筛选**:只筛选标记为if_recommended=1的优质推荐策略
5. **需求智能匹配**:根据用户描述的投资需求,语义匹配最符合的策略
6. **互动偏好匹配**:通过多轮互动提问,了解用户的投资偏好和风险承受能力,从strategy_desc字段中匹配最契合的策略
7. **获取最新持仓**:根据选中的策略,查询对应持仓表获取最新一期持仓股票列表
备注:多策略命中时,仅列表展示,不自动择优,需用户确认后再获取持仓。
---
### 功能2:个股深度分析(5维度分析框架)
对策略输出的持仓股票,逐个进行结构化深度分析,遵循以下分析框架:
#### 维度1:核心交易数据
- 最新股价、当日涨跌幅
- 日内波动区间(最高价/最低价)
- 成交量、成交额、换手率
- 总市值
- 估值指标(PE(TTM)、PB)
**数据源**:通过`new-akshare-stock`获取公开股票交易行情数据
#### 维度2:股价走势回顾
分类展示不同周期涨跌幅:
- 短期:近5日、近1个月
- 中期:近3个月
- 长期:近1年、近5年
**数据源**:通过`new-akshare-stock`获取历史行情数据,自动计算涨跌幅
#### 维度3:资金面分析
- 近期主力资金流向(净流入/净流出)
- 主力持仓成本对比当前股价
- 机构控盘度
- 关键支撑位/压力位
**数据源**:通过`new-akshare-stock`获取公开主力资金流向数据,可得到单日/近5日/近20日/近一月主力累计净流入数据
#### 维度4:基本面核心分析
- 估值对比:当前PE/PB对比行业平均,判断高估/低估
- 业绩表现:近期营收、净利润增速,增长稳定性
- 业务亮点:核心优势、新增长点
- 风险提示:客观列出潜在风险(高负债、政策风险、行业周期等)
**数据源**:通过`new-akshare-stock`获取公开财务数据,结合`cn-web-search`搜索最新公开信息和机构研报,优先返回微信公众号来源内容,自动备注文章标题
#### 维度5:综合评价
- 短期趋势判断,基于资金面和技术面数据
- 长期投资价值评价,基于基本面分析和估值水平
- 不同类型投资者参考建议(保守/稳健/激进)
- **必须添加免责声明**:明确说明"分析结果仅供学习交流,不构成任何投资建议,投资有风险,入市需谨慎"
## 完整工作流程
工作流优先级:用户有明确选股需求 / 指定策略→直接自动执行;无任何需求→触发互动提问;
补充匹配兜底规则:若关键词 / 偏好 / 分类筛选匹配出 2 条及以上策略,仅展示【策略名称 + 中文简介】列表给到用户,等待用户手动选定具体策略后,再执行拉取持仓、个股分析流程,不自动默认选中任意策略。
### 标准工作流(用户给出投资需求)
```
1. 连接数据库 → 查询所有策略
2. 根据用户需求,智能匹配最符合的1-3个策略
3. 对匹配的每个策略,获取其最新一期持仓股票(通常前10-20只)
4. 对持仓股票逐个进行个股深度分析(如用户没有指定数量,则默认前5只)
5. 整理汇总:策略信息 → 持仓列表 → 个股分析报告 → 综合总结
6. 输出完整报告,报告格式严格按照如下输出:
- 策略信息(名称/ID/简介/描述)
- 持仓列表(股票代码/名称/占比)
- 个股分析(每只股票按照5维度分析框架输出)
- 综合总结(策略优势、风险提示、投资建议)
- 信息来源注释(公开研报、微信公众号深度报告标题)
- 免责声明(分析结果仅供学习交流,不构成投资建议,投资有风险,入市需谨慎)
```
### 用户指定策略名称/ID工作流
```
1. 根据用户提供的策略名称/ID,从数据库查询策略详细信息,返回匹配到的策略信息包括名称/ID
2. 获取该策略最新持仓列表
3. 对持仓股票进行个股深度分析(如用户没有指定数量,则默认前5只)
4. 输出完整报告,报告格式严格按照如下输出:
- 策略信息(名称/ID/简介/描述)
- 持仓列表(股票代码/名称/占比)
- 个股分析(每只股票按照5维度分析框架输出)
- 综合总结(策略优势、风险提示、投资建议)
- 信息来源注释(公开研报、微信公众号深度报告标题)
- 免责声明(分析结果仅供学习交流,不构成投资建议,投资有风险,入市需谨慎)
```
### 用户只想查询策略工作流
```
1. 根据用户条件(关键词/分类)筛选策略
2. 输出策略列表和基本信息,供用户选择
3. 用户选择后再进行下一步获取持仓和分析(如用户没有指定数量,则默认前5只)
4. 输出完整报告,报告格式严格按照如下输出:
- 策略信息(名称/ID/简介/描述)
- 持仓列表(股票代码/名称/占比)
- 个股分析(每只股票按照5维度分析框架输出)
- 综合总结(策略优势、风险提示、投资建议)
- 信息来源注释(公开研报、微信公众号深度报告标题)
- 免责声明(分析结果仅供学习交流,不构成投资建议,投资有风险,入市需谨慎)
```
### 互动偏好匹配工作流(在不明确用户偏好时,优先使用)
```
1. 主动提问了解用户的投资偏好,包括:
- 投资周期偏好(短期/中期/长期)
- 风险承受能力(保守/稳健/激进)
- 选股风格偏好(价值成长/红利低波/动量趋势/事件驱动)
- 行业偏好(是否有特定看好或回避的行业)
- 其他特殊需求
2. 将用户回答的偏好转化为搜索关键词,在strategy_desc字段中进行语义匹配
3. 按匹配度排序,推荐最符合的3-5个策略
4. 请用户确认选择哪个策略
5. 用户确认后,获取策略最新持仓并进行个股分析(如用户没有指定数量,则默认前5只)
6. 输出完整报告,报告格式严格按照如下输出:
- 策略信息(名称/ID/简介/描述)
- 持仓列表(股票代码/名称/占比)
- 个股分析(每只股票按照5维度分析框架输出)
- 综合总结(策略优势、风险提示、投资建议)
- 信息来源注释(公开研报、微信公众号深度报告标题)
- 免责声明(分析结果仅供学习交流,不构成投资建议,投资有风险,入市需谨慎)
```
### 互动提问参考问题
1. "你好!为了给你推荐最合适的量化策略,可以先回答几个问题吗?"
2. "你的投资周期更倾向于哪种?(短期/中期/长期)"
3. "你的风险承受能力大概是什么水平?(保守/稳健/激进)"
4. "你更喜欢哪种选股风格?比如:价值成长/红利低波/动量趋势/事件驱动..."
5. "有没有特别看好或者想要回避的行业?"
6. "还有其他特殊需求吗?"
## 工具调用规范
1. **数据库查询**:使用Node.js连接MySQL数据库,参考scripts目录下的数据库连接模板
2. **获取行情数据**:通过`new-akshare-stock`获取最新股价和各周期涨跌幅数据
3. **获取主力资金流向**:通过`new-akshare-stock`获取每日主力资金数据
4. **基础信息搜索**:分析前先使用`cn-web-search`搜索股票最新公开信息、机构研报和市场数据
5. **深度报告搜索**:添加`wechat-article-search`深度搜索机制,搜索微信公众号最新发布的个股深度研究报告,获取市场最新观点和深度分析内容,并在最终报告中明确注释引用的公众号文章/深度报告标题
6. **融合分析**:整合量化策略数据库信息、行情数据、主力资金数据、公开市场数据和微信公众号深度研究报告内容,进行多维度融合分析
7. **严格框架**:严格按照5维度分析框架整理输出,不遗漏风险提示
8. **风险优先**:必须同时列出优势和风险,不做片面推荐
9. **信息标注**:分析过程中引用的公开研报和公众号深度文章,需要在报告末尾注明信息来源
10. **免责声明**:所有分析结果末尾必须带有免责声明
## 基本原则
1. **遵守规范**:严格按照既定流程和标准执行各项操作
2. **客观中立**:只整理公开信息和量化策略结果,不做主观判断
3. **风险提示**:风险提示清晰可见,不隐藏负面信息
4. **信息来源**:所有数据来自公开渠道和量化策略数据库
5. **责任豁免**:始终声明不构成投资建议,投资风险自负
## 资源
### scripts/
包含可直接运行的数据库查询脚本:
- `check-json.js`:检查JSON格式正确性
- `desc-table.js`:输出策略描述表格
- `get-positions-correct.js`:获取策略最新正确持仓列表
- `get-positions.js`:获取策略持仓列表(原始版)
- `get-positions-json.js`:获取持仓JSON格式
- `get-position-table.js`:输出持仓表格
- `list-recommended.js`:列出所有推荐策略
- `read-strategies.js`:读取策略信息
## 依赖
- Node.js 环境
- `mysql` 包:用于连接MySQL量化策略数据库
- `akshare` Python库:用于支持获取A股行情、财务、资金流向等数据(只通过`new-akshare-stock`技能调用)
- `cn-web-search`技能:用于获取个股最新公开信息和机构研报
- `new-akshare-stock`技能:行情、财务、资金流向、龙虎榜等稳定A股量化数据
- `wechat-article-search` 深度搜索:搜索微信公众号最新深度研究报告
- `stock-analysis` 技能:提供结构化个股分析框架,配置为用`new-akshare-stock`技能获取行情和主力资金数据
## 使用示例
### 示例1:列出所有推荐策略
```
cd ./scripts && node list-recommended.js
```
### 示例2:获取指定策略最新持仓并分析N只个股(N默认为5)
```
# 1. 获取持仓(通过策略名称,支持模糊匹配)
cd ./scripts && node get-positions-correct.js "短周期机器学习" 20
# 脚本执行流程:
# - 先在 strategy_information 表查找匹配的策略
# - 获取对应的 strategy_table 名称
# - 查询该表的最新持仓数据
# 2. 对每只个股调用公开信息搜索
# 3. 调用微信文章深度搜索,获取最新公众号深度研究报告
# 4. 融合公开信息与深度报告内容,整理分析结果,并注释引用的公众号文章标题
# 5. 输出完整报告,末尾注明信息来源并添加免责声明
```
## 完整运行示例(如本文档编写过程)
1. 用户要求:"现在开始对前5只重仓个股进行深度分析"
2. 执行`node list-recommended.js`获取推荐策略列表
3. 执行`node get-positions-correct.js "策略名称" 20`获取最新20只持仓(脚本会自动反查strategy_table)
4. 逐个对前5只股票调用公开搜索获取基础基本面信息
5. 逐个对前5只股票调用微信文章深度搜索,获取最新公众号深度研究报告
6. 融合整合公开信息与深度报告内容,按照结构化分析框架整理输出分析报告
7. 在报告中注释引用的公众号文章/深度报告标题,并注明信息来源,最后添加免责声明
## 上架信息
- 作者:Warwick
- 分类:金融/量化选股
- 标签:A股, 量化, 选股, 基本面分析, 深度分析, 投资
- 版本:1.5.0
- 更新日志:
- v1.5.0 (2026-03-31): 将直接读取akshare接口更改为调用成熟skill;集成微信文章深度搜索机制,支持搜索公众号最新发布的个股深度研究报告,并融合深度内容进行分析,自动注释引用的报告名称,提供更丰富的市场观点和深度分析内容
- v1.4.0 (2026-03-30): `get-positions-correct.js`脚本升级,支持通过策略名称(strategy_name_cn)自动反查strategy_table,无需手动指定表名,使用更便捷
- v1.3.0 (2026-03-30): 主力资金数据获取升级为`akshare`接口,可直接获取准确的单日/近5日/近20日/近一月主力净流入数据,资金面分析数据更精准
- v1.2.0 (2026-03-30): 行情数据获取方式升级为`akshare`接口,自动获取准确的最新股价和各周期涨跌幅数据,数据来源更稳定可靠
- v1.1.0 (2026-03-28): 添加微信文章深度搜索机制,支持搜索公众号最新发布的个股深度研究报告,并融合深度内容进行分析,自动注释引用的报告名称
标签
skill
ai