rustdx 现已支持同花顺/东方财富概念板块的查询功能,与通达信行业分类形成互补。
✅ 概念板块查询: 支持 10+ 个热门概念板块(新能源汽车、锂电池、芯片、AI等) ✅ 成分股列表: 每个概念提供前 20 只成分股信息 ✅ 与通达信互补: 通达信用于行业分类,东方财富用于概念热点 ✅ 完整示例: 提供多个使用示例和综合应用场景
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);
}
}
}use rustdx_complete::tcp::stock::get_concept_names;
fn main() {
let concepts = get_concept_names();
println!("支持的概念板块:");
for concept in concepts {
println!(" - {}", concept);
}
}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 脚本获取
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 脚本定期更新:
# 运行脚本获取最新的概念板块数据
python3 scripts/generate_concept_mapping.py- 运行脚本获取最新数据
- 将生成的
concept_mapping.rs复制到src/tcp/stock/目录 - 重新编译项目
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 # 本文档
// 结合通达信行业和东方财富概念
fn analyze_sector_rotation() {
// 获取热门概念
let hot_concepts = vec!["新能源汽车", "人工智能", "锂电池"];
// 结合行业数据进行分析
for concept in hot_concepts {
if let Some(stocks) = get_concept_stocks(concept) {
println!("{} 概念热门股:", concept);
// 进一步分析每只股票的基本面
}
}
}// 筛选特定地区和概念的股票
fn filter_stocks() {
let target_province = "深圳";
let target_concept = "人工智能";
// 获取人工智能概念的成分股
if let Some(stocks) = get_concept_stocks(target_concept) {
// 进一步筛选深圳地区的股票
// ...
}
}// 分析投资组合的行业和概念分布
fn analyze_portfolio(codes: Vec<&str>) {
// 使用通达信获取行业分布
// 使用概念板块获取主题暴露
// 生成分析报告
}| 特性 | 通达信 | 东方财富概念 |
|---|---|---|
| 数据类型 | 行业分类、财务数据 | 概念板块、市场热点 |
| 更新频率 | 实时 | 定期更新 |
| 分类标准 | 官方行业分类 | 市场主题概念 |
| 使用场景 | 基本面分析、价值投资 | 热点追踪、主题投资 |
| 数据来源 | 通达信行情接口 | AKShare (东方财富) |
cargo run --example test_concept_query输出示例:
🚀 概念股查询示例
📗 新能源汽车概念成分股(前20只):
代码 名称
------------------------------
603278 大业股份
002634 棒杰股份
...
cargo run --example test_combined_info输出示例:
🚀 综合示例:通达信行业 + 东方财富概念板块
1️⃣ 通过通达信获取股票行业信息:
股票 名称 行业 省份
--------------------------------------------------
000001 平安银行 银行 深圳
600519 贵州茅台 酒类 贵州
300750 宁德时代 电气设备 福建
2️⃣ 通过东方财富查询热门概念板块:
📗 新能源汽车 概念 (显示前5只):
...
获取指定概念的成分股列表。
参数:
concept: 概念名称(如 "新能源汽车")
返回:
Option<Vec<ConceptStock>>: 成分股列表,如果概念不存在则返回 None
示例:
let stocks = get_concept_stocks("新能源汽车");
assert!(stocks.is_some());获取所有支持的概念板块名称。
返回:
Vec<&'static str>: 概念名称列表
示例:
let names = get_concept_names();
assert!(names.contains(&"新能源汽车"));获取概念板块的详细信息。
参数:
concept: 概念名称
返回:
Option<(&'static str, usize)>: 元组包含(概念名称,成分股总数)
示例:
let info = get_concept_info("新能源汽车");
assert_eq!(info, Some(("新能源汽车", 216)));- 数据时效性: 概念板块数据需要定期更新,建议每周或每月运行一次更新脚本
- 数据完整性: 当前只保存每个概念的前 20 只成分股,完整数据可自行扩展
- 概念匹配: 不同数据源的概念名称可能不同,需要手动映射
- 网络依赖: Python 脚本需要网络连接才能获取最新数据
- 修改
scripts/generate_concept_mapping.py,添加新的概念代码 - 运行脚本生成新的映射代码
- 更新
src/tcp/stock/concept_mapping.rs
可以基于实际需求创建自己的概念板块映射表:
pub fn get_custom_concept_stocks() -> Vec<ConceptStock> {
vec![
ConceptStock { code: "600519", name: "贵州茅台" },
// ... 更多股票
]
}rustdx 的概念板块功能为用户提供了:
✅ 双数据源支持: 通达信(行业)+ 东方财富(概念) ✅ 灵活应用: 基本面分析 + 热点追踪 ✅ 易于更新: Python 脚本自动生成映射代码 ✅ 完整示例: 多个使用场景和示例程序
结合使用建议:
- 使用通达信行业分类进行基本面分析
- 使用东方财富概念板块追踪市场热点
- 两者结合可以获得更全面的股票特征分析
Sources: