stock-analyzer-skill 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +36 -0
- package/README.md +110 -39
- package/data/reports/202506_Stock_Analysis_Summary.md +271 -0
- package/experts/README.md +23 -2
- package/experts/buffett.md +44 -1
- package/experts/chaogu_yangjia.md +50 -0
- package/experts/decide.md +54 -2
- package/experts/duan_yongping.md +45 -0
- package/experts/lynch.md +48 -1
- package/experts/soros.md +43 -0
- package/experts/xu_xiang.md +44 -0
- package/experts/zhao_laoge.md +53 -0
- package/experts/zuoshou_xinyi.md +66 -0
- package/methodology.md +313 -13
- package/package.json +1 -1
- package/scripts/__pycache__/screener.cpython-314.pyc +0 -0
- package/scripts/api/__init__.py +22 -0
- package/scripts/api/__pycache__/__init__.cpython-314.pyc +0 -0
- package/scripts/api/__pycache__/quote_cli.cpython-314.pyc +0 -0
- package/scripts/api/__pycache__/screener_cli.cpython-314.pyc +0 -0
- package/scripts/api/quote_cli.py +106 -0
- package/scripts/api/screener_cli.py +149 -0
- package/scripts/business/__init__.py +15 -0
- package/scripts/business/__pycache__/__init__.cpython-314.pyc +0 -0
- package/scripts/business/__pycache__/screening_service.cpython-314.pyc +0 -0
- package/scripts/business/__pycache__/stock_analysis.cpython-314.pyc +0 -0
- package/scripts/business/screening_service.py +267 -0
- package/scripts/business/stock_analysis.py +183 -0
- package/scripts/common/__init__.py +334 -0
- package/scripts/common/__pycache__/__init__.cpython-314.pyc +0 -0
- package/scripts/common/__pycache__/http.cpython-314.pyc +0 -0
- package/scripts/common/__pycache__/parsers.cpython-314.pyc +0 -0
- package/scripts/common/__pycache__/utils.cpython-314.pyc +0 -0
- package/scripts/common/__pycache__/validators.cpython-314.pyc +0 -0
- package/scripts/common/exceptions/__init__.py +172 -0
- package/scripts/common/exceptions/__pycache__/__init__.cpython-314.pyc +0 -0
- package/scripts/common/http.py +79 -0
- package/scripts/common/metrics.py +92 -0
- package/scripts/common/parsers.py +125 -0
- package/scripts/common/utils.py +195 -0
- package/scripts/common/validators.py +219 -0
- package/scripts/config/__init__.py +24 -0
- package/scripts/config/__pycache__/__init__.cpython-314.pyc +0 -0
- package/scripts/config/__pycache__/loader.cpython-314.pyc +0 -0
- package/scripts/config/data_source.yaml +126 -0
- package/scripts/config/industry_thresholds.yaml +158 -0
- package/scripts/config/limits.yaml +48 -0
- package/scripts/config/loader.py +141 -0
- package/scripts/config/notification.yaml +57 -0
- package/scripts/config/scoring.yaml +159 -0
- package/scripts/data/__pycache__/config.cpython-314.pyc +0 -0
- package/scripts/data/__pycache__/types.cpython-314.pyc +0 -0
- package/scripts/data/config.py +56 -4
- package/scripts/data/portfolio.json +100 -0
- package/scripts/data/portfolio_example.json +66 -11
- package/scripts/data/sector_stocks.json +244 -80
- package/scripts/data/types.py +3 -3
- package/scripts/fetchers/__init__.py +54 -0
- package/scripts/fetchers/__pycache__/__init__.cpython-314.pyc +0 -0
- package/scripts/fetchers/__pycache__/akshare_quote.cpython-314.pyc +0 -0
- package/scripts/fetchers/__pycache__/eastmoney_event.cpython-314.pyc +0 -0
- package/scripts/fetchers/__pycache__/eastmoney_flow.cpython-314.pyc +0 -0
- package/scripts/fetchers/__pycache__/eastmoney_lhb.cpython-314.pyc +0 -0
- package/scripts/fetchers/__pycache__/eastmoney_quote.cpython-314.pyc +0 -0
- package/scripts/fetchers/__pycache__/efinance_quote.cpython-314.pyc +0 -0
- package/scripts/fetchers/__pycache__/sina_quote.cpython-314.pyc +0 -0
- package/scripts/fetchers/__pycache__/tencent_quote.cpython-314.pyc +0 -0
- package/scripts/fetchers/akshare_quote.py +17 -3
- package/scripts/fetchers/eastmoney_event.py +148 -0
- package/scripts/fetchers/eastmoney_flow.py +118 -0
- package/scripts/fetchers/eastmoney_lhb.py +134 -0
- package/scripts/fetchers/eastmoney_quote.py +3 -3
- package/scripts/fetchers/efinance_quote.py +17 -3
- package/scripts/fetchers/sina_quote.py +5 -9
- package/scripts/fetchers/tencent_quote.py +3 -1
- package/scripts/monitor/__init__.py +13 -0
- package/scripts/monitor/__pycache__/__init__.cpython-314.pyc +0 -0
- package/scripts/monitor/__pycache__/manager.cpython-314.pyc +0 -0
- package/scripts/monitor/channels/__init__.py +6 -0
- package/scripts/monitor/channels/__pycache__/__init__.cpython-314.pyc +0 -0
- package/scripts/monitor/channels/__pycache__/bark.cpython-314.pyc +0 -0
- package/scripts/monitor/channels/__pycache__/base.cpython-314.pyc +0 -0
- package/scripts/monitor/channels/bark.py +75 -0
- package/scripts/monitor/channels/base.py +36 -0
- package/scripts/monitor/health.py +148 -0
- package/scripts/monitor/manager.py +229 -0
- package/scripts/portfolio/__init__.py +13 -0
- package/scripts/portfolio/__pycache__/__init__.cpython-314.pyc +0 -0
- package/scripts/portfolio/__pycache__/manager.cpython-314.pyc +0 -0
- package/scripts/portfolio/manager.py +329 -0
- package/scripts/portfolio/performance.py +209 -0
- package/scripts/screener.py +78 -23
- package/scripts/strategies/factors/__pycache__/liquidity.cpython-314.pyc +0 -0
- package/scripts/strategies/factors/liquidity.py +1 -1
- package/skills/backtest/SKILL.md +57 -0
- package/skills/help/SKILL.md +69 -5
- package/skills/monitor/SKILL.md +98 -0
- package/skills/portfolio/SKILL.md +135 -40
- package/skills/stock/SKILL.md +99 -1
- package/skills/{init → stock-init}/SKILL.md +5 -5
- package/workflow.md +36 -2
- package/scripts/common.py +0 -507
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,42 @@
|
|
|
5
5
|
格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/),
|
|
6
6
|
版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
|
|
7
7
|
|
|
8
|
+
## [1.2.3] - 2026-06-09
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- 更新 `methodology.md`:策略权重更新为五因子模型,新增波动率因子权重配置
|
|
13
|
+
- 更新 `docs/product-architecture.md`:添加五因子详解表格,更新策略权重与代码一致
|
|
14
|
+
|
|
15
|
+
### Documentation
|
|
16
|
+
|
|
17
|
+
- 明确五因子模型:质量、估值、动量、流动性、波动率
|
|
18
|
+
- 添加各因子评分逻辑说明
|
|
19
|
+
|
|
20
|
+
## [1.2.2] - 2026-06-09
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
|
|
24
|
+
- 更新 `workflow.md`:新增 monitor、stock-init、backtest、help 等 4 个 skill,扩展工作流至 12 个技能
|
|
25
|
+
- 更新技能速查表:添加决策门槛量化标准(监控告警、回测验证)
|
|
26
|
+
|
|
27
|
+
### Documentation
|
|
28
|
+
|
|
29
|
+
- 更新投资专家工作流:持仓实时监控链路、策略回测验证
|
|
30
|
+
- 完善交接字段与决策门槛
|
|
31
|
+
|
|
32
|
+
## [1.2.1] - 2026-06-09
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
|
|
36
|
+
- 更新 `docs/product-architecture.md`:新增技术架构章节,添加三层架构设计、核心技术组件、数据源矩阵、行业差异化阈值表格
|
|
37
|
+
- 更新 `docs/developer-guide.md`:更新项目结构,添加 BaseFetcher/CircuitBreaker/DataFetcherManager 核心技术说明,扩展数据源架构文档
|
|
38
|
+
|
|
39
|
+
### Documentation
|
|
40
|
+
|
|
41
|
+
- 完善开发者指南中的扩展开发说明
|
|
42
|
+
- 添加健康检查和回测验证命令说明
|
|
43
|
+
|
|
8
44
|
## [1.1.0] - 2026-06-08
|
|
9
45
|
|
|
10
46
|
### Added
|
package/README.md
CHANGED
|
@@ -66,7 +66,7 @@ claude skills list
|
|
|
66
66
|
|
|
67
67
|
## 目录结构
|
|
68
68
|
|
|
69
|
-
```
|
|
69
|
+
```text
|
|
70
70
|
stock-analyzer-skill/
|
|
71
71
|
├── .claude-plugin/ # Claude Code plugin 配置
|
|
72
72
|
│ ├── plugin.json # plugin 元数据
|
|
@@ -82,37 +82,101 @@ stock-analyzer-skill/
|
|
|
82
82
|
│ ├── investment-researcher/SKILL.md
|
|
83
83
|
│ └── help/SKILL.md
|
|
84
84
|
├── scripts/ # 工具脚本(Python stdlib only)
|
|
85
|
-
│ ├──
|
|
86
|
-
│ ├──
|
|
87
|
-
│
|
|
88
|
-
│ ├──
|
|
85
|
+
│ ├── api/ # CLI 入口层
|
|
86
|
+
│ │ ├── quote_cli.py # 行情查询 CLI
|
|
87
|
+
│ │ └── screener_cli.py # 选股器 CLI
|
|
88
|
+
│ ├── business/ # 业务逻辑层
|
|
89
|
+
│ │ ├── stock_analysis.py # 个股分析服务
|
|
90
|
+
│ │ └── screening_service.py # 选股服务
|
|
91
|
+
│ ├── common/ # 基础设施层
|
|
92
|
+
│ │ ├── __init__.py # HTTP 请求、编码转换、字段映射
|
|
93
|
+
│ │ ├── validators.py # 输入验证器
|
|
94
|
+
│ │ └── exceptions/ # 统一异常类
|
|
95
|
+
│ ├── config/ # 配置外部化
|
|
96
|
+
│ │ ├── loader.py # YAML 配置加载器
|
|
97
|
+
│ │ ├── data_source.yaml # 数据源端点配置
|
|
98
|
+
│ │ ├── industry_thresholds.yaml # 行业差异化阈值
|
|
99
|
+
│ │ ├── scoring.yaml # 评分权重配置
|
|
100
|
+
│ │ └── limits.yaml # 限流与超时配置
|
|
101
|
+
│ ├── data/ # 数据层
|
|
102
|
+
│ │ ├── types.py # 数据类型定义
|
|
103
|
+
│ │ ├── cache.py # 缓存管理
|
|
104
|
+
│ │ ├── config.py # 数据配置
|
|
105
|
+
│ │ ├── industry_thresholds.json # 行业阈值数据
|
|
106
|
+
│ │ ├── sector_etf.csv # 板块 ETF 清单
|
|
107
|
+
│ │ ├── sector_stocks.json # 板块核心标的库
|
|
108
|
+
│ │ ├── sector_mapping.json # 板块映射关系
|
|
109
|
+
│ │ └── portfolio_example.json # 持仓配置示例
|
|
110
|
+
│ ├── fetchers/ # 数据获取层(多数据源适配)
|
|
111
|
+
│ │ ├── tencent_quote.py # 腾讯实时行情
|
|
112
|
+
│ │ ├── eastmoney_quote.py # 东财实时行情
|
|
113
|
+
│ │ ├── eastmoney_finance.py # 东财财务数据
|
|
114
|
+
│ │ ├── eastmoney_kline.py # 东财 K 线
|
|
115
|
+
│ │ ├── sina_quote.py # 新浪行情
|
|
116
|
+
│ │ ├── sina_kline.py # 新浪 K 线
|
|
117
|
+
│ │ ├── akshare_quote.py # AkShare 行情
|
|
118
|
+
│ │ ├── akshare_finance.py # AkShare 财务
|
|
119
|
+
│ │ ├── akshare_kline.py # AkShare K 线
|
|
120
|
+
│ │ ├── efinance_*.py # efinance 适配
|
|
121
|
+
│ │ ├── baostock_kline.py # baostock K 线
|
|
122
|
+
│ │ ├── pytdx_*.py # pytdx 适配
|
|
123
|
+
│ │ ├── tushare_*.py # tushare 适配
|
|
124
|
+
│ │ └── yfinance_kline.py # yfinance K 线(港股/美股)
|
|
125
|
+
│ ├── strategies/ # 选股策略系统
|
|
126
|
+
│ │ ├── registry.py # 策略注册中心
|
|
127
|
+
│ │ ├── thresholds.py # 阈值管理
|
|
128
|
+
│ │ └── factors/ # 因子实现
|
|
129
|
+
│ ├── technical/ # 技术分析模块
|
|
130
|
+
│ │ ├── macd.py / kdj.py / boll.py / rsi.py # 指标计算
|
|
131
|
+
│ │ ├── moving_average.py # 均线系统
|
|
132
|
+
│ │ ├── volume.py # 量价分析
|
|
133
|
+
│ │ ├── trend.py # 趋势判断
|
|
134
|
+
│ │ ├── candlestick.py # K 线形态
|
|
135
|
+
│ │ ├── astock.py # A 股特色指标
|
|
136
|
+
│ │ ├── signals.py # 信号生成
|
|
137
|
+
│ │ ├── scoring.py # 综合评分
|
|
138
|
+
│ │ └── report.py # 报告生成
|
|
139
|
+
│ ├── infrastructure/ # 基础设施(预留)
|
|
89
140
|
│ ├── announcements.py # 东财公告/研报
|
|
90
|
-
│ ├──
|
|
91
|
-
│ ├── technical.py # 纯技术分析
|
|
92
|
-
│ ├── classifier.py # 个股类型分类
|
|
141
|
+
│ ├── backtest.py # 历史回测引擎
|
|
93
142
|
│ ├── chan.py # 缠论结构
|
|
94
|
-
│
|
|
95
|
-
├──
|
|
96
|
-
│ ├──
|
|
97
|
-
│ ├──
|
|
98
|
-
│
|
|
143
|
+
│ ├── classifier.py # 个股类型分类
|
|
144
|
+
│ ├── finance.py # 财务数据入口
|
|
145
|
+
│ ├── init_pool.py # 候选池初始化
|
|
146
|
+
│ ├── kline.py # K 线数据入口
|
|
147
|
+
│ ├── monitor.py # 实时监控
|
|
148
|
+
│ ├── patterns_local.py # A 股本土战法形态
|
|
149
|
+
│ ├── quote.py # 行情数据入口
|
|
150
|
+
│ ├── refresh_pool.py # 候选池刷新
|
|
151
|
+
│ ├── screener.py # A 股多因子选股器
|
|
152
|
+
│ └── technical.py # 技术分析入口
|
|
153
|
+
├── data/ # 输出数据
|
|
154
|
+
│ └── reports/ # 分析报告
|
|
99
155
|
├── experts/ # 8 人专家定义
|
|
100
|
-
│ ├── buffett.md
|
|
101
|
-
│ ├──
|
|
102
|
-
│
|
|
103
|
-
|
|
104
|
-
│ ├──
|
|
105
|
-
│ ├──
|
|
106
|
-
│ ├──
|
|
107
|
-
│ └──
|
|
108
|
-
├──
|
|
109
|
-
│
|
|
156
|
+
│ ├── buffett.md / lynch.md / soros.md / duan_yongping.md
|
|
157
|
+
│ ├── xu_xiang.md / zhao_laoge.md / chaogu_yangjia.md / zuoshou_xinyi.md
|
|
158
|
+
│ └── decide.md # 决策整合规则
|
|
159
|
+
├── tests/ # 测试套件
|
|
160
|
+
│ ├── conftest.py # pytest 配置与 fixtures
|
|
161
|
+
│ ├── smoke_test.sh # 端到端冒烟测试
|
|
162
|
+
│ ├── test_*.py # 单元测试
|
|
163
|
+
│ └── unit/ # 更多单元测试
|
|
164
|
+
├── docs/ # 详细文档
|
|
165
|
+
│ ├── quick-start.md # 快速入门
|
|
166
|
+
│ ├── user-guide.md # 使用者指南
|
|
167
|
+
│ ├── developer-guide.md # 开发者指南
|
|
168
|
+
│ ├── methodology.md # 方法论文档
|
|
169
|
+
│ ├── api-reference.md # API 参考
|
|
170
|
+
│ ├── implementation-plan.md # 实现计划
|
|
171
|
+
│ └── improvement-roadmap.md # 改进路线图
|
|
110
172
|
├── package.json # npm 发布配置
|
|
173
|
+
├── pyproject.toml # Python 项目配置
|
|
111
174
|
├── install-plugin.js # npm postinstall 脚本
|
|
112
175
|
├── install.sh # 传统安装脚本
|
|
113
176
|
├── README.md # 本文件
|
|
177
|
+
├── CHANGELOG.md # 版本变更记录
|
|
114
178
|
├── CONTRIBUTING.md # 贡献指南
|
|
115
|
-
├── workflow.md #
|
|
179
|
+
├── workflow.md # 9 个 skill 的协作流程
|
|
116
180
|
└── methodology.md # 完整投资方法论
|
|
117
181
|
```
|
|
118
182
|
|
|
@@ -120,7 +184,7 @@ stock-analyzer-skill/
|
|
|
120
184
|
|
|
121
185
|
### 快速个股分析
|
|
122
186
|
|
|
123
|
-
```
|
|
187
|
+
```text
|
|
124
188
|
/stock sh600989
|
|
125
189
|
```
|
|
126
190
|
|
|
@@ -128,7 +192,7 @@ stock-analyzer-skill/
|
|
|
128
192
|
|
|
129
193
|
### 大盘快评
|
|
130
194
|
|
|
131
|
-
```
|
|
195
|
+
```text
|
|
132
196
|
/market quick
|
|
133
197
|
```
|
|
134
198
|
|
|
@@ -136,15 +200,15 @@ stock-analyzer-skill/
|
|
|
136
200
|
|
|
137
201
|
### 持仓健康检查
|
|
138
202
|
|
|
139
|
-
```
|
|
203
|
+
```text
|
|
140
204
|
/portfolio
|
|
141
205
|
```
|
|
142
206
|
|
|
143
|
-
读取 `data/portfolio_example.json`(可复制为 `portfolio.json` 自定义持仓)。
|
|
207
|
+
读取 `scripts/data/portfolio_example.json`(可复制为 `portfolio.json` 自定义持仓)。
|
|
144
208
|
|
|
145
209
|
### 多因子选股
|
|
146
210
|
|
|
147
|
-
```
|
|
211
|
+
```text
|
|
148
212
|
/screener --sector 资源 --strategy quality_value --top 5
|
|
149
213
|
```
|
|
150
214
|
|
|
@@ -152,7 +216,7 @@ stock-analyzer-skill/
|
|
|
152
216
|
|
|
153
217
|
### 技术面确认
|
|
154
218
|
|
|
155
|
-
```
|
|
219
|
+
```text
|
|
156
220
|
/technical sh600989 --quick
|
|
157
221
|
```
|
|
158
222
|
|
|
@@ -160,7 +224,7 @@ stock-analyzer-skill/
|
|
|
160
224
|
|
|
161
225
|
### 完整五层 + 专家辩论
|
|
162
226
|
|
|
163
|
-
```
|
|
227
|
+
```text
|
|
164
228
|
/stock sh600989 debate
|
|
165
229
|
```
|
|
166
230
|
|
|
@@ -168,7 +232,7 @@ stock-analyzer-skill/
|
|
|
168
232
|
|
|
169
233
|
### 查看帮助
|
|
170
234
|
|
|
171
|
-
```
|
|
235
|
+
```text
|
|
172
236
|
/help
|
|
173
237
|
```
|
|
174
238
|
|
|
@@ -177,11 +241,11 @@ stock-analyzer-skill/
|
|
|
177
241
|
## 自定义持仓
|
|
178
242
|
|
|
179
243
|
```bash
|
|
180
|
-
cp data/portfolio_example.json data/portfolio.json
|
|
244
|
+
cp scripts/data/portfolio_example.json scripts/data/portfolio.json
|
|
181
245
|
# 编辑 portfolio.json,修改 codes 字段
|
|
182
246
|
```
|
|
183
247
|
|
|
184
|
-
`/portfolio` 命令默认读取 `data/portfolio.json`(或 `data/portfolio_example.json` 作为回退)。
|
|
248
|
+
`/portfolio` 命令默认读取 `scripts/data/portfolio.json`(或 `scripts/data/portfolio_example.json` 作为回退)。
|
|
185
249
|
|
|
186
250
|
## 数据源
|
|
187
251
|
|
|
@@ -220,7 +284,10 @@ cp data/portfolio_example.json data/portfolio.json
|
|
|
220
284
|
## 解耦特性
|
|
221
285
|
|
|
222
286
|
✅ **零项目依赖**:不引用任何业务项目内文件(`src/`、`data_provider/`、`AGENTS.md` 等)
|
|
223
|
-
✅ **零外部 Python 库**:只用 stdlib(`urllib` + `json` + `pathlib`)
|
|
287
|
+
✅ **零外部 Python 库**:只用 stdlib(`urllib` + `json` + `pathlib` + `yaml`)
|
|
288
|
+
✅ **三层架构**:API 层(CLI 入口)→ Business 层(业务逻辑)→ Data 层(数据获取/缓存),职责清晰
|
|
289
|
+
✅ **配置外部化**:行业阈值、评分权重、数据源端点等均通过 YAML 配置,无需改代码
|
|
290
|
+
✅ **多数据源适配**:fetchers/ 下统一接口,腾讯/东财/新浪/AkShare 等可自由切换
|
|
224
291
|
✅ **单源真理**:方法论、数据、脚本各自集中在一处
|
|
225
292
|
✅ **可移植**:可打包为 git 仓库或 npm 包分发
|
|
226
293
|
|
|
@@ -241,19 +308,23 @@ rm -f ~/.claude/skills/stock ~/.claude/skills/market ~/.claude/skills/sector ~/.
|
|
|
241
308
|
|
|
242
309
|
## 近期改进
|
|
243
310
|
|
|
311
|
+
- **三层架构重构**:scripts/ 拆分为 API 层(cli 入口)、Business 层(分析/选股服务)、Data 层(fetchers/缓存/配置),职责清晰、易扩展
|
|
312
|
+
- **配置外部化**:行业阈值、评分权重、数据源端点等提取为 YAML 配置(`scripts/config/`),无需改代码即可调整
|
|
313
|
+
- **多数据源适配**:新增 fetchers/ 统一接口层,支持腾讯/东财/新浪/AkShare/eFinance/baostock/pytdx/tushare/yfinance 等 9+ 数据源自由切换
|
|
314
|
+
- **统一异常与验证**:新增 `common/exceptions/` 统一异常类、`common/validators.py` 输入验证器
|
|
244
315
|
- **Plugin 化分发**:支持通过 Claude Code plugin 系统一键安装,无需重启
|
|
245
316
|
- **帮助系统**:新增 `/help` skill,显示所有可用 skills 和使用说明
|
|
317
|
+
- **回测引擎**:新增 `backtest.py`,支持策略历史回测验证
|
|
318
|
+
- **候选池管理**:新增 `init_pool.py` / `refresh_pool.py`,支持候选池初始化与定期刷新
|
|
319
|
+
- **实时监控**:新增 `monitor.py`,支持持仓和关注标的实时监控
|
|
246
320
|
- **行业差异化阈值**:五层分析框架按行业分档(金融/消费/科技/周期/医药/制造/能源/地产),避免一刀切误判
|
|
247
321
|
- **风控体系强化**:集中度控制(单只≤15%、单行业≤30%)、时间止损、极端情景预案、加仓规则
|
|
248
|
-
- **缠论盘整背驰**:补全中枢进入段 vs 离开段的 MACD 面积对比
|
|
249
|
-
- **评分上限修正**:各维度评分独立 clamp,总分不超过 100
|
|
250
|
-
- **流动性板块差异化**:主板/创业板/科创板/北交所使用不同满分阈值
|
|
251
322
|
- **专家权重优化**:长短线权重随投资期限变化,巴菲特否决权限定中长期模式
|
|
252
323
|
- **工作流增强**:交接字段补充投资期限/催化剂/论点破灭条件,决策门槛量化
|
|
253
324
|
|
|
254
325
|
## 已知限制
|
|
255
326
|
|
|
256
327
|
- 实时数据依赖外部 API 端点稳定性;如遇变更,修改 `scripts/common.py` 中端点即可
|
|
257
|
-
- portfolio skill 默认读取 `data/portfolio_example.json` 作为示例,实际使用前需自定义
|
|
328
|
+
- portfolio skill 默认读取 `scripts/data/portfolio_example.json` 作为示例,实际使用前需自定义
|
|
258
329
|
- 部分 API(如东财公告)可能有反爬限制,已加超时和重试
|
|
259
330
|
- 多因子权重基于经验设定,尚未经过历史回测验证
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
# 近期深度分析股票汇总
|
|
2
|
+
|
|
3
|
+
> 汇总时间:2026-06-08 | 分析框架:五层分析 + 8人专家圆桌
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 一、分析方法论
|
|
8
|
+
|
|
9
|
+
### 1.1 五层分析框架
|
|
10
|
+
|
|
11
|
+
| 层级 | 分析内容 | 输出 |
|
|
12
|
+
|------|----------|------|
|
|
13
|
+
| 基本面 | ROE/增速/毛利/负债/现金流 | 评级(A/B/C) |
|
|
14
|
+
| 估值 | PE/PEG/PE-ROE | 评级(低估/合理/偏贵) |
|
|
15
|
+
| 技术面 | K线趋势/支撑阻力/量价 | 评级(强/中/弱) |
|
|
16
|
+
| 板块 | 所属板块/大宗商品/行业景气 | 评级 |
|
|
17
|
+
| 风险收益比 | 情景分析+概率加权 | 期望收益% |
|
|
18
|
+
|
|
19
|
+
### 1.2 专家圆桌机制
|
|
20
|
+
|
|
21
|
+
**长线组**:巴菲特(价值)、彼得·林奇(成长)、索罗斯(趋势)、段永平(逆向)
|
|
22
|
+
|
|
23
|
+
**短线组**:徐翔(涨停板)、赵老哥(趋势龙头)、炒股养家(情绪流)、作手新一(低吸)
|
|
24
|
+
|
|
25
|
+
**决策规则**:
|
|
26
|
+
- 市场环境权重:震荡市(长线55%,短线45%)
|
|
27
|
+
- 冲突解决:巴菲特≤39触发否决权
|
|
28
|
+
- 信心指数 = 一致性分×0.4 + 综合分×0.6
|
|
29
|
+
|
|
30
|
+
### 1.3 输出格式模板
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
## 一句话结论
|
|
34
|
+
[核心判断 + 置信度]
|
|
35
|
+
|
|
36
|
+
## 一、五层分析
|
|
37
|
+
### 第1层:基本面 评级 [A/B/C]
|
|
38
|
+
[财务指标表格]
|
|
39
|
+
|
|
40
|
+
### 第2层:估值 评级 [低估/合理/偏贵]
|
|
41
|
+
[PE/PEG/同业对比]
|
|
42
|
+
|
|
43
|
+
### 第3层:技术面 评级 [强/中/弱]
|
|
44
|
+
[技术指标 + 支撑阻力]
|
|
45
|
+
|
|
46
|
+
### 第4层:板块
|
|
47
|
+
[行业景气 + 大宗商品]
|
|
48
|
+
|
|
49
|
+
### 第5层:风险收益比
|
|
50
|
+
[情景分析 + 凯利公式仓位]
|
|
51
|
+
|
|
52
|
+
## 二、8人专家圆桌
|
|
53
|
+
[评分表 + 分组汇总 + 信心指数]
|
|
54
|
+
|
|
55
|
+
## 三、综合投资建议
|
|
56
|
+
[评级 + 仓位 + 止损止盈 + 跟踪条件]
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## 二、股票分析汇总
|
|
62
|
+
|
|
63
|
+
### 2.1 海尔智家(600690)
|
|
64
|
+
|
|
65
|
+
| 维度 | 数据 | 评级 |
|
|
66
|
+
|------|------|------|
|
|
67
|
+
| 现价 | 20.17元 | - |
|
|
68
|
+
| 涨跌 | -0.69% | - |
|
|
69
|
+
| PE | 10.11 | 低估 |
|
|
70
|
+
| 2025 ROE | 16.98% | A |
|
|
71
|
+
| Q1净利增速 | -15.22% | C |
|
|
72
|
+
| 负债率 | 55.15% | B+ |
|
|
73
|
+
| 技术评分 | 50.5 | 中性 |
|
|
74
|
+
| **综合评级** | **Hold/Observe** | 置信度65% |
|
|
75
|
+
|
|
76
|
+
**核心逻辑**:PE 10x偏低估,ROE达标,但Q1业绩下滑15%短期承压��技术面偏弱
|
|
77
|
+
|
|
78
|
+
**风险点**:Q1净利下滑、毛利率持续收窄、白电行业增速放缓
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
### 2.2 宝丰能源(600989)
|
|
83
|
+
|
|
84
|
+
| 维度 | 数据 | 评级 |
|
|
85
|
+
|------|------|------|
|
|
86
|
+
| 现价 | 23.60元 | - |
|
|
87
|
+
| 涨跌 | +0.73% | - |
|
|
88
|
+
| PE | 13.76 | 低估 |
|
|
89
|
+
| 2025 ROE | 24.84% | A+ |
|
|
90
|
+
| Q1净利增速 | +50.23% | A |
|
|
91
|
+
| 毛利率 | 37.40% | A |
|
|
92
|
+
| 负债率 | 44.86% | A |
|
|
93
|
+
| 技术评分 | 68.6 | 偏多 |
|
|
94
|
+
| **综合评级** | **Buy** | 置信度78% |
|
|
95
|
+
|
|
96
|
+
**核心逻辑**:ROE 25%顶级,净利增速50%+,PEG仅0.17严重低估,技术面三阴一阳+缠论底背驰
|
|
97
|
+
|
|
98
|
+
**催化剂**:油价高位运行、内蒙古项目放量、估值修复
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
### 2.3 云铝股份(000807)
|
|
103
|
+
|
|
104
|
+
| 维度 | 数据 | 评级 |
|
|
105
|
+
|------|------|------|
|
|
106
|
+
| 现价 | 26.80元 | - |
|
|
107
|
+
| 涨跌 | -3.04% | - |
|
|
108
|
+
| PE | 10.71 | 低估 |
|
|
109
|
+
| 2025 ROE | 19.70% | A |
|
|
110
|
+
| Q1净利增速 | +269.45% | A+ |
|
|
111
|
+
| 毛利率 | 31.57% | A |
|
|
112
|
+
| 净利率 | 25.30% | A+ |
|
|
113
|
+
| 负债率 | 17.74% | A+ |
|
|
114
|
+
| 技术评分 | 63.5 | 偏多 |
|
|
115
|
+
| **综合评级** | **Buy** | 置信度80% |
|
|
116
|
+
|
|
117
|
+
**核心逻辑**:Q1净利暴增269%创纪录,PE仅10.7x,负债率17.7%极安全,技术面双针探底+老鸭头
|
|
118
|
+
|
|
119
|
+
**催化剂**:铝价高位、电解铝满产、绿电优势
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
### 2.4 洛阳钼业(603993)
|
|
124
|
+
|
|
125
|
+
| 维度 | 数据 | 评级 |
|
|
126
|
+
|------|------|------|
|
|
127
|
+
| 现价 | 16.89元 | - |
|
|
128
|
+
| 涨跌 | -7.15% | - |
|
|
129
|
+
| PE | 14.96 | 低估 |
|
|
130
|
+
| 2025 ROE | 26.61% | A+ |
|
|
131
|
+
| Q1净利增速 | +96.65% | A |
|
|
132
|
+
| 毛利率 | 22.88% | B+ |
|
|
133
|
+
| 负债率 | 52.03% | B |
|
|
134
|
+
| 技术评分 | 70.6 | 偏多 |
|
|
135
|
+
| **综合评级** | **Buy** | 置信度75% |
|
|
136
|
+
|
|
137
|
+
**核心逻辑**:铜金双极战略,Q1净利+97%,PE仅15x,MACD底背离+老鸭头技术面共振
|
|
138
|
+
|
|
139
|
+
**催化剂**:铜价高位、金价上涨、KFM铜钴矿放量
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
### 2.5 贵研铂业(600459)
|
|
144
|
+
|
|
145
|
+
| 维度 | 数据 | 评级 |
|
|
146
|
+
|------|------|------|
|
|
147
|
+
| 现价 | 23.85元 | - |
|
|
148
|
+
| 涨跌 | -3.64% | - |
|
|
149
|
+
| PE | 29.79 | 偏高 |
|
|
150
|
+
| 2025 ROE | 8.75% | C |
|
|
151
|
+
| Q1净利增速 | +9.13% | C |
|
|
152
|
+
| 毛利率 | 3.63% | C |
|
|
153
|
+
| 净利率 | 1.80% | C |
|
|
154
|
+
| 负债率 | 64.91% | C |
|
|
155
|
+
| 技术评分 | 57.0 | 中性 |
|
|
156
|
+
| **综合评级** | **Hold** | 置信度55% |
|
|
157
|
+
|
|
158
|
+
**核心逻辑**:贵金属催化剂概念热门,但基本面薄弱(ROE 8.8%、净利率1.8%),PE 30x偏贵
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
### 2.6 华友钴业(603799)
|
|
163
|
+
|
|
164
|
+
| 维度 | 数据 | 评级 |
|
|
165
|
+
|------|------|------|
|
|
166
|
+
| 现价 | 46.72元 | - |
|
|
167
|
+
| 涨跌 | -6.49% | - |
|
|
168
|
+
| PE | 12.05 | 低估 |
|
|
169
|
+
| 2025 ROE | 13.70% | B |
|
|
170
|
+
| Q1净利增速 | +99.45% | A |
|
|
171
|
+
| 毛利率 | 20.69% | B+ |
|
|
172
|
+
| 负债率 | 63.57% | C |
|
|
173
|
+
| 技术评分 | 46.2 | 中性偏弱 |
|
|
174
|
+
| **综合评级** | **Hold** | 置信度65% |
|
|
175
|
+
|
|
176
|
+
**核心逻辑**:Q1净利翻倍,PE 12x低估,但技术面极弱(MACD死叉、均线空头),负债率63.6%偏高
|
|
177
|
+
|
|
178
|
+
**催化剂**:钴价回暖、一体化成效
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
### 2.7 中兴通讯(000063)
|
|
183
|
+
|
|
184
|
+
| 维度 | 数据 | 评级 |
|
|
185
|
+
|------|------|------|
|
|
186
|
+
| 现价 | 36.81元 | - |
|
|
187
|
+
| 涨跌 | -5.93% | - |
|
|
188
|
+
| PE | 39.35 | **高估** |
|
|
189
|
+
| 2025 ROE | 7.58% | C |
|
|
190
|
+
| Q1净利增速 | **-46.58%** | **C** |
|
|
191
|
+
| 毛利率 | 28.28% | B |
|
|
192
|
+
| 净利率 | 3.77% | C |
|
|
193
|
+
| 负债率 | 65.87% | C |
|
|
194
|
+
| 技术评分 | 58.5 | 中性 |
|
|
195
|
+
| **综合评级** | **Sell** | 置信度55% |
|
|
196
|
+
|
|
197
|
+
**核心逻辑**:PE 39x严重高估,净利连续负增长(-33%、-46%),ROE仅7.6%远低于15%优秀线
|
|
198
|
+
|
|
199
|
+
**风险点**:运营商业务承压、手机亏损、估值泡沫
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## 三、对比总结
|
|
204
|
+
|
|
205
|
+
### 3.1 评级排序
|
|
206
|
+
|
|
207
|
+
| 排名 | 股票 | 评级 | 置信度 | PE | Q1增速 |
|
|
208
|
+
|------|------|------|--------|-----|--------|
|
|
209
|
+
| 1 | 云铝股份 | Buy | 80% | 10.7 | +269% |
|
|
210
|
+
| 2 | 宝丰能源 | Buy | 78% | 13.8 | +50% |
|
|
211
|
+
| 3 | 洛阳钼业 | Buy | 75% | 15.0 | +97% |
|
|
212
|
+
| 4 | 华友钴业 | Hold | 65% | 12.1 | +99% |
|
|
213
|
+
| 5 | 海尔智家 | Hold | 65% | 10.1 | -15% |
|
|
214
|
+
| 6 | 贵研铂业 | Hold | 55% | 29.8 | +9% |
|
|
215
|
+
| 7 | 中兴通讯 | **Sell** | 55% | 39.4 | **-47%** |
|
|
216
|
+
|
|
217
|
+
### 3.2 关键指标对比
|
|
218
|
+
|
|
219
|
+
| 股票 | PE | ROE(2025) | Q1增速 | 负债率 | 技术分 |
|
|
220
|
+
|------|-----|-----------|--------|--------|--------|
|
|
221
|
+
| 云铝股份 | 10.7 | 19.7% | +269% | 17.7% | 63.5 |
|
|
222
|
+
| 宝丰能源 | 13.8 | 24.8% | +50% | 44.9% | 68.6 |
|
|
223
|
+
| 洛阳钼业 | 15.0 | 26.6% | +97% | 52.0% | 70.6 |
|
|
224
|
+
| 华友钴业 | 12.1 | 13.7% | +99% | 63.6% | 46.2 |
|
|
225
|
+
| 海尔智家 | 10.1 | 17.0% | -15% | 55.2% | 50.5 |
|
|
226
|
+
| 贵研铂业 | 29.8 | 8.8% | +9% | 64.9% | 57.0 |
|
|
227
|
+
| 中兴通讯 | **39.4** | 7.6% | **-47%** | 65.9% | 58.5 |
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## 四、经验总结
|
|
232
|
+
|
|
233
|
+
### 4.1 选股核心逻辑
|
|
234
|
+
|
|
235
|
+
1. **基本面优先**:ROE > 15%、净利增速 > 20%、毛利率 > 30%
|
|
236
|
+
2. **估值匹配**:PE/ROE < 3,PEG < 1(高增长允许放宽)
|
|
237
|
+
3. **技术面确认**:趋势向上、支撑有效、买入信号共振
|
|
238
|
+
4. **同业对比**:确认相对优势,避免估值陷阱
|
|
239
|
+
|
|
240
|
+
### 4.2 风险识别模式
|
|
241
|
+
|
|
242
|
+
| 风险类型 | 识别信号 | 典型案例 |
|
|
243
|
+
|----------|----------|----------|
|
|
244
|
+
| 业绩下滑 | Q1增速转负 | 中兴通讯(-47%) |
|
|
245
|
+
| 估值泡沫 | PE > 30 且负增长 | 中兴通讯(PE 39x) |
|
|
246
|
+
| 负债过高 | 负债率 > 60% | 华友钴业(63.6%) |
|
|
247
|
+
| 技术破位 | MACD���叉+放量下跌 | 华友钴业 |
|
|
248
|
+
| 周期陷阱 | 低价但无成长 | 贵研铂业(PE 30x) |
|
|
249
|
+
|
|
250
|
+
### 4.3 今日市场特征
|
|
251
|
+
|
|
252
|
+
- 沪深300ETF: -2.15%(大盘偏弱)
|
|
253
|
+
- 有色/能源/AI板块领跌
|
|
254
|
+
- 7只分析股票中6只下跌,仅宝丰能源微涨
|
|
255
|
+
- 市场整体处于震荡调整期
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## 五、后续跟踪
|
|
260
|
+
|
|
261
|
+
| 股票 | 跟踪指标 | 预期信号 |
|
|
262
|
+
|------|----------|----------|
|
|
263
|
+
| 云铝股份 | Q2财报、铝价 | 增速维持50%+ |
|
|
264
|
+
| 宝丰能源 | 油价、内蒙古项目 | 钴价/烯烃价格 |
|
|
265
|
+
| 洛阳钼业 | 铜价、KFM投产 | 铜价维持9000+ |
|
|
266
|
+
| 华友钴业 | 钴价、负债率下降 | MACD金叉 |
|
|
267
|
+
| 中兴通讯 | 算力业务订单 | Q2业绩拐点 |
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
> **注意**:本汇总仅供方法论参考,不构成投资建议。投资有风险,入市需谨慎。
|
package/experts/README.md
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
# 8 人专家圆桌 · 投资哲学档案库
|
|
2
2
|
|
|
3
|
+
> 版本:v1.1.0(2026-06-08)
|
|
4
|
+
> 数据接口更新:所有调用方式已适配 `scripts/data/` 和 `scripts/common/` 模块
|
|
5
|
+
|
|
3
6
|
本目录是 [methodology.md §三 专家讨论模式](../methodology.md#三专家讨论模式8人圆桌) 的扩展档案库。
|
|
4
7
|
每位专家单独成文,深度档(1200-1500 中文字),覆盖:
|
|
5
8
|
|
|
@@ -97,13 +100,31 @@
|
|
|
97
100
|
|
|
98
101
|
**标准流程**:
|
|
99
102
|
|
|
100
|
-
1.
|
|
101
|
-
2.
|
|
103
|
+
1. 获取目标股票数据(`scripts/data/`)
|
|
104
|
+
2. 获取大盘环境数据(`scripts/quote.py sh000001,sh510300` 或 `get_quote("sh000001")`)
|
|
102
105
|
3. 判断市场状态 → 确定长线/短线权重
|
|
103
106
|
4. 每位专家按 §九 评分矩阵独立打分
|
|
104
107
|
5. 按 decide.md 进行投票汇总和冲突解决
|
|
105
108
|
6. 输出:评分表 + 方向 + 风险 + 仓位
|
|
106
109
|
|
|
110
|
+
**代码示例**:
|
|
111
|
+
|
|
112
|
+
```python
|
|
113
|
+
from data import get_quote, get_quotes, get_kline, get_finance
|
|
114
|
+
|
|
115
|
+
# 获取单只股票数据
|
|
116
|
+
quote = get_quote("sh600989")
|
|
117
|
+
finance = get_finance("sh600989")
|
|
118
|
+
kline = get_kline("sh600989", scale=240, datalen=30)
|
|
119
|
+
|
|
120
|
+
# 获取多只股票数据
|
|
121
|
+
quotes = get_quotes(["sh600989", "sz000807"])
|
|
122
|
+
|
|
123
|
+
# 获取大盘数据
|
|
124
|
+
index_quote = get_quote("sh000001") # 上证指数
|
|
125
|
+
etf_quote = get_quote("sh510300") # 沪深300 ETF
|
|
126
|
+
```
|
|
127
|
+
|
|
107
128
|
---
|
|
108
129
|
|
|
109
130
|
## 使用建议
|
package/experts/buffett.md
CHANGED
|
@@ -88,4 +88,47 @@
|
|
|
88
88
|
|
|
89
89
|
### 调用方式
|
|
90
90
|
|
|
91
|
-
debate 模式中,从 scripts/ 获取最新 ROE/PE/负债率/FCF 后,按上表打分。估值分需结合 PE 历史分位调整——A 股取近 5 年 PE 分位,<20%分位额外+15分,>80%分位额外-20分。
|
|
91
|
+
debate 模式中,从 `scripts/data/` 获取最新 ROE/PE/负债率/FCF 后,按上表打分。估值分需结合 PE 历史分位调整——A 股取近 5 年 PE 分位,<20%分位额外+15分,>80%分位额外-20分。
|
|
92
|
+
|
|
93
|
+
**代码示例:**
|
|
94
|
+
|
|
95
|
+
```python
|
|
96
|
+
from data import get_quote, get_finance
|
|
97
|
+
from common import to_float
|
|
98
|
+
|
|
99
|
+
# 获取数据
|
|
100
|
+
quote = get_quote("sh600989")
|
|
101
|
+
fin = get_finance("sh600989")[0]
|
|
102
|
+
|
|
103
|
+
# 基本面维度
|
|
104
|
+
roe = to_float(fin.get("ROEJQ", 0))
|
|
105
|
+
if roe >= 20:
|
|
106
|
+
base_score = 100
|
|
107
|
+
elif roe >= 15:
|
|
108
|
+
base_score = 75
|
|
109
|
+
elif roe >= 10:
|
|
110
|
+
base_score = 40
|
|
111
|
+
else:
|
|
112
|
+
base_score = 0
|
|
113
|
+
|
|
114
|
+
# 估值维度
|
|
115
|
+
pe = to_float(quote.get("pe", 0))
|
|
116
|
+
if pe <= 15:
|
|
117
|
+
pe_score = 100
|
|
118
|
+
elif pe <= 25:
|
|
119
|
+
pe_score = 60
|
|
120
|
+
elif pe <= 40:
|
|
121
|
+
pe_score = 25
|
|
122
|
+
else:
|
|
123
|
+
pe_score = 0
|
|
124
|
+
|
|
125
|
+
# 安全边际维度
|
|
126
|
+
debt_ratio = to_float(fin.get("ZCFZL", 0))
|
|
127
|
+
fcf_ratio = to_float(fin.get("MGJYXJJE", 0)) / max(to_float(fin.get("EPSJB", 1)), 0.01)
|
|
128
|
+
if debt_ratio < 30 and fcf_ratio > 0.8:
|
|
129
|
+
margin_score = 100
|
|
130
|
+
elif debt_ratio < 50:
|
|
131
|
+
margin_score = 60
|
|
132
|
+
else:
|
|
133
|
+
margin_score = 0
|
|
134
|
+
```
|