Metadata-Version: 2.5
Name: maoxianyong
Version: 0.2.0
Summary: Unified stock data infrastructure for A-share, HK and US markets
Project-URL: Repository, https://github.com/jackmaoxianyong/quant.maoxianyong.com
License: MIT
Keywords: finance,quant,stock
Requires-Python: >=3.11
Requires-Dist: duckdb>=1.5.3
Requires-Dist: pandas>=3.0.2
Description-Content-Type: text/markdown

# maoxianyong

A 股、港股和美股统一行情数据的只读 Python 包。

```python
from maoxianyong.quant import DailyReader, daily_reader

reader = DailyReader()
history = reader.get("AAPL.US", start="2024-01-01")
qfq_close = reader.get_wide(["AAPL.US", "BABA.US"])
symbols = reader.list_symbols()

# 也可以直接复用包内单例
history = daily_reader.get("AAPL.US", start="2024-01-01")
```

## 行情字段（0.2.0）

`0.2.0` 只支持 V2 行情格式，不兼容旧数据：

```text
open_raw/high_raw/low_raw/close_raw
open_qfq/high_qfq/low_qfq/close_qfq
open_hfq/high_hfq/low_hfq/close_hfq
volume/turnover
```

蜡烛图和技术指标默认使用前复权字段，历史成交模拟使用未复权字段。
`volume` 和 `turnover` 始终为原始口径；没有真实成交额时 `turnover` 为空。
行情明细不保存 `market`、`currency`。

该包默认从阿里云 OSS 读取 Parquet 数据；本地 ETL 与分析工具位于仓库的 `pipelines/stock/`。
股票元信息和可用代码清单统一保存在公开的 `quant/daily.json` 中；
`list_symbols()` 读取该文件，因此不需要 OSS 的目录枚举权限。

## 发布

在仓库根目录执行发布脚本。默认升级补丁版本，随后构建、隔离验证并上传到 PyPI：

```bash
scripts/publish_maoxianyong.sh
```

也可以指定版本升级类型：

```bash
scripts/publish_maoxianyong.sh minor
scripts/publish_maoxianyong.sh major
```

如果上传失败但版本号已经升级，使用当前版本重试，避免再次增加版本号：

```bash
scripts/publish_maoxianyong.sh current
```

脚本会在发布前请求确认，并隐蔽读取以 `pypi-` 开头的 PyPI API Token。脚本不会自动提交 Git。
