API 参考
rqalpha-mod-tushare-data 的 patches 子包提供 40 个 rqdatac 函数的本地实现,
按职责拆分到 7 个子模块中。所有 patch 通过
apply_rqdatac_patch(bundle_path) 注册到 rqdatac 模块。
公共 API
apply_rqdatac_patch
apply_rqdatac_patch(bundle_path: str) -> None
将 patches.PATCH_MAP 中 40 个函数 setattr 到 rqdatac 模块,并 patch 内部
_all_obid_to_type(rqfactor 的 ensure_order_book_ids 内部依赖)。
参数 |
说明 |
|---|---|
|
由 |
副作用:首次调用会加载 instruments.pk(~23k 个工具)到内存。
PATCH_MAP
dict[str, Callable] — 40 个 rqdatac 函数名 → 补丁实现的映射。可用于直接内省或
第三方扩展。
from rqalpha_mod_tushare_data.patches import PATCH_MAP
print(len(PATCH_MAP)) # 40
print(list(PATCH_MAP.keys())[:5])
# ['all_instruments', 'instruments', 'get_trading_dates', ...]
按模块分组的 40 个 patch
instruments — 工具查询
PATCH_MAP 名 |
rqdatac 签名 |
说明 |
|---|---|---|
|
|
全部工具,返回 |
|
|
按 order_book_id / symbol 查单个或多个工具;字符串入参返回官方 |
calendar — 交易日历
PATCH_MAP 名 |
rqdatac 签名 |
说明 |
|---|---|---|
|
|
返回 |
|
|
返回 |
|
|
返回 |
|
|
返回 |
price — 行情 / 复权 / 流通股本
PATCH_MAP 名 |
rqdatac 签名 |
数据来源 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
get_price(..., expect_df=True) 与官方 rqdatac 一致:返回普通字段列的 DataFrame,
行索引为 MultiIndex(order_book_id, date)。无数据时返回 None。
financial — 财务三表 + 财务指标
未来函数保护:所有函数按
ann_date(公告日)过滤,避免回测用到未披露财报。
PATCH_MAP 名 |
rqdatac 签名 |
数据来源 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
industry — 行业分类 + 指数成分
未来函数保护:行业分类按
in_date/out_date切片,跨期截面查询时返回 历史当时所属行业,非当前行业。
PATCH_MAP 名 |
rqdatac 签名 |
数据来源 |
|---|---|---|
|
|
行业名称/代码 → |
|
|
本地扩展:标的 → 行业名称 list |
|
|
返回 |
|
|
行业名称/代码 → |
|
|
标的 → 行业 |
|
|
SW2021 别名 |
|
|
SW2021 raw 别名 |
|
|
SW2021 mapping 别名 |
|
|
|
|
|
|
factor — 因子暴露
未来函数保护:
get_style_factor_exposure用ann_date <= dt(不是report_date) 判断"哪期财报可用",避免公告前 look-ahead。
PATCH_MAP 名 |
rqdatac 签名 |
数据来源 |
|---|---|---|
|
|
|
|
|
|
stubs — 无本地数据时的官方格式兼容
以下 API 中部分没有对应 bundle 数据。没有数据时仍返回与官方一致的空结构, 避免仅因 Python 类型或索引结构不同导致调用方崩溃;空结果不代表具备真实数据。
PATCH_MAP 名 |
rqdatac 签名 |
返回 |
|---|---|---|
|
|
|
|
|
空 |
|
|
用最新日线构造官方 |
|
|
空 |
|
|
空 |
|
|
空 |
|
|
空 |
|
|
|
Mod 公共 API
rqalpha_mod_tushare_data.__init__ 暴露给 RQAlpha mod 系统的标准接口:
from rqalpha_mod_tushare_data import load_mod
mod = load_mod() # TushareBundleMod(AbstractMod) 实例
名称 |
说明 |
|---|---|
|
|
|
当前版本号 |
|
默认配置: |
|
工厂函数,返回 |
|
|
start_up 完成两件事:
env.set_data_source(TushareBundleDataSource(bundle_path=mod_config.get("bundle_path", ...)))apply_rqdatac_patch(env.data_source.bundle_path),注册 40 个 patch