Skip to main content

统一的金融数据获取库,自动选择最优数据源

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

Unified Finance Data

PyPI version Python versions License: MIT Documentation Build Status

一个统一的金融数据获取库,自动选择最优数据源获取ETF和股票的历史K线数据。

✨ 特性

  • 🔄 多数据源支持: 集成同花顺、百度股市通、新浪财经等多个数据源
  • 🎯 智能选择: 根据数据质量自动选择最佳数据源
  • 🛡️ 故障容错: 自动重试和降级机制,确保数据获取的可靠性
  • 📊 标准格式: 统一的输出格式,包含完整的OHLCV数据
  • 🚀 简单易用: 一行代码获取高质量金融数据
  • 📈 复权支持: 支持前复权、后复权、不复权多种模式
  • 🔧 代理支持: 支持SOCKS5代理配置

📦 安装

pip install unified-finance-data

或者安装开发版本:

pip install git+https://github.com/your-username/unified-finance-data.git

🚀 快速开始

from unified_finance_data import get_fund_k_history, FuquanType

# 获取创业板ETF最近30天的数据
df = get_fund_k_history('159915')

# 获取指定日期范围的数据
df = get_fund_k_history('159915', '20240101', '20241201')

# 使用后复权
df = get_fund_k_history('159915', '20240101', '20241201', fqt=FuquanType.BACK)

# 显示调试信息
df = get_fund_k_history('159915', debug=True)

print(df.head())

输出格式:

         日期     开盘     收盘     最高    最低        成交量          成交额     涨跌幅    涨跌额        振幅  换手率
0  2024-12-01  2.8900  2.9150  2.9200  2.8850  123456789.0  356789012.0  0.864887  0.0250  1.211765  0.052
1  2024-11-29  2.8750  2.8920  2.8950  2.8700   98765432.0  284567890.0  0.592857  0.0170  0.871739  0.042

📊 数据源优先级

本库按照数据质量自动选择数据源:

  1. 同花顺 (优先级最高) - 专业金融数据,数据质量最高
  2. 百度股市通-Playwright版本 (优先级中等) - 数据更新及时,功能完整,但需要浏览器环境
  3. 百度股市通-API版本 (优先级较低) - 速度快,无需浏览器,但功能有限
  4. 新浪财经 (优先级最低) - 接口稳定,轻量级实现

当高优先级数据源失败时,自动切换到备用数据源。

🔧 API 参考

get_fund_k_history()

获取基金/股票的历史K线数据。

参数:

  • fund_code (str): 基金/股票代码,如 '159915'
  • beg (str, 可选): 开始日期,格式 'YYYYMMDD',默认 '20200101'
  • end (str, 可选): 结束日期,格式 'YYYYMMDD',默认今天
  • fqt (int, 可选): 复权类型,默认 FuquanType.FRONT
  • proxy (str, 可选): 代理地址
  • debug (bool, 可选): 是否显示调试信息

返回:

  • pd.DataFrame: 包含完整K线数据的DataFrame

复权类型

class FuquanType:
    NONE = 0   # 不复权
    FRONT = 1  # 前复权 (默认)
    BACK = 2   # 后复权

输出列说明

列名 说明
日期 交易日期 (YYYY-MM-DD)
开盘 开盘价
收盘 收盘价
最高 最高价
最低 最低价
成交量 成交量
成交额 成交额
涨跌幅 涨跌幅 (%)
涨跌额 涨跌额
振幅 振幅 (%)
换手率 换手率 (%)

🧪 高级用法

获取可用数据源

from unified_finance_data import get_available_sources

sources = get_available_sources()
print(f"可用数据源: {sources}")
# 可能输出: ['同花顺', '百度Playwright', '百度API', '新浪']

测试数据源

from unified_finance_data import test_data_sources

# 测试默认配置
success = test_data_sources()

# 测试指定基金和日期范围
success = test_data_sources('510050', '20241101', '20241201')

自定义错误处理

from unified_finance_data import get_fund_k_history, FuquanType

try:
    df = get_fund_k_history('159915', debug=True)
except RuntimeError as e:
    print(f"数据获取失败: {e}")
    # 实现备用逻辑

🔧 开发

安装开发环境

# 克隆仓库
git clone https://github.com/your-username/unified-finance-data.git
cd unified-finance-data

# 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# 安装开发依赖
pip install -e ".[dev]"

运行测试

# 运行所有测试
pytest

# 运行单元测试
pytest unit/

# 运行集成测试
pytest tests/

# 生成覆盖率报告
pytest --cov=unified_finance_data --cov-report=html

代码格式化

# 格式化代码
black src/ unit/ tests/

# 排序导入
isort src/ unit/ tests/

# 类型检查
mypy src/unified_finance_data/

📋 支持

  • 支持A股、ETF、指数等金融产品
  • 支持多种时间周期(日线、周线、月线)
  • 自动处理节假日和停牌数据
  • 智能数据质量检查和清洗

⚠️ 免责声明

本库仅供学习和研究使用,不构成投资建议。使用本库获取的金融数据进行投资决策所产生的一切风险由用户自行承担。请遵守相关法律法规,尊重金融数据提供商的使用条款。

🤝 贡献

欢迎提交 Issue 和 Pull Request!

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

🙏 致谢

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

unified_finance_data-1.0.1.tar.gz (56.3 kB view details)

Uploaded Source

Built Distribution

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

unified_finance_data-1.0.1-py3-none-any.whl (42.0 kB view details)

Uploaded Python 3

File details

Details for the file unified_finance_data-1.0.1.tar.gz.

File metadata

  • Download URL: unified_finance_data-1.0.1.tar.gz
  • Upload date:
  • Size: 56.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.0

File hashes

Hashes for unified_finance_data-1.0.1.tar.gz
Algorithm Hash digest
SHA256 e25e3697113b8e4604d47d435efc1219a6527ce7989d5a7bab518710b0834183
MD5 a5aee5dbbb94f915db89e7dbea911890
BLAKE2b-256 ee7675d63c73d115c4c262e6b2229ea60044a6e724e5a7404c9a752b89e8c145

See more details on using hashes here.

File details

Details for the file unified_finance_data-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for unified_finance_data-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 49c4ada47718b58fa19c1afa00e89c5d2394909d27aba810e22d1a045a22f632
MD5 5ac2eaf2d211bbc094221bf7b7d72de2
BLAKE2b-256 d2d036fd9eb21b59ccdeb27ddbb93089376cae8c88e608502a454853dbba3599

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