## 龙虎榜（Dragon-Tiger Board）

工具：`get_dragon_tiger`（`src.tools.dragon_tiger_tool.DragonTigerTool`）
描述：沪深交易所每日发布的"龙虎榜"披露——列出当日触发异动披露的每只 A 股，以及驱动最大买卖的券商席位。东财通过免费免鉴权 `datacenter-web` JSON 接口转发该披露。只读、无 auth。
市场：A 股（SH / SZ）。
限速：经共享 `eastmoney` per-host 节流层；东财按源 IP 限流。

<br>

**端点**

`https://datacenter-web.eastmoney.com/api/data/v1/get`

用两个 reportName：

- `RPT_DAILYBILLBOARD_DETAILS` —— 当日上榜个股明细（appearances）
- `RPT_BILLBOARD_TRADEDETAIL` —— 指定个股的买卖席位明细（seats）

<br>

**输入参数（工具入参）**

名称 | 类型 | 必选 | 描述
---- | ---- | ---- | ----
date | str | Y | 交易日，`YYYY-MM-DD`（如 `2024-01-02`；亦接受紧凑 `20240102`）。
code | str | N | A 股 symbol 或裸代码（`600519.SH` / `600519`）。省略则返回当日全市场上榜列表；给定则附带该个股的买卖席位明细。

<br>

**端点查询参数**

名称 | 取值 | 描述
---- | ---- | ----
reportName | 上述两个之一 | 报表名
columns | `ALL` | 返回全列
filter | `(TRADE_DATE='YYYY-MM-DD')` 可附 `(SECURITY_CODE="<code>")` | 过滤谓词
sortColumns | appearances=`BILLBOARD_NET_AMT` / seats=`NET` | 排序列
sortTypes | `-1` | 降序
pageNumber / pageSize | `1` / `500` | 分页
source / client | `WEB` / `WEB` | 来源标识

<br>

**返回字段**

appearances（每行一只上榜个股，源字段 → 输出键）：

源字段 | 输出键 | 描述
---- | ---- | ----
SECURITY_CODE | code | 代码
SECURITY_NAME_ABBR | name | 简称
CLOSE_PRICE | close | 收盘价
CHANGE_RATE | change_pct | 涨跌幅
BILLBOARD_NET_AMT | net_buy | 龙虎榜净买入额
BILLBOARD_BUY_AMT | buy_amount | 龙虎榜买入额
BILLBOARD_SELL_AMT | sell_amount | 龙虎榜卖出额
ACCUM_AMOUNT | turnover | 成交额
EXPLANATION | reason | 上榜原因

seats（给定 code 时，每行一个券商席位）：

源字段 | 输出键 | 描述
---- | ---- | ----
OPERATEDEPT_NAME | seat | 营业部名
SIDE | side | 买/卖方向
BUY / SELL / NET | buy / sell / net | 买入 / 卖出 / 净额
RANK | rank | 席位排名

信封：`{"ok": true, "market": "a_share", "source": "eastmoney", "data": {"date","count","appearances":[...], ("code","seats":[...])}}`。appearances 上限 200，seats 上限 30。

<br>

**调用范例**

```python
from src.tools.dragon_tiger_tool import DragonTigerTool

# 当日全市场上榜列表
print(DragonTigerTool().execute(date="2024-01-02"))
# 指定个股 + 买卖席位
print(DragonTigerTool().execute(date="2024-01-02", code="600519.SH"))
```
