> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alphafeed.org/llms.txt
> Use this file to discover all available pages before exploring further.

# 快速开始

> 安装和使用 AlphaFeed Python SDK

## 安装

```bash theme={null}
pip install alphafeed
```

<Note>
  支持 Python 3.9+，推荐 3.10 或更高版本。内置 pandas 和 tqdm 支持。
</Note>

## 初始化

```python theme={null}
from alphafeed import AlphaFeed

af = AlphaFeed(api_key="your-api-key")
```

也可以通过环境变量设置：

```bash theme={null}
export ALPHAFEED_API_KEY="your-api-key"
```

```python theme={null}
from alphafeed import AlphaFeed
af = AlphaFeed()  # 自动读取 ALPHAFEED_API_KEY
```

## 标的代码格式

标的代码统一使用 `{代码}.{交易所后缀}` 格式：

| 后缀    | 交易所     | 示例          |
| ----- | ------- | ----------- |
| `.SH` | 上海证券交易所 | `600519.SH` |
| `.SZ` | 深圳证券交易所 | `000001.SZ` |
| `.BJ` | 北京证券交易所 | `920047.BJ` |
| `.US` | 美股      | `AAPL.US`   |
| `.HK` | 港股      | `00700.HK`  |

***

## 获取日K线

支持周期：`1d`（日）、`1w`（周）、`1M`（月）、`1Q`（季）、`1Y`（年）

```python theme={null}
df = af.klines.get("600519.SH", period="1d", count=5, to_dataframe=True)
print(df[["symbol", "name", "trade_date", "open", "high", "low", "close", "volume"]])
```

```
   symbol name trade_date    open    high     low   close  volume
600519.SH 贵州茅台 2026-06-12 1271.18 1295.00 1265.01 1291.91   50495
600519.SH 贵州茅台 2026-06-15 1292.70 1292.70 1270.10 1271.10   41586
600519.SH 贵州茅台 2026-06-16 1267.01 1267.88 1255.00 1255.67   34970
600519.SH 贵州茅台 2026-06-17 1258.00 1259.77 1238.56 1240.00   44803
600519.SH 贵州茅台 2026-06-18 1235.00 1238.87 1211.22 1215.00   57472
```

## 获取分钟K线

支持周期：`1m`（1分钟）、`5m`（5分钟）、`15m`（15分钟）、`30m`（30分钟）、`60m`（60分钟）

```python theme={null}
df = af.klines.get("600519.SH", period="5m", count=5, to_dataframe=True)
print(df[["symbol", "name", "trade_time", "open", "high", "low", "close", "volume"]])
```

```
   symbol name          trade_time    open    high     low   close  volume
600519.SH 贵州茅台 2026-06-18 14:40:00 1214.44 1215.82 1212.26 1215.82    1151
600519.SH 贵州茅台 2026-06-18 14:45:00 1215.02 1217.00 1215.00 1216.99     997
600519.SH 贵州茅台 2026-06-18 14:50:00 1216.52 1217.39 1215.99 1217.38     827
600519.SH 贵州茅台 2026-06-18 14:55:00 1217.40 1228.37 1217.40 1222.55    2355
600519.SH 贵州茅台 2026-06-18 15:00:00 1223.02 1223.99 1215.00 1215.00    2324
```

## 复权方式

K 线接口支持 `adjust` 参数：

| 值                   | 说明             |
| ------------------- | -------------- |
| `forward`           | 前复权 - 比例复权（默认） |
| `backward`          | 后复权 - 比例复权     |
| `forward_additive`  | 前复权 - 差值复权     |
| `backward_additive` | 后复权 - 差值复权     |
| `none`              | 不复权            |

比例复权使用乘法因子还原价格，适合计算收益率；差值复权使用加减法还原价格，适合观察绝对价差。

