# AmazingData Adapter 接口调用关系 (完整版) ## 一、核心适配器接口 ### 1.1 fetch_klines / _fetch_klines_sync (最复杂) ``` fetch_klines (async) └── _fetch_klines_sync (sync) ├── _market_data.query_kline() [第1次SDK调用] ├── _base_data.get_code_info() [第2次SDK调用 - 涨跌停价] ├── _info_data.get_equity_structure() [第3次SDK调用 - 股本结构] ├── _base_data.get_calendar() [第4次SDK调用 - 交易日历] └── _get_list_date() [内部方法] ├── _base_data.get_code_info() [可能第5次SDK调用] └── _base_data.get_hist_code_list() [可能第6次SDK调用] ``` | 调用层次 | 方法 | SDK调用次数 | 说明 | |---------|------|------------|------| | 外层 | `fetch_klines` | 1 | async入口 | | 内层 | `_fetch_klines_sync` | 4-6次 | 包含K线+扩展字段获取 | **总计 SDK 调用**: 4-6 次(取决于 `_get_list_date` 的执行路径) --- ### 1.2 其他核心接口 | 序号 | 公共接口 | 同步方法 | SDK 调用 | 次数 | 说明 | |------|----------|----------|----------|------|------| | 1 | `connect` | - | `_market_data.login()` | 1 | 连接数据源 | | 2 | `close` | - | - | 0 | 关闭连接 | | 3 | `subscribe_ticks` | - | - | 0 | 订阅实时Tick | | 4 | `fetch_symbols` | `_fetch_symbols_sync` | `_base_data.get_code_list()`
`_base_data.get_code_info()` | 2 | 股票标的列表 | | 4b| `fetch_symbols` | `_fetch_symbols_sync` | `_base_data.get_future_code_list()`
`_base_data.get_future_info()` | 2 | 期货标的列表 | | 5 | `fetch_trading_calendar` | `_fetch_calendar_sync` | `_base_data.get_calendar()` | 1 | 交易日历 | | 6 | `health_check` | - | `_market_data.is_login()` | 1 | 健康检查 | --- ## 二、新增分表数据接口 (详细调用链) ### 2.1 fetch_kline_base / _fetch_kline_base_sync ``` fetch_kline_base (async) └── _fetch_kline_base_sync (sync) └── _market_data.query_kline() [第1次SDK调用] ``` | 调用层次 | 方法 | SDK调用次数 | 说明 | |---------|------|------------|------| | 外层 | `fetch_kline_base` | 1 | async入口 | | 内层 | `_fetch_kline_base_sync` | 1 | 仅基础K线 | **总计 SDK 调用**: 1 次 --- ### 2.2 fetch_kline_quote / _fetch_kline_quote_sync ``` fetch_kline_quote (async) └── _fetch_kline_quote_sync (sync) ├── _market_data.query_kline() [第1次SDK调用 - 扩展日期范围] └── _base_data.get_code_info() [第2次SDK调用 - 涨跌停价] ``` | 调用层次 | 方法 | SDK调用次数 | 说明 | |---------|------|------------|------| | 外层 | `fetch_kline_quote` | 2 | async入口 | | 内层 | `_fetch_kline_quote_sync` | 2 | K线+涨跌停价 | **总计 SDK 调用**: 2 次 --- ### 2.3 fetch_kline_finance / _fetch_kline_finance_sync ``` fetch_kline_finance (async) └── _fetch_kline_finance_sync (sync) ├── _info_data.get_equity_structure() [第1次SDK调用 - 股本结构] └── _market_data.query_kline() [第2次SDK调用 - 价格数据] ``` | 调用层次 | 方法 | SDK调用次数 | 说明 | |---------|------|------------|------| | 外层 | `fetch_kline_finance` | 2 | async入口 | | 内层 | `_fetch_kline_finance_sync` | 2 | 股本+价格计算市值 | **总计 SDK 调用**: 2 次 --- ### 2.4 fetch_stock_basic_info / _fetch_stock_basic_info_sync ``` fetch_stock_basic_info (async) └── _fetch_stock_basic_info_sync (sync) ├── _base_data.get_code_list() [第1次SDK调用 - 代码列表] ├── _base_data.get_code_info() [第2次SDK调用 - 名称/交易所] └── 循环每个股票: └── _info_data.get_equity_structure() [第3次SDK调用 - 上市日期] ``` | 调用层次 | 方法 | SDK调用次数 | 说明 | |---------|------|------------|------| | 外层 | `fetch_stock_basic_info` | 2+N | async入口,N为股票数量 | | 内层 | `_fetch_stock_basic_info_sync` | 2+N | 基础信息+上市日期 | **总计 SDK 调用**: 2 + N 次(N = 股票数量,每个股票调用一次 get_equity_structure) --- ## 三、财务/股东数据接口 | 序号 | 公共接口 | SDK 调用 | 次数 | 说明 | |------|----------|----------|------|------| | 7 | `get_balance_sheet` | `_info_data.get_balance_sheet()` | 1 | 资产负债表 | | 8 | `get_cash_flow` | `_info_data.get_cash_flow()` | 1 | 现金流量表 | | 9 | `get_income_statement` | `_info_data.get_income_statement()` | 1 | 利润表 | | 10 | `get_profit_express` | `_info_data.get_profit_express()` | 1 | 业绩预告 | | 11 | `get_profit_notice` | `_info_data.get_profit_notice()` | 1 | 业绩快报 | | 12 | `get_top10_shareholders` | `_info_data.get_share_holder()` | 1 | 前十大股东 | | 13 | `get_shareholder_count` | `_info_data.get_holder_num()` | 1 | 股东户数 | | 14 | `get_equity_structure` | `_info_data.get_equity_structure()` | 1 | 股本结构 | --- ## 四、市场数据接口 | 序号 | 公共接口 | SDK 调用 | 次数 | 说明 | |------|----------|----------|------|------| | 15 | `get_snapshot` | `_market_data.query_kline()` | 1 | 快照数据 | | 16 | `get_adj_factor` | `_base_data.get_adj_factor()` | 1 | 复权因子 | | 17 | `get_backward_factor` | `_base_data.get_backward_factor()` | 1 | 后复权因子 | | 18 | `get_index_constituents` | `_info_data.get_index_constituent()` | 1 | 指数成分股 | | 19 | `get_index_weights` | `_info_data.get_index_weight()` | 1 | 指数权重 | | 20 | `get_margin_summary` | `_info_data.get_margin_summary()` | 1 | 融资融券汇总 | | 21 | `get_margin_detail` | `_info_data.get_margin_detail()` | 1 | 融资融券明细 | | 22 | `get_longhu_bang` | `_info_data.get_long_hu_bang()` | 1 | 龙虎榜 | | 23 | `get_block_trading` | `_info_data.get_block_trading()` | 1 | 大宗交易 | --- ## 五、基金/可转债接口 | 序号 | 公共接口 | SDK 调用 | 次数 | 说明 | |------|----------|----------|------|------| | 24 | `get_etf_pcf` | `_base_data.get_etf_pcf()` | 1 | ETF申购赎回清单 | | 25 | `get_fund_share` | `_info_data.get_fund_share()` | 1 | 基金份额 | | 26 | `get_kzz_issuance` | `_info_data.get_kzz_issuance()` | 1 | 可转债发行 | --- ## 六、接口调用次数汇总表 | 接口方法 | SDK 调用次数 | 调用的 SDK 方法 | |----------|-------------|----------------| | `fetch_klines` | **4-6次** | `query_kline` + `get_code_info` (1-2次) + `get_equity_structure` + `get_calendar` + `get_hist_code_list` (可选) | | `fetch_symbols` (stock) | **2次** | `get_code_list` + `get_code_info` | | `fetch_symbols` (futures) | **2次** | `get_future_code_list` + `get_future_info` | | `fetch_trading_calendar` | **1次** | `get_calendar` | | `fetch_kline_base` | **1次** | `query_kline` | | `fetch_kline_quote` | **2次** | `query_kline` + `get_code_info` | | `fetch_kline_finance` | **2次** | `get_equity_structure` + `query_kline` | | `fetch_stock_basic_info` | **2+N次** | `get_code_list` + `get_code_info` + N×`get_equity_structure` | | 其他单个数据接口 | **1次** | 对应单个 SDK 方法 | --- ## 七、SDK 对象与方法汇总 ### _market_data (市场数据) | 方法 | 调用次数 | 使用场景 | |------|---------|----------| | `login()` | 1 | connect | | `query_kline()` | 多次 | K线数据获取 | | `is_login()` | 1 | health_check | ### _base_data (基础数据) | 方法 | 调用次数 | 使用场景 | |------|---------|----------| | `get_code_list()` | 多次 | 股票代码列表 | | `get_code_info()` | 最频繁 | 代码信息、涨跌停价、上市日期 | | `get_calendar()` | 多次 | 交易日历 | | `get_adj_factor()` | 按需 | 复权因子 | | `get_future_code_list()` | 按需 | 期货代码列表 | | `get_etf_pcf()` | 按需 | ETF数据 | | `get_hist_code_list()` | 可选 | 历史代码列表(备选) | ### _info_data (信息数据) | 方法 | 调用次数 | 使用场景 | |------|---------|----------| | `get_equity_structure()` | 最频繁 | 股本结构、上市日期推断 | | `get_income_statement()` | 按需 | 利润表 | | `get_balance_sheet()` | 按需 | 资产负债表 | | `get_cash_flow()` | 按需 | 现金流量表 | | `get_share_holder()` | 按需 | 股东数据 | | `get_margin_summary/detail()` | 按需 | 融资融券 | | `get_index_constituent/weight()` | 按需 | 指数数据 | --- ## 八、接口统计 | 类别 | 接口数量 | 说明 | |------|----------|------| | 核心适配器接口 | 6 | connect/close/subscribe_ticks/fetch_klines/fetch_symbols/fetch_trading_calendar/health_check | | 财务/股东数据接口 | 8 | 各类财务报表和股东数据 | | 市场数据接口 | 9 | K线、指数、融资融券等 | | 基金/可转债接口 | 3 | ETF、基金、可转债 | | 新增分表数据接口 | 4 | 拆分表专用接口 | | **总计** | **30** | 公共接口方法 | **调用复杂度分级**: - ⭐ 简单 (1次SDK调用): fetch_kline_base, get_balance_sheet, get_cash_flow 等 - ⭐⭐ 中等 (2次SDK调用): fetch_symbols, fetch_kline_quote, fetch_kline_finance 等 - ⭐⭐⭐ 复杂 (4-6次SDK调用): **fetch_klines** (原K线获取接口) - ⭐⭐⭐⭐ 最复杂 (2+N次SDK调用): **fetch_stock_basic_info** (N=股票数量)