Metadata-Version: 2.4
Name: liangmai
Version: 0.1.2
Summary: 量脉金融数据平台 Python SDK
Project-URL: Homepage, https://liangmai.pro
Project-URL: Documentation, https://liangmai.pro/docs
Project-URL: Repository, https://liangmai.pro
Project-URL: Issues, https://liangmai.pro
Author-email: Liangmai <support@liangmai.pro>
License: MIT
Keywords: china-a-shares,finance,liangmai,market-data,stock
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Financial and Insurance Industry
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Office/Business :: Financial
Requires-Python: >=3.8
Requires-Dist: requests>=2.25
Description-Content-Type: text/markdown

# 量脉 (Liangmai) Python SDK

量脉金融数据平台的 Python SDK，提供沪深京 A 股、指数、基金、可转债、期货、龙虎榜等全线金融数据接口。

## 安装

```bash
pip install liangmai
```

## 快速开始

```python
from liangmai import Client

# 创建客户端（token 可从环境变量 LIANGMAI_TOKEN 读取）
client = Client(token="your_platform_token")

# 获取股票列表
data = client.stock_list()
print(data["data"])

# 实时行情
data = client.stock_realtime(ts_code="601012")
print(data["data"])

# 涨停股池
data = client.pool_limit_up(trade_date="2025-04-01")
print(data["data"])

# 历史 K 线（日线，前复权，100 条）
data = client.quote_bars_history(
    full_code="000001.SZ",
    interval="d",
    cq="n",
    lt=100,
)
print(data["data"])
```

也可以通过环境变量配置，免去每次传 token：

```bash
export LIANGMAI_TOKEN=your_platform_token
# 如使用自定义网关地址（通常不需要）：
# export LIANGMAI_BASE_URL=https://your-domain/api/gateway
```

```python
from liangmai import Client

client = Client()  # 自动从环境变量读取

data = client.stock_list()
```

## 快捷调用

无需创建 Client 实例：

```python
from liangmai import call

data = call("stock_realtime", ts_code="601012", token="your_token")
```

## API 分类

### 列表与日历

| 方法 | 说明 |
|------|------|
| `stock_list()` | 沪深京股票合并列表（推荐） |
| `hs_list_main()` | 沪深 A 股基础列表 |
| `ipo_calendar()` | 新股日历 |
| `sector_tree()` | 指数/行业/概念树 |
| `sector_constituents(sector_code)` | 按板块/概念查成分股 |
| `stock_sectors(ts_code=)` | 单只股票所属指数/行业/概念 |
| `index_list_main()` | 沪深主要指数列表 |
| `bj_list_stocks()` | 京市股票列表 |
| `bj_list_indices()` | 京市指数列表 |
| `hk_list_stocks()` | 港股列表 |
| `kc_list_stocks()` | 科创板股票列表 |
| `fund_list_all()` | 沪深基金列表 |
| `fund_list_etf()` | ETF 基金列表 |

### 股池

| 方法 | 说明 |
|------|------|
| `pool_limit_up(trade_date)` | 涨停股池 |
| `pool_limit_down(trade_date)` | 跌停股池 |
| `pool_strong(trade_date)` | 强势股池 |
| `pool_subnew(trade_date)` | 次新股池 |
| `pool_broken_board(trade_date)` | 炸板股池 |
| `pool_industry(trade_date, sector_code)` | 行业股池 |
| `pool_concept(trade_date, sector_code)` | 概念股池 |

### 实时行情

| 方法 | 说明 |
|------|------|
| `stock_realtime(ts_code=)` | 实时行情（网络源） |
| `stock_realtime_multi(stock_codes)` | 多股实时行情（最多 20 只） |
| `stock_ticks_today(ts_code=)` | 当日逐笔成交 |
| `quote_realtime_broker(ts_code=)` | 实时行情（专业行情源） |
| `quote_five_broker(ts_code=)` | 买卖五档（专业行情源） |
| `capital_flow_history(ts_code=, st=, et=, lt=)` | 资金流向历史 |

### K 线