```python theme={null}
df = af.klines.get("600519.SH", adjust="none", to_dataframe=True)              # 不复权
df = af.klines.get("600519.SH", adjust="forward", to_dataframe=True)           # 前复权-比例（默认）
df = af.klines.get("600519.SH", adjust="backward", to_dataframe=True)          # 后复权-比例
df = af.klines.get("600519.SH", adjust="forward_additive", to_dataframe=True)  # 前复权-差值
df = af.klines.get("600519.SH", adjust="backward_additive", to_dataframe=True) # 后复权-差值
```

## 时间区间查询

通过 `start_time` 和 `end_time` 指定时间范围（毫秒时间戳），配合 `count` 控制返回条数。

### 指定日期区间

```python theme={null}
import datetime
from alphafeed import AlphaFeed

af = AlphaFeed(api_key="your-api-key")

start = int(datetime.datetime(2026, 6, 1).timestamp() * 1000)
end = int(datetime.datetime(2026, 6, 20).timestamp() * 1000)
df = af.klines.get("000001.SZ", period="1d", start_time=start, end_time=end, to_dataframe=True)
print(f"2026-06-01 ~ 2026-06-20 共 {len(df)} 个交易日")
print(df[["trade_date", "open", "close", "volume"]].tail(5).to_string(index=False))
```

```
2026-06-01 ~ 2026-06-20 共 14 个交易日
trade_date  open  close  volume
2026-06-12 11.00  11.24 2032355
2026-06-15 11.21  11.06 1541305
2026-06-16 11.05  10.94  942708
2026-06-17 10.97  10.78  965828
2026-06-18 10.74  10.52 1426893
```

### 获取某日期之前的 N 根 K 线

使用 `end_time` + `count` 组合，获取截止到某个时间点的最近 N 根 K 线：

```python theme={null}
import datetime
from alphafeed import AlphaFeed

af = AlphaFeed(api_key="your-api-key")

end = int(datetime.datetime(2026, 6, 15).timestamp() * 1000)
df = af.klines.get("600519.SH", period="1d", count=5, end_time=end, to_dataframe=True)
print(df[["trade_date", "open", "high", "low", "close", "volume"]].to_string(index=False))
```

```
trade_date    open    high     low   close  volume
2026-06-09 1262.99 1263.00 1252.55 1256.00   27860
2026-06-10 1252.08 1282.00 1250.21 1275.88   39244
2026-06-11 1272.12 1282.88 1266.91 1279.00   25352
2026-06-12 1271.18 1295.00 1265.01 1291.91   50495
2026-06-15 1292.70 1292.70 1270.10 1271.10   41586
```

### 分钟级时间区间

对分钟 K 线同样适用，适合截取盘中某一时段的数据：

```python theme={null}
import datetime
from alphafeed import AlphaFeed

af = AlphaFeed(api_key="your-api-key")

start = int(datetime.datetime(2026, 6, 23, 9, 30).timestamp() * 1000)
end = int(datetime.datetime(2026, 6, 23, 10, 0).timestamp() * 1000)
df = af.klines.get("000001.SZ", period="5m", start_time=start, end_time=end, to_dataframe=True)
print(df[["trade_time", "open", "high", "low", "close", "volume"]].to_string(index=False))
```

```
         trade_time  open  high   low  close  volume
2026-06-23 09:35:00 10.65 10.83 10.63  10.81  143966
2026-06-23 09:40:00 10.82 10.87 10.81  10.84   83205
2026-06-23 09:45:00 10.85 10.88 10.81  10.87   86994
2026-06-23 09:50:00 10.88 10.90 10.87  10.88   95711
2026-06-23 09:55:00 10.88 10.91 10.86  10.88   70423
2026-06-23 10:00:00 10.89 10.90 10.85  10.85   32324
```

## 批量获取K线

一次请求获取多只标的的K线数据：

