You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
8.8 KiB
8.8 KiB
AmazingData Adapter 接口调用关系 (完整修正版)
一、接口调用次数汇总表
| 序号 | 接口方法 | SDK 调用次数 | 调用的 SDK 方法 | 复杂度 |
|---|---|---|---|---|
| 1 | fetch_klines |
4-6次 | query_kline + get_code_info + get_equity_structure + get_calendar + get_list_date(内部) |
⭐⭐⭐⭐ |
| 2 | fetch_stock_basic_info |
2+N次 | get_code_list + get_code_info + N×get_equity_structure |
⭐⭐⭐⭐⭐ |
| 3 | fetch_symbols (stock) |
2次 | get_code_list + get_code_info |
⭐⭐ |
| 4 | fetch_symbols (futures) |
1次 | get_future_code_list |
⭐ |
| 5 | fetch_trading_calendar |
1次 | get_calendar |
⭐ |
| 6 | fetch_kline_quote |
2次 | query_kline + get_code_info |
⭐⭐ |
| 7 | fetch_kline_finance |
2次 | get_equity_structure + query_kline |
⭐⭐ |
| 8 | fetch_kline_base |
1次 | query_kline |
⭐ |
| 9 | 其他所有数据接口 | 1次 | 对应单个 SDK 方法 | ⭐ |
二、复杂接口详细调用链
2.1 fetch_klines (4-6次SDK调用)
fetch_klines (async)
└── _fetch_klines_sync (sync)
├── _market_data.query_kline() # [第1次] 获取K线数据
├── _base_data.get_code_info() # [第2次] 获取涨跌停价
├── _info_data.get_equity_structure() # [第3次] 获取股本结构
├── _base_data.get_calendar() # [第4次] 获取交易日历
└── _get_list_date() # [内部方法]
├── _base_data.get_code_info() # [第5次,可选] 尝试获取上市日期
└── _base_data.get_hist_code_list() # [第6次,可选] 备选方案
实际调用: 最少4次,最多6次(取决于 _get_list_date 的执行路径)
2.2 fetch_stock_basic_info (2+N次SDK调用)
fetch_stock_basic_info (async)
└── _fetch_stock_basic_info_sync (sync)
├── _base_data.get_code_list() # [第1次] 获取所有股票代码
├── _base_data.get_code_info() # [第2次] 获取股票名称
└── for code in codes: # [循环N次,N=股票数量]
└── _info_data.get_equity_structure() # [第3~2+N次] 每个股票调用一次!
⚠️ 警告: 如果获取全市场5000+只股票,将触发 2+5000 = 5002次 SDK 调用!
建议: 使用 codes 参数限制股票数量,避免全量查询。
2.3 fetch_symbols (股票 - 2次SDK调用)
fetch_symbols (async)
└── _fetch_symbols_sync (sync)
├── _base_data.get_code_list() # [第1次] 获取代码列表
└── _base_data.get_code_info() # [第2次] 获取代码信息(名称)
2.4 fetch_symbols (期货 - 1次SDK调用)
fetch_symbols (async)
└── _fetch_symbols_sync (sync)
└── _base_data.get_future_code_list() # [第1次] 获取期货代码
# 注意: 期货没有调用 get_future_info,交易所通过代码解析
修正: 之前文档错误地写为2次调用,实际只有1次。
三、新增分表接口调用链
3.1 fetch_kline_base (1次SDK调用)
fetch_kline_base (async)
└── _fetch_kline_base_sync (sync)
└── _market_data.query_kline() # [第1次] 仅基础K线
3.2 fetch_kline_quote (2次SDK调用)
fetch_kline_quote (async)
└── _fetch_kline_quote_sync (sync)
├── _market_data.query_kline() # [第1次] 扩展日期范围
└── _base_data.get_code_info() # [第2次] 涨跌停价
3.3 fetch_kline_finance (2次SDK调用)
fetch_kline_finance (async)
└── _fetch_kline_finance_sync (sync)
├── _info_data.get_equity_structure() # [第1次] 股本结构
└── _market_data.query_kline() # [第2次] 价格数据
四、单次SDK调用的接口
以下接口都只进行 1次 SDK 调用:
| 接口 | SDK 方法 |
|---|---|
connect |
_market_data.login() |
health_check |
_market_data.is_login() |
fetch_trading_calendar |
_base_data.get_calendar() |
get_adj_factor |
_base_data.get_adj_factor() |
get_backward_factor |
_base_data.get_backward_factor() |
get_snapshot |
_market_data.query_snapshot() |
get_balance_sheet |
_info_data.get_balance_sheet() |
get_cash_flow |
_info_data.get_cash_flow() |
get_income_statement |
_info_data.get_income() |
get_profit_express |
_info_data.get_profit_express() |
get_profit_notice |
_info_data.get_profit_notice() |
get_top10_shareholders |
_info_data.get_share_holder() |
get_shareholder_count |
_info_data.get_holder_num() |
get_equity_structure |
_info_data.get_equity_structure() |
get_index_constituents |
_info_data.get_index_constituent() |
get_index_weights |
_info_data.get_index_weight() |
get_margin_summary |
_info_data.get_margin_summary() |
get_margin_detail |
_info_data.get_margin_detail() |
get_longhu_bang |
_info_data.get_long_hu_bang() |
get_block_trading |
_info_data.get_block_trading() |
get_etf_pcf |
_base_data.get_etf_pcf() |
get_fund_share |
_info_data.get_fund_share() |
get_kzz_issuance |
_info_data.get_kzz_issuance() |
get_history_stock_status |
_info_data.get_history_stock_status() |
get_code_info |
_base_data.get_code_info() |
get_trading_calendar |
_base_data.get_calendar() |
五、SDK 对象方法汇总
_market_data (市场数据)
| 方法 | 使用场景 | 调用次数 |
|---|---|---|
login() |
connect | 1 |
query_kline() |
K线数据 | 频繁 |
query_snapshot() |
get_snapshot | 按需 |
is_login() |
health_check | 1 |
_base_data (基础数据)
| 方法 | 使用场景 | 调用次数 |
|---|---|---|
get_code_list() |
fetch_symbols(stock) | 频繁 |
get_future_code_list() |
fetch_symbols(futures) | 按需 |
get_code_info() |
多个接口 | 最频繁 |
get_calendar() |
交易日历 | 多次 |
get_adj_factor() |
复权因子 | 按需 |
get_backward_factor() |
后复权因子 | 按需 |
get_etf_pcf() |
ETF数据 | 按需 |
get_hist_code_list() |
备选上市日期 | 可选 |
_info_data (信息数据)
| 方法 | 使用场景 | 调用次数 |
|---|---|---|
get_equity_structure() |
股本/上市日期 | 最频繁 |
get_share_holder() |
股东数据 | 按需 |
get_income() |
利润表 | 按需 |
get_balance_sheet() |
资产负债表 | 按需 |
get_cash_flow() |
现金流量表 | 按需 |
get_profit_express() |
业绩预告 | 按需 |
get_profit_notice() |
业绩快报 | 按需 |
get_holder_num() |
股东户数 | 按需 |
get_margin_summary() |
融资融券汇总 | 按需 |
get_margin_detail() |
融资融券明细 | 按需 |
get_long_hu_bang() |
龙虎榜 | 按需 |
get_block_trading() |
大宗交易 | 按需 |
get_index_constituent() |
指数成分股 | 按需 |
get_index_weight() |
指数权重 | 按需 |
get_fund_share() |
基金份额 | 按需 |
get_kzz_issuance() |
可转债发行 | 按需 |
get_history_stock_status() |
历史股票状态(涨停/跌停/ST/停牌) | 按需 |
六、修正说明
6.1 与V2版文档的差异
| 接口 | V2版文档 | V3版文档(修正) | 差异说明 |
|---|---|---|---|
fetch_symbols (futures) |
2次调用 | 1次调用 | 期货实际只调用get_future_code_list,没有调用get_future_info |
fetch_stock_basic_info |
2+N次 | 2+N次 | 确认正确,N=股票数量 |
fetch_klines |
4-6次 | 4-6次 | 确认正确 |
6.2 风险提示
⚠️ 高危接口: fetch_stock_basic_info
- 获取全市场股票时会产生 5000+ 次 SDK 调用
- 可能导致性能问题或触发限流
- 建议: 始终使用
codes参数限制查询范围
# ❌ 不推荐: 获取全市场
all_stocks = await adapter.fetch_stock_basic_info()
# ✅ 推荐: 只查询指定股票
specific_stocks = await adapter.fetch_stock_basic_info(
codes=["000001.SZ", "600519.SH"]
)
七、接口统计
| 类别 | 接口数量 |
|---|---|
| 核心适配器接口 | 6 |
| 基础数据接口 | 4 |
| 财务/股东数据接口 | 8 |
| 市场数据接口 | 9 |
| 基金/可转债接口 | 3 |
| 新增分表数据接口 | 4 |
| 总计 | 34 |
复杂度分级:
- ⭐ 简单 (1次): 26个接口
- ⭐⭐ 中等 (2次): 3个接口 (
fetch_symbolsstock,fetch_kline_quote,fetch_kline_finance) - ⭐⭐⭐⭐ 复杂 (4-6次): 1个接口 (
fetch_klines) - ⭐⭐⭐⭐⭐ 极复杂 (2+N次): 1个接口 (
fetch_stock_basic_info)