stock_fundamentals/README.md

253 lines
9.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 股票数据分析工具
这是一个用于采集和分析股票数据的Python工具。主要功能包括
1. 从雪球网获取股票数据并存储到数据库
2. 分析涨幅超过1.5%的个股
3. 按板块统计上涨股票的分布情况
4. 识别在多个热门板块中出现的股票
5. 对个股进行AI驱动的基本面分析并建立企业画像
## 环境要求
- Python 3.8+
- MySQL数据库
## 安装依赖
```bash
pip install -r requirements.txt
```
## 配置数据库
在运行脚本之前,请确保:
1. MySQL数据库已经启动
2. 创建了名为 `db_gp_cj` 的数据库
3. 数据库中存在 `stock_changes``gp_gnbk`
## 使用方法
1. 修改数据库连接信息:
`src/scripts/stock_analysis.py` 中修改 `db_url` 变量为你的数据库连接信息
2. 运行脚本:
```bash
python src/scripts/stock_analysis.py
```
## 主要功能
1. `fetch_and_store_stock_data`: 从雪球网获取股票数据并存储到数据库
2. `get_high_performance_stocks`: 分析涨幅超过1.5%的股票及其板块分布
3. `get_top_industries_and_stocks`: 分析在多个热门板块中出现的股票
## 基本面分析与企业画像
系统通过AI驱动的分析对个股进行多维度基本面分析构建全面的企业画像。每个维度分析结果都以文本形式保存并提取关键指标形成量化评估存储在数据库的`extra_info`字段中。
### 实控人和管理层持股 (management_ownership)
#### 持股稳定性 (shareholding)
- `1`: 减持比例低 - 近三年减持比例低于2%减持次数少于5次减持后持股比例仍高于5%
- `0`: 减持适中 - 减持比例在2%-5%之间减持次数不超过10次减持后持股比例仍高于5%
- `-1`: 减持比例高 - 减持次数较多或比例较高大股东持股比例已减持到5%以下
#### 管理层能力 (ability)
- `1`: 领军人物 - 实控人或高管中存在行业领军人物
- `0`: 一般水平 - 没有明显的行业领军人物
- `-1`: 存在风险 - 实控人或高管存在被证监会处罚情况或司法犯罪可能性
### 财务报表分析 (financial_report)
#### 财务报表质量 (financial_report_level)
- `2`: 优秀 - 边际向好,最新财报没有任何风险
- `1`: 良好 - 边际变化波动不高较为稳定,风险很小
- `0`: 一般 - 波动不高较为稳定,但存在一定财报隐患
- `-1`: 较差 - 财报波动较大,且存在一定财报隐患
- `-2`: 风险高 - 财报波动较大,且存在较大财报隐患
### 行业竞争格局 (industry_competition)
#### 行业发展空间 (industry_space)
- `2`: 高增长 - 市场环境、阶段和竞争格局符合未来企业高速增长
- `1`: 稳定增长 - 市场环境、阶段和竞争格局符合未来企业稳定经营
- `0`: 不确定性 - 市场环境、阶段和竞争格局存在较大不确定性
- `-1`: 不利环境 - 市场环境、阶段和竞争格局不利于企业正常经营
### 重大订单和项目进展 (recent_projects)
#### 项目进展质量 (major_events)
- `1`: 超预期 - 项目进展顺利,且订单交付/建厂等超预期
- `0`: 符合预期 - 进展顺利,但没有超预期
- `-1`: 低于预期 - 进展不顺利,或按照进度进行但仍在验证中
### 股吧讨论分析 (stock_discussion)
#### 市场情绪 (emotion)
- `1`: 乐观 - 股吧讨论情绪偏乐观
- `0`: 中性 - 股吧讨论情绪偏中性
- `-1`: 悲观 - 股吧讨论情绪偏悲观
### 产业链合作动态 (industry_cooperation)
#### 合作动态质量 (collaboration_dynamics)
- `2`: 高质量 - 近期有较多且质量高的新合作动态,具备新业务拓展能力,可体现在近一年财报中
- `1`: 一般 - 半年内合作动态频率低或质量一般,在原有业务上合作关系的衍生,对财报影响一般
- `0`: 低质量 - 没有合作动态或质量低
- `-1`: 负面 - 有负面合作关系,如解除合作或业务被其他厂商瓜分
### 券商研究与目标价 (target_price)
#### 券商评级 (securities_rating)
- `2`: 买入 - 券商评级以"买入"居多
- `1`: 增持 - 券商评级以"增持"居多
- `0`: 中性 - 券商评级以"中性"居多或无评级
- `-1`: 减持 - 券商评级以"减持"居多
- `-2`: 卖出 - 券商评级以"卖出"居多
#### 上涨/下跌空间 (odds)
- `1`: 上涨空间大 - 上涨空间大于下跌空间
- `0`: 平衡 - 上涨空间和下跌空间差不多
- `-1`: 下跌空间大 - 下跌空间大于上涨空间
### 投资建议 (investment_advice)
#### 投资建议类型 (investment_advice_type)
- `短期`: 近期(1-3个月内)有明确利好因素、催化事件或阶段性业绩改善
- `中期`: 无明确短期利好,但中期(3-12个月)业绩面临向上拐点或行业处于上升周期
- `长期`: 公司具备长期稳定的盈利能力、行业地位稳固、长期成长性好
- `不建议`: 存在风险因素、基本面恶化、估值过高或行业前景不佳
## 企业画像应用
基于上述多维度的量化指标,系统可以综合评估企业基本面状况,用于:
1. 筛选优质投资标的
2. 评估投资风险
3. 识别行业中的领先企业
4. 预判企业未来发展趋势
5. 辅助投资决策
企业基本面画像可以通过PDF报告形式输出便于投资者快速了解企业综合情况。
## 企业筛选方法
基于基本面画像的量化指标,系统支持以下类型企业的筛选:
### 1. 高成长潜力企业
- 行业发展空间 (industry_space) = 2
- 财务报表质量 (financial_report_level) ≥ 1
- 项目进展质量 (major_events) = 1
- 合作动态质量 (collaboration_dynamics) ≥ 1
- 券商评级 (securities_rating) ≥ 1
- 上涨/下跌空间 (odds) = 1
筛选逻辑:选择处于高增长行业、财务状况良好、项目进展超预期、有高质量合作动态、券商看好且上涨空间大的企业。
### 2. 稳定型龙头企业
- 管理层能力 (ability) = 1
- 持股稳定性 (shareholding) ≥ 0
- 财务报表质量 (financial_report_level) ≥ 1
- 行业发展空间 (industry_space) ≥ 1
- 合作动态质量 (collaboration_dynamics) ≥ 1
- 券商评级 (securities_rating) ≥ 0
筛选逻辑:选择管理层能力强、持股稳定、财务状况良好、行业地位稳固、有稳定合作关系的企业。
### 3. 短期投资机会
- 项目进展质量 (major_events) = 1
- 市场情绪 (emotion) = 1
- 券商评级 (securities_rating) ≥ 1
- 上涨/下跌空间 (odds) = 1
- 财务报表质量 (financial_report_level) ≥ 0
筛选逻辑:选择近期有超预期项目进展、市场情绪乐观、券商看好且上涨空间大的企业。
### 4. 价值型投资标的
- 财务报表质量 (financial_report_level) = 2
- 持股稳定性 (shareholding) = 1
- 行业发展空间 (industry_space) ≥ 0
- 合作动态质量 (collaboration_dynamics) ≥ 0
- 券商评级 (securities_rating) ≥ 0
筛选逻辑:选择财务状况优秀、持股稳定、行业环境稳定、合作关系正常的企业。
### 5. 困境反转机会
- 财务报表质量 (financial_report_level) = -1
- 项目进展质量 (major_events) = 1
- 行业发展空间 (industry_space) = 1
- 市场情绪 (emotion) = 0
- 券商评级 (securities_rating) = 0
筛选逻辑:选择当前财务状况较差但项目进展超预期、行业环境改善、市场情绪企稳的企业。
### 6. 风险规避标的
- 管理层能力 (ability) = 1
- 持股稳定性 (shareholding) = 1
- 财务报表质量 (financial_report_level) ≥ 1
- 行业发展空间 (industry_space) ≥ 0
- 合作动态质量 (collaboration_dynamics) ≥ 0
- 券商评级 (securities_rating) ≥ 0
筛选逻辑:选择管理层能力强、持股稳定、财务状况良好、行业环境稳定、合作关系正常的企业。
### 7. 创新驱动型企业
- 行业发展空间 (industry_space) = 2
- 合作动态质量 (collaboration_dynamics) = 2
- 项目进展质量 (major_events) = 1
- 财务报表质量 (financial_report_level) ≥ 0
- 券商评级 (securities_rating) ≥ 1
筛选逻辑:选择处于高增长行业、有高质量新业务合作、项目进展超预期、财务状况稳定、券商看好的企业。
### 8. 行业整合机会
- 行业发展空间 (industry_space) = 1
- 合作动态质量 (collaboration_dynamics) = 2
- 财务报表质量 (financial_report_level) ≥ 1
- 券商评级 (securities_rating) ≥ 1
- 上涨/下跌空间 (odds) = 1
筛选逻辑:选择行业环境稳定、有高质量新业务合作、财务状况良好、券商看好且上涨空间大的企业。
## 数据库查询示例
以下SQL查询示例展示了如何从数据库中筛选特定类型的企业
```sql
-- 筛选高成长潜力企业
SELECT stock_code, stock_name, dimension, ai_response, extra_info
FROM analysis_results
WHERE dimension = 'industry_competition'
AND JSON_EXTRACT(extra_info, '$.industry_space') = 2
AND stock_code IN (
SELECT stock_code
FROM analysis_results
WHERE dimension = 'financial_report'
AND JSON_EXTRACT(extra_info, '$.financial_report_level') >= 1
)
AND stock_code IN (
SELECT stock_code
FROM analysis_results
WHERE dimension = 'recent_projects'
AND JSON_EXTRACT(extra_info, '$.major_events') = 1
)
-- ... 其他条件
-- 筛选稳定型龙头企业
SELECT stock_code, stock_name, dimension, ai_response, extra_info
FROM analysis_results
WHERE dimension = 'management_ownership'
AND JSON_EXTRACT(extra_info, '$.ability') = 1
AND JSON_EXTRACT(extra_info, '$.shareholding') >= 0
AND stock_code IN (
SELECT stock_code
FROM analysis_results
WHERE dimension = 'financial_report'
AND JSON_EXTRACT(extra_info, '$.financial_report_level') >= 1
)
-- ... 其他条件
```
注意实际查询时可能需要根据数据库表结构调整SQL语句。建议根据具体需求组合使用不同的筛选条件。