| 方法 | 说明 |
|------|------|
| `quote_bars_latest(full_code, interval, cq, lt)` | 最新 K 线（最多 5 条） |
| `quote_bars_history(full_code, interval, cq, st, et, lt)` | 历史 K 线 |
| `quote_stop_prices(full_code, st, et)` | 历史涨跌停价 |
| `quote_market_indicators(full_code, st, et)` | 行情指标 |
| `stock_instrument(full_code)` | 股票基础信息 |

### 公司资料

| 方法 | 说明 |
|------|------|
| `company_profile(ts_code=)` | 公司简介 |
| `company_finance_metrics(ts_code=)` | 财务指标 |
| `company_holders_top10(ts_code=)` | 十大股东 |
| `company_holder_trend(ts_code=)` | 股东户数变化 |
| ... | 更多公司资料接口 |

### 财务报表

| 方法 | 说明 |
|------|------|
| `fin_balance_sheet(full_code, st, et)` | 资产负债表 |
| `fin_income_statement(full_code, st, et)` | 利润表 |
| `fin_cashflow_statement(full_code, st, et)` | 现金流量表 |
| `fin_per_share_index(full_code, st, et)` | 财务主要指标 |

### 技术指标

| 方法 | 说明 |
|------|------|
| `tech_macd(full_code, interval, cq)` | MACD |
| `tech_kdj(full_code, interval, cq)` | KDJ |
| `tech_rsi(full_code, interval, cq)` | RSI |
| `tech_boll(full_code, interval, cq)` | BOLL |
| ... | 更多技术指标 |

### 指数

| 方法 | 说明 |
|------|------|
| `index_bars_latest(index_full, interval, cq, lt)` | 指数最新 K 线 |
| `index_bars_history(index_full, interval, cq, st, et, lt)` | 指数历史 K 线 |
| `index_realtime(index_code)` | 指数实时行情 |

### 可转债

| 方法 | 说明 |
|------|------|
| `cb_list()` | 可转债列表 |
| `cb_realtime(full_code)` | 可转债实时行情 |
| `cb_bars_latest(full_code, interval, cq, lt)` | 可转债最新 K 线 |
| `cb_bars_history(full_code, interval, cq, st, et, lt)` | 可转债历史 K 线 |

### 期货

| 方法 | 说明 |
|------|------|
| `fut_list()` | 期货列表 |
| `fut_realtime(symbol)` | 期货实时行情 |
| `fut_bars(symbol, interval, st, et, lt)` | 期货 K 线 |

### 龙虎榜 / 游资

| 方法 | 说明 |
|------|------|
| `dragon_tiger(date)` | 龙虎榜查询 |
| `youzi_all(date)` | 全部游资上榜列表 |
| `youzi_by_name(yzmc, date)` | 按游资名称查询 |
| `youzi_gegu(code, start_date, end_date)` | 个股游资上榜交割单 |

### 全市场快照

| 方法 | 说明 |
|------|------|
| `market_realtime_all()` | 全市场实时快照（独立缓存） |

## 常见问题

### Token 管理

```python
# 方式一：环境变量
import os
os.environ["LIANGMAI_TOKEN"] = "your_token"

# 方式二：构造函数传参
client = Client(token="your_token")

# 方式三：在快捷调用中传参
from liangmai import call
data = call("stock_list", token="your_token")
```

### 参数说明

- **股票代码**：支持 6 位代码（如 `"000001"`）和带市场后缀（如 `"000001.SZ"`），网关会自动处理。
- **K 线接口**：`full_code` 需带市场后缀如 `"000001.SZ"`；`index_full` 需如 `"000001.SH"`。
- **日期格式**：股池类接口用 `yyyy-MM-dd`，K 线类 `st`/`et` 用 `YYYYMMDD` 或 `YYYYMMDDhhmmss`。
- **最新 K 线**：`lt` 参数最多 5 条，要更多条请使用 `_history` 后缀的接口。

### 错误处理

```python
import liangmai

try:
    client = liangmai.Client()
    data = client.stock_realtime(ts_code="000001")
except RuntimeError as e:
    print(f"请求失败: {e}")
```

## 许可证

MIT License