Racing Quant AI 赛马量化AI选股系统
name: racing-quant-ai
by chenxyzcyxpp · published 2026-04-01
$ claw add gh:chenxyzcyxpp/chenxyzcyxpp-racing-quant-ai---
name: racing-quant-ai
description: 赛马量化AI选股系统,集成量化策略选股+个股基本面智能推荐分析。从量化策略数据库筛选符合需求的策略,获取持仓个股,再进行深度基本面分析,最终给出投资参考。触发词:量化选股,racing quant,策略选股,数据库选股,量化分析,AI选股。
---
# Racing Quant AI 赛马量化AI选股系统
Overview
Racing Quant AI是一套集成化的A股量化选股分析系统,核心功能包含两大部分:
1. **策略选股**:从远程MySQL量化策略数据库中,根据用户需求智能匹配推荐量化策略,并获取策略对应的最新持仓股票
2. **基本面分析**:对筛选出的持仓个股,使用结构化分析框架进行深度基本面分析,给出客观的投资参考
整个工作流闭环:用户需求 → 匹配策略 → 获取持仓 → 个股分析 → 综合推荐
触发条件
当用户满足以下任意一种场景时,自动启用本skill:
1. 用户要求"量化选股"、"AI选股"、"策略选股"
2. 用户提到"racing quant"、"赛马量化"、"赛马量化AI"
3. 用户需要从数据库选股并进行基本面分析
4. 用户要求根据量化策略推荐股票并分析
核心功能
功能1:策略数据库查询与选股
支持多种查询方式,包括直接查询、关键词搜索和**互动偏好匹配**,满足不同用户场景:
#### 数据库配置
连接信息(远程公开量化策略库):
#### 主策略表字段说明
| 字段 | 类型 | 说明 |
|------|------|------|
| 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=不推荐) |
#### 支持的查询操作
1. **获取全部策略列表**:查询数据库中所有注册策略,展示策略基本信息
2. **关键词搜索策略**:根据关键词搜索策略名称/简介/描述,返回匹配结果
3. **分类筛选**:按策略分类(量价/基本面等)筛选策略
4. **推荐策略筛选**:只筛选标记为if_recommended=1的优质推荐策略
5. **需求智能匹配**:根据用户描述的投资需求,语义匹配最符合的策略
6. **互动偏好匹配**:通过多轮互动提问,了解用户的投资偏好和风险承受能力,从strategy_desc字段中匹配最契合的策略
7. **获取最新持仓**:根据选中的策略,查询对应持仓表获取最新一期持仓股票列表
---
功能2:个股基本面深度分析
对策略输出的持仓股票,逐个进行结构化深度分析,遵循以下分析框架:
#### 维度1:核心交易数据
**数据源**:通过`akshare`接口获取公开股票交易行情数据
#### 维度2:股价走势回顾
分类展示不同周期涨跌幅:
**数据源**:通过`akshare`获取历史行情数据,自动计算涨跌幅
#### 维度3:资金面分析
**数据源**:通过`akshare`接口获取公开主力资金流向数据,可得到单日/近5日/近20日/近一月主力累计净流入数据
#### 维度4:基本面核心分析
#### 维度5:综合评价
完整工作流程
标准工作流(用户给出投资需求)
1. 连接数据库 → 查询所有推荐策略(if_recommended=1)
2. 根据用户需求,智能匹配最符合的1-3个策略
3. 对匹配的每个策略,获取其最新一期持仓股票(通常前10-20只)
4. 对持仓股票逐个进行基本面分析(可根据用户需求限定数量)
5. 整理汇总:策略信息 → 持仓列表 → 个股分析报告 → 综合总结用户指定策略名称/ID工作流
1. 根据用户提供的策略名称/ID,从数据库查询策略详细信息
2. 获取该策略最新持仓列表
3. 对持仓股票进行基本面分析
4. 输出完整报告用户只想查询策略工作流
1. 根据用户条件(关键词/分类)筛选策略
2. 输出策略列表和基本信息,供用户选择
3. 用户选择后再进行下一步获取持仓和分析互动偏好匹配工作流(用户不清楚具体需求,需要引导)
1. 主动提问了解用户的投资偏好,包括:
- 投资周期偏好(短期/中期/长期)
- 风险承受能力(保守/稳健/激进)
- 选股风格偏好(价值成长/红利低波/动量趋势/事件驱动)
- 行业偏好(是否有特定看好或回避的行业)
- 其他特殊需求
2. 将用户回答的偏好转化为搜索关键词,在strategy_desc字段中进行语义匹配
3. 按匹配度排序,推荐最符合的3-5个策略
4. 请用户确认选择哪个策略
5. 用户确认后,获取策略最新持仓并进行个股分析互动提问参考问题
1. "你好!为了给你推荐最合适的量化策略,可以先回答几个问题吗?"
2. "你的投资周期更倾向于哪种?(短期/中期/长期)"
3. "你的风险承受能力大概是什么水平?(保守/稳健/激进)"
4. "你更喜欢哪种选股风格?比如:价值成长/红利低波/动量趋势/事件驱动..."
5. "有没有特别看好或者想要回避的行业?"
6. "还有其他特殊需求吗?"
工具调用规范
1. **数据库查询**:使用Node.js连接MySQL数据库,参考scripts目录下的数据库连接模板
2. **获取行情数据**:通过`akshare`接口获取最新股价和各周期涨跌幅数据,具体代码格式参考`stock-analysis`skill文档:
```python
import akshare as ak
# 沪市60开头代码格式:shXXXXXX,深市00/30开头:szXXXXXX
stock_zh_a_daily = ak.stock_zh_a_daily(symbol='sh603606', adjust='')
stock_zh_a_daily = stock_zh_a_daily.reset_index()
latest = stock_zh_a_daily.iloc[-1]
current = latest['close']
# 计算各周期涨跌幅
def calc_return(days_back):
if len(stock_zh_a_daily) > days_back:
past_price = stock_zh_a_daily.iloc[-(days_back + 1)]['close']
return (current / past_price - 1) * 100
return None
# 得到 p5(近5日), p21(近1月), p63(近3月), p252(近1年)
```
3. **获取主力资金流向**:通过`akshare`接口获取每日主力资金数据,具体代码格式参考如下:
```python
# 获取主力资金流向,格式:股票代码直接填数字,market="sh"/"sz"
fund_flow = ak.stock_individual_fund_flow(stock='603606', market='sh')
latest = fund_flow.iloc[-1]
# 最新单日主力净流入(单位:万元)
main_today = latest["主力净流入-净额"]
main_today_pct = latest["主力净流入-净占比"]
# 近5日累计主力净流入
recent_5d = fund_flow.tail(5)
total_main_5d = recent_5d['主力净流入-净额'].sum()
# 近20日累计主力净流入
recent_20d = fund_flow.tail(20)
total_main_20d = recent_20d['主力净流入-净额'].sum()
```
4. **基础信息搜索**:分析前先使用`miaoda-web-search`搜索股票最新公开信息、机构研报和市场数据
5. **深度报告搜索**:添加`wechat-article-search`深度搜索机制,通过`miaoda-studio-cli search-summary`搜索微信公众号最新发布的个股深度研究报告,获取市场最新观点和深度分析内容,并在最终报告中明确注释引用的公众号文章/深度报告标题
6. **融合分析**:整合量化策略数据库信息、akshare行情数据、akshare主力资金数据、公开市场数据和微信公众号深度研究报告内容,进行多维度融合分析
7. **严格框架**:严格按照5维度分析框架整理输出,不遗漏风险提示
8. **风险优先**:必须同时列出优势和风险,不做片面推荐
9. **信息标注**:分析过程中引用的公开研报和公众号深度文章,需要在报告末尾注明信息来源
10. **免责声明**:所有分析结果末尾必须带有免责声明
基本原则
1. **客观中立**:只整理公开信息和量化策略结果,不做主观判断
2. **风险提示**:风险提示清晰可见,不隐藏负面信息
3. **信息来源**:所有数据来自公开渠道和量化策略数据库
4. **责任豁免**:始终声明不构成投资建议,投资风险自负
资源
scripts/
包含可直接运行的数据库查询脚本:
依赖
使用示例
示例1:列出所有推荐策略
cd /home/gem/workspace/agent/workspace/skills/racing-quant-ai/scripts && node list-recommended.js示例2:获取指定策略最新持仓并分析前5只个股
# 1. 获取持仓(通过策略名称,支持模糊匹配)
cd /home/gem/workspace/agent/workspace/skills/racing-quant-ai/scripts && node get-positions-correct.js "短周期机器学习" 20
# 脚本执行流程:
# - 先在 strategy_information 表查找匹配的策略
# - 获取对应的 strategy_table 名称
# - 查询该表的最新持仓数据
# 2. 对每只个股调用公开信息搜索
miaoda-studio-cli search-summary --query "<stock_code> <stock_name> 2026年X月 最新 基本面分析"
# 3. 调用微信文章深度搜索,获取最新公众号深度研究报告
miaoda-studio-cli search-summary --query "<stock_code> <stock_name> 最新深度研究报告 微信文章 2026"
# 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. 在报告中注释引用的公众号文章/深度报告标题,并注明信息来源,最后添加免责声明
上架信息
- 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): 添加微信文章深度搜索机制,支持搜索公众号最新发布的个股深度研究报告,并融合深度内容进行分析,自动注释引用的报告名称
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...