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.

124 lines
3.3 KiB

# get_history_stock_status 接口实现
## 接口说明
`get_history_stock_status` 是 AmazingData SDK 提供的历史股票状态查询接口,用于获取股票的历史涨停/跌停价、ST状态、停牌状态等信息。
## 实现位置
### 1. 内部接口层
**文件**: `app/adapters/internal_data_service.py`
```python
class _InfoDataInternal:
def get_history_stock_status(
self,
code_list: List[str],
local_path: str,
is_local: bool,
begin_date: Optional[int] = None,
end_date: Optional[int] = None
) -> Dict[str, pd.DataFrame]:
"""获取历史股票状态数据
包含字段:
- TRADE_DATE: 交易日期
- UP_LIMIT: 涨停价
- DOWN_LIMIT: 跌停价
- MAX_UP_DOWN: 最大涨跌幅限制
- IS_ST: 是否ST
- IS_SUSPEND: 是否停牌
"""
```
### 2. 对外接口层
**文件**: `app/adapters/amazingdata_adapter.py`
```python
class AmazingDataAdapter(DataSourceAdapter):
async def get_history_stock_status(
self,
codes: List[str],
start_date: Optional[str] = None,
end_date: Optional[str] = None,
is_local: Optional[bool] = None
) -> Dict[str, pd.DataFrame]:
"""获取历史股票状态数据"""
```
## 返回字段说明
| 字段名 | 类型 | 说明 |
|--------|------|------|
| TRADE_DATE | int | 交易日期 (YYYYMMDD) |
| UP_LIMIT | float | 涨停价 |
| DOWN_LIMIT | float | 跌停价 |
| MAX_UP_DOWN | float | 最大涨跌幅限制(%) |
| IS_ST | bool/int | 是否ST股 |
| IS_SUSPEND | bool/int | 是否停牌 |
## 使用示例
```python
from app.adapters.amazingdata_adapter import AmazingDataAdapter
adapter = AmazingDataAdapter()
await adapter.connect({
"username": "your_username",
"password": "your_password",
"host": "your_host",
"port": 8600
})
# 获取股票历史状态
result = await adapter.get_history_stock_status(
codes=["000001.SZ", "600519.SH"],
start_date="20240301",
end_date="20240310"
)
# 处理结果
for symbol, df in result.items():
print(f"股票: {symbol}")
print(df[["TRADE_DATE", "UP_LIMIT", "DOWN_LIMIT", "IS_ST"]])
```
## 调用链
```
AmazingDataAdapter.get_history_stock_status (async)
└── _InfoDataInternal.get_history_stock_status (sync)
└── SDK: _info_data.get_history_stock_status()
```
## SDK 调用统计
| 层次 | 调用次数 | 说明 |
|------|----------|------|
| 对外接口 | 1 | async 包装 |
| 内部接口 | 1 | 错误处理 |
| SDK | 1 | 实际数据获取 |
**总计**: 1 次 SDK 调用(单次查询)
## 应用场景
1. **涨跌停分析** - 获取历史涨停/跌停价格
2. **ST股票跟踪** - 监控股票ST状态变化
3. **停牌监控** - 获取股票停牌状态
4. **策略回测** - 基于历史涨跌停限制进行回测
## 与其他接口的关系
| 接口 | 用途 | 区别 |
|------|------|------|
| `get_history_stock_status` | 获取历史状态(涨停/跌停/ST/停牌) | 返回每日状态数据 |
| `get_code_info` | 获取当前代码信息 | 返回最新静态信息 |
| `fetch_klines` | 获取K线数据 | 包含涨跌停判断逻辑 |
## 文档更新
以下文档已更新:
- `INTERNAL_INTERFACES.md` - 内部接口层文档
- `AMAZINGDATA_ADAPTER_INTERFACES_V3.md` - 接口调用关系文档