统一适配rqdata/火富牛API等数据源
Project description
xqdata
统一适配rqdata、火富牛API等数据源
简介
xqdata是一个统一的数据访问接口库,旨在提供一致的API来访问不同的金融数据源,包括RQData、火富牛等。
安装
pip install xqdata
使用方法
基本用法
from xqdata import get_dataapi
# 获取数据API实例,默认使用mock数据
api = get_dataapi()
# 或者指定特定的数据源
api = get_dataapi("rq") # RQData
api = get_dataapi("mock") # Mock数据(默认)
认证
# 对于需要认证的数据源(如RQData)
api.auth(username="your_username", password="your_password")
获取基础信息
# 获取股票信息
stock_info = api.get_info("stock")
# 获取基金信息
fund_info = api.get_info("fund")
# 获取期货信息
futures_info = api.get_info("futures")
# 获取ETF信息
etf_info = api.get_info("etf")
获取因子数据
# 获取单个因子数据
factor_data = api.get_factor("pe_ratio", "000001.XSHE")
# 获取多个因子数据
factors = ["pe_ratio", "pb_ratio"]
codes = ["000001.XSHE", "000002.XSHE"]
factor_data = api.get_factor(factors, codes)
# 指定时间范围和频率
factor_data = api.get_factor(
factors,
codes,
start_time="2024-01-01",
end_time="2024-12-31",
frequency="D"
)
获取双键因子数据
# 获取双键因子数据(例如持仓数据)
dualkey_data = api.get_dualkey_factor(
"holding_ratio",
["client_001", "client_002"], # 客户代码
["product_A", "product_B"], # 产品代码
)
支持的数据源
- Mock数据:用于开发和测试的模拟数据
- RQData:米筐RQData金融数据接口(需要安装rqdatac库并具有有效账户)
RQData配置
要使用RQData数据源,需要:
-
安装rqdatac库:
pip install rqdatac
-
具有有效的RQData账户
-
在代码中进行认证:
api = get_dataapi("rq") api.auth(username="your_username", password="your_password")
扩展新的数据类型
RQData API支持通过配置来扩展新的数据类型查询。可以通过以下方式注册新的信息类型:
import rqdatac as rq
# 注册新的信息类型
api.register_info_type(
"my_custom_type", # 类型名称
rq.all_instruments, # 调用的RQData函数
{"type": "CustomType"}, # 传递给RQData函数的参数
None, # 后处理函数(可选)
{} # 传递给后处理函数的参数(可选)
)
# 使用新注册的类型
data = api.get_info("my_custom_type")
开发指南
运行测试
# 运行所有测试
pytest
# 运行特定测试文件
pytest test/test_mock.py
pytest test/test_rqdata.py
添加新的数据源
要添加新的数据源,需要:
- 创建新的模块目录(如
xqdata/newsource) - 实现
DataApi抽象基类的所有方法 - 在模块的
__init__.py中创建单例实例 - 更新工厂函数以支持新的数据源
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
xqdata-0.2.4.tar.gz
(10.7 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
xqdata-0.2.4-py3-none-any.whl
(15.1 kB
view details)
File details
Details for the file xqdata-0.2.4.tar.gz.
File metadata
- Download URL: xqdata-0.2.4.tar.gz
- Upload date:
- Size: 10.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf16b803e6654af7a9f1a61aa56f9700e4caf490f912e4da60bac71b76553684
|
|
| MD5 |
0cd4e05ea02c8c7954a984a10d8342c9
|
|
| BLAKE2b-256 |
52c6f56704fc59f401cb6ed5a015ad58fc3e57897a0fa2f8a5cd9231a6a37fe0
|
File details
Details for the file xqdata-0.2.4-py3-none-any.whl.
File metadata
- Download URL: xqdata-0.2.4-py3-none-any.whl
- Upload date:
- Size: 15.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
296285decc1e99762be55e4d52e8d18d28d4004f5f95664d46fffe9d704937c1
|
|
| MD5 |
9395a6c531ff405232480114fbff2b10
|
|
| BLAKE2b-256 |
32d6567d32dd0b84f15496db2c787b891c520ec1b75d840b6555453b7a108e13
|