Metadata-Version: 2.5
Name: ys_trade_sdk
Version: 0.1.0
Summary: YS 交易网关 SDK：账号线程、行情快照、盈亏与对账
Author-email: ys <popsars@gmail.com>
License: MIT
Requires-Python: >=3.13
Requires-Dist: aiohttp<4,>=3.10
Requires-Dist: certifi
Requires-Dist: exchange-calendars>=4.5
Requires-Dist: pandas>=2.2
Requires-Dist: ys-base>=0.1.59
Description-Content-Type: text/markdown

# ys_trade_sdk

YS 交易网关 SDK。账号线程、迅投/聚源客户端、行情与静态信息、盈亏缓存、Auth 账号对账都在这个包里。
契约、Auth 客户端和服务骨架仍在 `ys_base`。网关改动只升本包，不带动 Auth、MS、模板。

```bash
uv add ys_trade_sdk
```

需要服务骨架的交易系统同时安装底座：

```bash
uv add "ys_base[server]"
uv add ys_trade_sdk
```

本目录开发：

```bash
uv python install 3.13
uv sync --frozen
uv run pytest
```

## 发布到 PyPI

先改 `ys_trade_sdk/__init__.py` 的 `__version__`。PyPI 不允许覆盖同版本。Token 用钥匙串项目 `pypi:__token__`，不要把明文放进仓库。

```bash
cd ys_trade_sdk
./publish-pypi.sh
```

清华镜像能看到该版本后再给消费仓升锁。生产锁文件走清华镜像，禁止 `--default-index https://pypi.org/simple`。

```python
from ys_trade_sdk import Account, TradeManager, TradeRuntimeConfig

manager = TradeManager(
    accounts=[
        Account(
            account="A001",
            password="...",
            trade_source="xt",
            trade_uri="ws://trade.example.com",
            profit_enabled=True,
        )
    ],
    runtime_config=TradeRuntimeConfig(
        quote_data_base_url="http://quote.example.com",
        symbol_data_base_url="http://symbol.example.com",
        symbol_data_username="symbol-user",
        symbol_data_password="symbol-password",
        trade_data_base_url="http://trade-data.example.com",
        trade_data_username="trade-user",
        trade_data_password="trade-password",
    ),
)
```

证券连接只认账户快照 `stock_td_server`。有地址和端口时交易源为迅投，地址为 `ws://地址:端口`。
`profit_enabled=True` 时才要求行情、静态信息和交易数据三类地址齐全。
