## 三大报表与主要指标（Financial Statements + GMAININDICATOR）

工具：`get_financial_statements`（`src.tools.financial_statements_tool.FinancialStatementsTool`）
描述：取单只股票的资产负债表 / 利润表 / 现金流量表 / 主要指标，按 symbol 后缀选上游：
- **美股（.US）与港股（.HK）** —— 东财 datacenter 报表接口；三大报表来自分市场财报数据集，`indicators` 读主要指标数据集（GMAININDICATOR）。
- **A 股（.SH / .SZ / .BJ）** —— 新浪 `quotes.sina.cn` 公司财务 openapi（`sina` host bucket 节流）。
报表以"最新在前"的扁平逐期行返回。
市场：美股/港股（东财）、A 股（新浪）。
限速：东财经 `eastmoney`、新浪经 `sina`，均 per-host 节流。

<br>

**端点**

| 市场 | 端点 |
| ---- | ---- |
| 美股/港股 | `https://datacenter.eastmoney.com/securities/api/data/v1/get` |
| A 股 | `https://quotes.sina.cn/cn/api/openapi.php/CompanyFinanceService.<method>` |

**东财 reportName（market_group → statement → reportName）**

statement | us（105/106/107） | hk（116）
---- | ---- | ----
balance | `RPT_USF10_FN_BALANCE` | `RPT_HKF10_FN_BALANCE`
income | `RPT_USF10_FN_INCOME` | `RPT_HKF10_FN_INCOME`
cashflow | `RPT_USF10_FN_CASHFLOW` | `RPT_HKF10_FN_CASHFLOW`
indicators | `RPT_USF10_FN_GMAININDICATOR` | `RPT_HKF10_FN_GMAININDICATOR`

**新浪 method（A 股）**：balance=`getBalanceSheet`、income=`getProfitStatement`、cashflow=`getCashFlow`、indicators=`getFinanceIndex`。

<br>

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

名称 | 类型 | 必选 | 描述
---- | ---- | ---- | ----
code | str | Y | 单只带后缀 symbol，如 `600519.SH` / `000001.SZ` / `AAPL.US` / `00700.HK`。
statement | str | N | `balance` / `income` / `cashflow` / `indicators`（默认 `indicators`）。
period | str | N | `annual`（年报）或 `quarter`（季报），默认 `annual`。

<br>

**端点查询参数**

东财：`reportName=<上表>`、`columns=ALL`、`filter=(SECURITY_CODE="<bare>")(REPORT_TYPE="0"|"1")`（annual=0 / quarter=1）、`sortColumns=REPORT_DATE`、`sortTypes=-1`、`pageNumber=1`、`pageSize=40`、`source=F10`、`client=PC`。
新浪：`symbol=<sh/sz/bj+code>`、`paperType=1`（年）|`2`（季）、`num=40`；headers 带 `Referer: https://quotes.sina.cn/`。

<br>

**返回字段**

报表逐期行为扁平 `字段名 → 值` 的原始 provider 字段（东财用 SECURITY_CODE/REPORT_DATE/REPORT_TYPE 等英文键，新浪用其 openapi 键），工具**不重命名透传**。防爆上限：每只股票最多 40 期，每期最多 200 个字段。

信封：`{"ok": true, "market": "a_share"|"us"|"hk", "source": "sina"|"eastmoney", "statement": <statement>, "period": <period>, "data": {code: {"periods": [...]} | {"error": ...}}}`。单只 symbol 失败以 per-symbol `error` 上报，不抛异常。

<br>

**调用范例**

```python
from src.tools.financial_statements_tool import FinancialStatementsTool

# 美股利润表（年报）
print(FinancialStatementsTool().execute(code="AAPL.US", statement="income", period="annual"))
# 港股主要指标（GMAININDICATOR）
print(FinancialStatementsTool().execute(code="00700.HK", statement="indicators"))
# A 股资产负债表（新浪）
print(FinancialStatementsTool().execute(code="600519.SH", statement="balance"))
```
