# 同花顺/东方财富概念股对照功能
## 📖 功能概述
rustdx 现已支持**同花顺/东方财富概念板块**的查询功能,与通达信行业分类形成互补。
### 主要特性
✅ **概念板块查询**: 支持 10+ 个热门概念板块(新能源汽车、锂电池、芯片、AI等)
✅ **成分股列表**: 每个概念提供前 20 只成分股信息
✅ **与通达信互补**: 通达信用于行业分类,东方财富用于概念热点
✅ **完整示例**: 提供多个使用示例和综合应用场景
## 🚀 快速开始
### 1. 基本用法
```rust
use rustdx_complete::tcp::stock::get_concept_stocks;
fn main() {
// 获取新能源汽车概念的成分股
if let Some(stocks) = get_concept_stocks("新能源汽车") {
println!("新能源汽车概念成分股:");
for stock in stocks {
println!(" {}: {}", stock.code, stock.name);
}
}
}
```
### 2. 获取所有支持的概念
```rust
use rustdx_complete::tcp::stock::get_concept_names;
fn main() {
let concepts = get_concept_names();
println!("支持的概念板块:");
for concept in concepts {
println!(" - {}", concept);
}
}
```
### 3. 获取概念信息
```rust
use rustdx_complete::tcp::stock::get_concept_info;
fn main() {
if let Some((name, count)) = get_concept_info("新能源汽车") {
println!("概念: {}, 成分股数量: {}", name, count);
}
}
```
## 📊 支持的概念板块
目前支持以下热门概念板块:
| 新能源汽车 | BK0493 | 216只成分股 |
| 锂电池 | BK0885 | 19只成分股 |
| 芯片 | BK0456 | 91只成分股 |
| 军民融合 | BK0808 | 183只成分股 |
| 北斗导航 | BK0629 | 82只成分股 |
| AIGC概念 | BK1111 | 123只成分股 |
| 航母概念 | BK0715 | 32只成分股 |
| 5G概念 | BK0476 | 67只成分股 |
| 数字货币 | BK1035 | 28只成分股 |
| 人工智能 | BK0718 | 217只成分股 |
> 💡 **提示**: 每个概念返回前 20 只成分股,完整数据可通过 Python 脚本获取
## 🔄 与通达信数据的结合
### 综合使用示例
```rust
use rustdx_complete::tcp::{Tcp, Tdx};
use rustdx_complete::tcp::stock::{FinanceInfo, get_industry_name, get_concept_stocks};
fn main() {
let mut tcp = Tcp::new()?;
// 1. 通过通达信获取股票的行业分类
let mut finance = FinanceInfo::new(1, "600519"); // 贵州茅台
finance.recv_parsed(&mut tcp)?;
let info = &finance.result()[0];
println!("股票: {}", info.code);
println!("行业: {}", get_industry_name(info.industry)); // 酒类
println!("省份: {}", get_province_name(info.province)); // 贵州
// 2. 查询该股票可能所属的概念板块
if let Some(stocks) = get_concept_stocks("新能源汽车") {
println!("\n新能源汽车概念成分股:");
for stock in stocks.iter().take(5) {
println!(" {}: {}", stock.code, stock.name);
}
}
}
```
## 🛠️ 数据更新
概念板块数据是静态的,可以通过 Python 脚本定期更新:
```bash
# 运行脚本获取最新的概念板块数据
python3 scripts/generate_concept_mapping.py
```
### 更新步骤
1. 运行脚本获取最新数据
2. 将生成的 `concept_mapping.rs` 复制到 `src/tcp/stock/` 目录
3. 重新编译项目
## 📁 文件结构
```
rustdx/
├── src/tcp/stock/
│ ├── concept_mapping.rs # 概念板块映射模块
│ ├── industry_mapping.rs # 行业代码映射模块
│ └── finance_info.rs # 财务信息(含行业代码)
├── scripts/
│ └── generate_concept_mapping.py # 数据生成脚本
├── examples/
│ ├── test_concept_query.rs # 概念查询示例
│ ├── test_industry_info.rs # 行业信息示例
│ └── test_combined_info.rs # 综合使用示例
└── CONCEPT_STOCK.md # 本文档
```
## 🎯 应用场景
### 1. 板块轮动分析
```rust
// 结合通达信行业和东方财富概念
fn analyze_sector_rotation() {
// 获取热门概念
let hot_concepts = vec!["新能源汽车", "人工智能", "锂电池"];
// 结合行业数据进行分析
for concept in hot_concepts {
if let Some(stocks) = get_concept_stocks(concept) {
println!("{} 概念热门股:", concept);
// 进一步分析每只股票的基本面
}
}
}
```
### 2. 股票筛选
```rust
// 筛选特定地区和概念的股票
fn filter_stocks() {
let target_province = "深圳";
let target_concept = "人工智能";
// 获取人工智能概念的成分股
if let Some(stocks) = get_concept_stocks(target_concept) {
// 进一步筛选深圳地区的股票
// ...
}
}
```
### 3. 投资组合分析
```rust
// 分析投资组合的行业和概念分布
fn analyze_portfolio(codes: Vec<&str>) {
// 使用通达信获取行业分布
// 使用概念板块获取主题暴露
// 生成分析报告
}
```
## 📊 数据来源对比
### 通达信 vs 东方财富
| 数据类型 | 行业分类、财务数据 | 概念板块、市场热点 |
| 更新频率 | 实时 | 定期更新 |
| 分类标准 | 官方行业分类 | 市场主题概念 |
| 使用场景 | 基本面分析、价值投资 | 热点追踪、主题投资 |
| 数据来源 | 通达信行情接口 | AKShare (东方财富) |
## 🧪 运行示例
### 概念查询示例
```bash
cargo run --example test_concept_query
```
**输出示例**:
```
🚀 概念股查询示例
📗 新能源汽车概念成分股(前20只):
代码 名称
------------------------------
603278 大业股份
002634 棒杰股份
...
```
### 综合信息示例
```bash
cargo run --example test_combined_info
```
**输出示例**:
```
🚀 综合示例:通达信行业 + 东方财富概念板块
1️⃣ 通过通达信获取股票行业信息:
股票 名称 行业 省份
--------------------------------------------------
000001 平安银行 银行 深圳
600519 贵州茅台 酒类 贵州
300750 宁德时代 电气设备 福建
2️⃣ 通过东方财富查询热门概念板块:
📗 新能源汽车 概念 (显示前5只):
...
```
## 📝 API 文档
### `get_concept_stocks(concept: &str) -> Option<Vec<ConceptStock>>`
获取指定概念的成分股列表。
**参数**:
- `concept`: 概念名称(如 "新能源汽车")
**返回**:
- `Option<Vec<ConceptStock>>`: 成分股列表,如果概念不存在则返回 None
**示例**:
```rust
let stocks = get_concept_stocks("新能源汽车");
assert!(stocks.is_some());
```
### `get_concept_names() -> Vec<&'static str>`
获取所有支持的概念板块名称。
**返回**:
- `Vec<&'static str>`: 概念名称列表
**示例**:
```rust
let names = get_concept_names();
assert!(names.contains(&"新能源汽车"));
```
### `get_concept_info(concept: &str) -> Option<(&'static str, usize)>`
获取概念板块的详细信息。
**参数**:
- `concept`: 概念名称
**返回**:
- `Option<(&'static str, usize)>`: 元组包含(概念名称,成分股总数)
**示例**:
```rust
let info = get_concept_info("新能源汽车");
assert_eq!(info, Some(("新能源汽车", 216)));
```
## ⚠️ 注意事项
1. **数据时效性**: 概念板块数据需要定期更新,建议每周或每月运行一次更新脚本
2. **数据完整性**: 当前只保存每个概念的前 20 只成分股,完整数据可自行扩展
3. **概念匹配**: 不同数据源的概念名称可能不同,需要手动映射
4. **网络依赖**: Python 脚本需要网络连接才能获取最新数据
## 🔧 扩展功能
### 添加新的概念板块
1. 修改 `scripts/generate_concept_mapping.py`,添加新的概念代码
2. 运行脚本生成新的映射代码
3. 更新 `src/tcp/stock/concept_mapping.rs`
### 自定义概念板块
可以基于实际需求创建自己的概念板块映射表:
```rust
pub fn get_custom_concept_stocks() -> Vec<ConceptStock> {
vec![
ConceptStock { code: "600519", name: "贵州茅台" },
// ... 更多股票
]
}
```
## 📚 相关资源
- [AKShare 项目地址](https://github.com/jindaxiang/akshare)
- [AKShare 概念板块文档](https://akshare.akfamily.xyz/data/stock/stock.html)
- [通达信行业分类](https://zhuanlan.zhihu.com/p/1961011810472814438)
- [东方财富概念板块](https://q.10jqka.com.cn/gn/)
## 🎯 总结
rustdx 的概念板块功能为用户提供了:
✅ **双数据源支持**: 通达信(行业)+ 东方财富(概念)
✅ **灵活应用**: 基本面分析 + 热点追踪
✅ **易于更新**: Python 脚本自动生成映射代码
✅ **完整示例**: 多个使用场景和示例程序
**结合使用建议**:
- 使用通达信行业分类进行基本面分析
- 使用东方财富概念板块追踪市场热点
- 两者结合可以获得更全面的股票特征分析
---
**Sources:**
- [通达信全能实战指南·板块管理](https://zhuanlan.zhihu.com/p/1961011810472814438)
- [AKShare-股票数据-概念板块](https://zhuanlan.zhihu.com/p/358386212)
- [通达信板块概念如何和同花顺统一](https://www.douyin.com/search/%E9%80%9A%E8%BE%BE%E4%BF%A1%E6%9D%BF%E5%9D%97%E6%A6%82%E5%BF%B5%E5%A6%82%E4%BD%95%E5%92%8C%E5%90%8C%E8%8A%B1%E9%A1%BA%E7%BB%9F%E4%B8%80)