```python theme={null}
symbols = ["600519.SH", "000001.SZ"]
dfs = af.klines.batch(symbols, period="1d", count=3, to_dataframe=True, show_progress=True)

for sym, df in dfs.items():
    print(f"--- {sym} ({df['name'].iloc[0]}) ---")
    print(df[["trade_date", "open", "close", "volume"]].to_string(index=False))
```

```
--- 600519.SH (贵州茅台) ---
trade_date    open   close  volume
2026-06-16 1267.01 1255.67   34970
2026-06-17 1258.00 1240.00   44803
2026-06-18 1235.00 1215.00   57472
--- 000001.SZ (平安银行) ---
trade_date  open  close  volume
2026-06-16 11.05  10.94  942708
2026-06-17 10.97  10.78  965828
2026-06-18 10.74  10.52 1426893
```

### 批量 + 时间区间

`klines.batch` 同样支持 `start_time` 和 `end_time`：

```python theme={null}
import datetime
from alphafeed import AlphaFeed

af = AlphaFeed(api_key="your-api-key")

start = int(datetime.datetime(2026, 6, 16).timestamp() * 1000)
end = int(datetime.datetime(2026, 6, 20).timestamp() * 1000)
dfs = af.klines.batch(["600519.SH", "000001.SZ"], period="1d", start_time=start, end_time=end, to_dataframe=True)
for sym, df in dfs.items():
    print(f"--- {sym} ({df['name'].iloc[0]}) ---")
    print(df[["trade_date", "close", "volume"]].to_string(index=False))
```

```
--- 600519.SH (贵州茅台) ---
trade_date   close  volume
2026-06-16 1255.67   34970
2026-06-17 1240.00   44803
2026-06-18 1215.00   57472
--- 000001.SZ (平安银行) ---
trade_date  close  volume
2026-06-16  10.94  942708
2026-06-17  10.78  965828
2026-06-18  10.52 1426893
```

## 获取实时行情

### 按标的代码查询

```python theme={null}
df = af.quotes.get(symbols=["600519.SH", "000001.SZ"], to_dataframe=True)
print(df[["symbol", "last_price", "prev_close", "volume", "ext.name", "ext.change_pct"]])
```

```
   symbol  last_price  prev_close  volume ext.name  ext.change_pct
000001.SZ       10.52       10.78 1426893     平安银行       -0.024119
600519.SH     1215.00     1240.00   57472     贵州茅台       -0.020161
```

### 按标的池查询（全量行情）

支持的标的池：

| 标的池 ID     | 说明       |
| ---------- | -------- |
| `CN_Stock` | A 股（沪深京） |
| `CN_ETF`   | ETF      |
| `US_Stock` | 美股       |
| `HK_Stock` | 港股       |

```python theme={null}
df = af.quotes.get(universes=["CN_Stock"], to_dataframe=True)
print(df)
```

```
         symbol region  ...  ext.amplitude  ext.turnover_rate
0     920985.BJ     CN  ...       0.043893           0.015161
1     002414.SZ     CN  ...       0.027106           0.015167
2     600589.SH     CN  ...       0.047852           0.076141
3     688543.SH     CN  ...       0.043046           0.052545
4     300988.SZ     CN  ...       0.044633           0.043186
...         ...    ...  ...            ...                ...
5496  002546.SZ     CN  ...       0.022026           0.014857
5497  920363.BJ     CN  ...       0.038917           0.027170
5498  688590.SH     CN  ...       0.033557           0.051160
5499  001317.SZ     CN  ...       0.053210           0.043987
5500  300731.SZ     CN  ...       0.080393           0.090136

[5501 rows x 18 columns]
```

## 获取日内分时

### 单只标的

支持周期：`1m`（默认）、`5m`、`15m`、`30m`、`60m`

```python theme={null}
df = af.klines.intraday("600519.SH", count=5, to_dataframe=True)
print(df[["symbol", "name", "trade_time", "close", "volume"]])
```

