Skip to main content

统一适配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"],    # 产品代码
)

支持的数据源

  1. Mock数据:用于开发和测试的模拟数据
  2. RQData:米筐RQData金融数据接口(需要安装rqdatac库并具有有效账户)

RQData配置

要使用RQData数据源,需要:

  1. 安装rqdatac库:

    pip install rqdatac
    
  2. 具有有效的RQData账户

  3. 在代码中进行认证:

    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

添加新的数据源

要添加新的数据源,需要:

  1. 创建新的模块目录(如xqdata/newsource
  2. 实现DataApi抽象基类的所有方法
  3. 在模块的__init__.py中创建单例实例
  4. 更新工厂函数以支持新的数据源

License

MIT

Project details


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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xqdata-0.2.4-py3-none-any.whl (15.1 kB view details)

Uploaded Python 3

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

Hashes for xqdata-0.2.4.tar.gz
Algorithm Hash digest
SHA256 bf16b803e6654af7a9f1a61aa56f9700e4caf490f912e4da60bac71b76553684
MD5 0cd4e05ea02c8c7954a984a10d8342c9
BLAKE2b-256 52c6f56704fc59f401cb6ed5a015ad58fc3e57897a0fa2f8a5cd9231a6a37fe0

See more details on using hashes here.

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

Hashes for xqdata-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 296285decc1e99762be55e4d52e8d18d28d4004f5f95664d46fffe9d704937c1
MD5 9395a6c531ff405232480114fbff2b10
BLAKE2b-256 32d6567d32dd0b84f15496db2c787b891c520ec1b75d840b6555453b7a108e13

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page