# 富贵系统数据底座 — 接口字典（v2，从代码直接提取）

> 所有数据通过 `DataHub` 单例获取，定义在 `~/stock/data_hub.py`。
> 使用方式：`from data_hub import DataHub; hub = DataHub(); df = hub.get_daily("600519.SH")`

---

## 📊 行情类（7个）

| 接口 | 参数 | 返回 | 数据源 | 说明 |
|:-----|:------|:------|:-------|:------|
| `get_daily(code, start, end, source)` | code=`600519.SH`, start=`20260101`, end=``, source=`auto` | DataFrame: date,open,high,low,close,vol | Tushare→Mootdx | 日K线，默认前复权。Tushare优先，不足200行自动fallback |
| `get_kline(symbol, freq, count)` | symbol=`600519`, freq=`daily`, count=`100` | DataFrame: date,open,high,low,close,volume | Mootdx | K线补充，速度快免认证 |
| `get_realtime(symbols)` | symbols=`['600519','000001']` | list of dicts | Mootdx | 实时行情快照（盘中可用） |
| `get_realtime_quotes(symbols)` | symbols=`['600519','000001']` | DataFrame | Mootdx | 实时快照行情（别名） |
| `get_realtime_trade(code, count)` | code=`600519`, count=`10` | DataFrame | Mootdx | 最新分笔成交 |
| `get_realtime_daily(code)` | code=`600519.SH` | DataFrame: close,pct_chg,vol,turnover | Tushare | 当日daily_basic快照 |
| `get_index(symbol, count)` | symbol=`000001`, count=`100` | DataFrame | Mootdx | 指数K线 |

---

## 💰 财务/基本面（3个）

| 接口 | 参数 | 返回 | 数据源 | 说明 |
|:-----|:------|:------|:-------|:------|
| `get_finance(code, source)` | code=`600519.SH` | dict | Tushare | 财务关键指标 |
| `get_top_holders(ts_code)` | ts_code=`600519.SH` | DataFrame | Tushare | 十大股东 |
| `get_margin(trade_date)` | trade_date=`20260530` | DataFrame | Tushare | 融资融券 |

---

## 🔗 板块/分类（5个）

| 接口 | 参数 | 返回 | 数据源 | 说明 |
|:-----|:------|:------|:-------|:------|
| `get_blocks(source)` | source=`auto` | list of dicts | Tushare→Mootdx | 板块成分数据 |
| `get_concepts()` | — | DataFrame | Tushare | 概念板块分类（879个） |
| `get_stock_list(source)` | source=`auto` | DataFrame: ts_code,name,industry,area | Tushare | 全量股票列表 |
| `get_trade_cal(exchange, start, end)` | exchange=`SSE` | DataFrame | Tushare | 交易日历 |

---

## 📰 事件/资金（3个）

| 接口 | 参数 | 返回 | 数据源 | 说明 |
|:-----|:------|:------|:-------|:------|
| `get_moneyflow(ts_code)` | ts_code=`600519.SH` | DataFrame | Tushare | 资金流向 |
| `search_news(query)` | query=`半导体 政策` | list of results | MX | 金融资讯搜索 |
| `mx_query(query)` | query=`科大讯飞主营业务` | str | MX | 万能查询口 |

---

## 🧮 妙想专用（3个）

| 接口 | 参数 | 返回 | 数据源 | 说明 |
|:-----|:------|:------|:-------|:------|
| `select_stocks(query)` | query=`人工智能龙头股` | list of codes | MX | 智能选股 |
| `mx_moni_position()` | — | dict | MX | 模拟组合持仓 |
| `mx_moni_trade(query)` | query=`买入100股600519` | dict | MX | 模拟组合交易 |

---

## ⚡ 工具/内省（3个）

| 接口 | 参数 | 返回 | 数据源 | 说明 |
|:-----|:------|:------|:-------|:------|
| `status()` | — | dict | 全部 | 检查各数据源连通状态 |
| `list_apis(source)` | source=`tushare` | list of dicts | 注册表 | 列出接口注册表中的所有API |
| `get_apis_by_source(source)` | source=`tushare` | list | 注册表 | 按数据源获取API列表 |

---

## 🧮 因子计算（v2/系统，5个）

| 接口 | 位置 | 返回 | 说明 |
|:-----|:------|:------|:------|
| `FactorFusionEngine().analyze(code, hub)` | `fusion.py` | verdict/score/confidence | 因子融合入口 |
| `FactorBasket()` | `v2/factors/factor_basket.py` | alpha001-101 | WorldQuant 101因子篮子 |
| `compute_all(df)` | `v2/factors/factor_signal.py` | dict of factor→value | 单次全量因子计算 |
| `factor_filter(code, engine)` | `~/.hermes/bin/factor_filter.py` | pass/warnings | 因子IC过滤 |
| `ic_data.json` | `~/.hermes/ic_data.json` | 14个因子IC/ICIR | 因子IC基准数据 |

---

## ⚡ 核心调用链路（master_selector.py → 数据底座）

```
analyze(code)
  ├── hub.get_daily(code)              # 日K线（含前复权）
  ├── hub.get_kline(symbol)            # 补K线（不足200条时）
  ├── hub.get_realtime_quotes(codes)   # 实时行情（--realtime模式）
  ├── hub.get_realtime_daily(code)     # 实时daily_basic
  ├── hub.get_stock_list()             # 全量股票信息 → industry/area
  ├── hub.ts.pro.daily_basic()         # 市值/换手率
  └── FactorFusionEngine.analyze()     # 因子融合

板块排行（tree_scanner.py）
  ├── hub.ts.query("ths_index")        # 同花顺板块列表
  ├── hub.ts.query("ths_daily")        # 板块K线
  ├── hub.ts.query("ths_member")       # 板块成员
  ├── hub.ts.query("index_classify")   # 指数分类
  └── state.db (tdx_block_members)     # 通达信板块关系表
```

---

## 📝 使用规范

1. **优先走DataHub封装接口**，不直接初始化tushare/mootdx
2. **不需要预加载**，运行时按需获取，用完即弃
3. **K线不足200条自动fallback**：Tushare → Mootdx
4. **所有接口带try/except**，失败时优雅降级（空DataFrame或None）
5. **不存本地缓存文件**，所有数据在内存中
6. **字段名统一英文**：close/volume/open/high/low/date
7. **修改代码时先查此字典**，看需求是否已有现成接口，不要重复造