```
   symbol name          trade_time   close  volume
600519.SH 贵州茅台 2026-06-18 14:56:00 1223.50     273
600519.SH 贵州茅台 2026-06-18 14:57:00 1223.88     261
600519.SH 贵州茅台 2026-06-18 14:58:00 1223.26       2
600519.SH 贵州茅台 2026-06-18 14:59:00 1223.26       0
600519.SH 贵州茅台 2026-06-18 15:00:00 1215.00    1788
```

### 批量日内分时

```python theme={null}
dfs = af.klines.intraday_batch(["600519.SH", "000001.SZ"], to_dataframe=True)
for sym, df in dfs.items():
    print(f"{sym}: {len(df)} 条分钟线")
```

## 获取标的信息

```python theme={null}
insts = af.instruments.get(["600519.SH", "000001.SZ"])
for i in insts:
    print(f"{i['symbol']:>10s}  {i['name']:<6s}  交易所={i['exchange']}  类型={i['type']}  上市={i['ext'].get('listing_date','')}")
```

```
 600519.SH  贵州茅台    交易所=SH  类型=stock  上市=2001-08-27
 000001.SZ  平安银行    交易所=SZ  类型=stock  上市=1991-04-03
```

## 获取除权因子

```python theme={null}
df = af.klines.ex_factors(["600519.SH"], to_dataframe=True)
print(df[["symbol", "trade_date", "ex_factor"]].tail(5))
```

```
   symbol trade_date  ex_factor
600519.SH 2023-12-20   1.011540
600519.SH 2024-06-19   1.020716
600519.SH 2024-12-20   1.015637
600519.SH 2025-06-26   1.019649
600519.SH 2025-12-19   1.017003
```

## 获取五档盘口

### 单只标的

```python theme={null}
depth = af.depth.get("600519.SH")
print(f"标的: {depth['symbol']}  地区: {depth['region']}")
for i in range(5):
    bid = f"买{i+1}: {depth['bid_prices'][i]:>10.2f} x {depth['bid_volumes'][i]}"
    ask = f"卖{i+1}: {depth['ask_prices'][i]:>10.2f} x {depth['ask_volumes'][i]}"
    print(f"  {bid}  |  {ask}")
```

```
标的: 600519.SH  地区: CN
  买1:    1215.00 x 123  |  卖1:    1215.28 x 1
  买2:    1214.95 x 2  |  卖2:    1215.96 x 1
  买3:    1214.88 x 1  |  卖3:    1216.00 x 2
  买4:    1214.48 x 1  |  卖4:    1218.00 x 1
  买5:    1214.40 x 1  |  卖5:    1218.89 x 1
```

### 批量盘口

```python theme={null}
result = af.depth.batch(["000001.SZ", "600000.SH"])
for sym, depth in result.items():
    print(f"--- {sym} ---")
    for i in range(5):
        bid = f"买{i+1}: {depth['bid_prices'][i]:>8.2f} x {depth['bid_volumes'][i]:<6}"
        ask = f"卖{i+1}: {depth['ask_prices'][i]:>8.2f} x {depth['ask_volumes'][i]}"
        print(f"  {bid} | {ask}")
```

```
--- 000001.SZ ---
  买1:    10.52 x 19374  | 卖1:    10.53 x 2
  买2:    10.51 x 16237  | 卖2:    10.54 x 430
  买3:    10.50 x 28122  | 卖3:    10.55 x 75
  买4:    10.49 x 4656   | 卖4:    10.56 x 2771
  买5:    10.48 x 3764   | 卖5:    10.57 x 2566
--- 600000.SH ---
  买1:     9.08 x 4661   | 卖1:     9.09 x 7087
  买2:     9.07 x 5576   | 卖2:     9.10 x 1052
  买3:     9.06 x 6301   | 卖3:     9.11 x 2108
  买4:     9.05 x 10340  | 卖4:     9.12 x 1537
  买5:     9.04 x 1074   | 卖5:     9.13 x 3112
```
