ys_base
YS 统一 SDK:契约模型(contracts)、auth 客户端与差量同步(auth)、WebSocket RPC 基类(ws)、 本地存储(store,默认 SQLite)、子系统服务骨架(server,extra)、交易网关(trade,extra,P4 收编)。
pip install ys_base # 契约 + auth 客户端 + SQLite 存储
pip install ys_base[server] # + FastAPI 子系统骨架
pip install ys_base[trade] # + 交易网关(纯策略系统只装这个)
使用 uv 添加依赖:
uv add ys_base # 契约 + auth 客户端 + SQLite 存储
uv add "ys_base[server]" # + FastAPI 子系统骨架
uv add "ys_base[trade]" # + 交易网关(纯策略系统只装这个)
trade extra 由 TradeManager 统一装配交易客户端、行情、静态信息和收益数据服务。
每个 Manager 独占一个 TradeRuntime,同一 Manager 下的账号共享 Runtime;ys_base 不保存任何
YsQuote、YsSymbol 或 YsTrade 默认地址和凭据。
from ys_base.trade 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",
),
)
quotes = await manager.query_snapshots({"600000.SH", "300750.SZ"})
refreshed = await manager.query_snapshots_with_refresh({"600000.SH"}, {"f43", "f58", "f60"})
statics = await manager.query_static_infos({"600000.SH"}, {"name", "pre_close"})
alive = await manager.check_snapshot_service_alive()
DefaultSnapshotFields == "f43,f58,f60",返回原始 f* 字段,并固定映射
f43 -> close、f60 -> pre_close、f58 -> name。不提供 last_price 或 pre_price 兼容字段;
可通过字符串或字段集合指定其他 fields。
query_snapshots()是无缓存单次查询,不登记后台刷新标的。query_snapshots_with_refresh()登记当日标的和字段,并在09:00:00-15:30:00每 2 秒持续刷新; 当日标的和字段只增不减。- Snapshot 和 StaticInfo 缓存在上海自然日变化时会同时清空日期、标的、字段和记录。
- 只有账号明确配置
profit_enabled=True时,才要求 Snapshot、StaticInfo 和 TradeData 三类服务地址齐全。
刚发布的新版本若已在 PyPI 页面可见,但 uv 仍提示该版本不存在,通常是本地缓存的 PyPI Simple Index 元数据尚未更新。先清理单包缓存并从官方源重试: uv cache clean ys-base:优先清理单包缓存。 uv cache clean:单包清理无效时清理完整缓存。 使用 --default-index https://pypi.org/simple 从官方 PyPI 重新安装。 使用 --refresh 强制刷新解析。
uv cache clean ys-base
uv add "ys_base[trade]" --default-index https://pypi.org/simple --refresh
如果仍无法解析,再清理完整缓存:
uv cache clean
uv add "ys_base[trade]" --default-index https://pypi.org/simple --refresh
设计文档:ys_auth/docs/架构方案.md(v6 终版)、契约初稿.md。
Metadata
Release files for ys_base 0.1.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ys_base-0.1.8.tar.gz | 52.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ys_base-0.1.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 115.8 kB
Release files / ys_base-0.1.8.tar.gz
| Download URL | ys_base-0.1.8.tar.gz |
|---|---|
| Size | 52.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7371156b1e8cd065ba9330d65224727adc0e1b91175e547f49ecda34a216bbeb
|
|
BLAKE2b-256 checksum How to use checksums |
2fbc960e5aba4289b0b3033aaf86b7312de3cb8e227c95756137298c45809d14
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-requests/2.31.0
|
Release files / ys_base-0.1.8-py3-none-any.whl
| Download URL | ys_base-0.1.8-py3-none-any.whl |
|---|---|
| Size | 63.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
175f1acca73cc68d0c322df0aa89325fe253bcbd9a7c3277663d2e0818054eac
|
|
BLAKE2b-256 checksum How to use checksums |
43ae33032315d8079951c30e46d3ba62119bcfa09ff3569c3038ea8535e27196
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-requests/2.31.0
|