Skip to main content

Core library for stock/crypto data with multi-source failover

Project description

open-stock-data

open-stock-data 是一个面向股票、指数、加密货币和财经新闻的数据工具库。项目以普通 Python 函数形式提供 43 个工具,覆盖 A 股、港股、美股、ETF、A 股指数、OKX、Binance 和财经新闻,并在多类行情/财务数据上内置多数据源故障转移。

安装

pip install open-stock-data

快速使用

from open_stock_data.tools import get_current_time, stock_prices, stock_realtime

print(get_current_time())
print(stock_prices(symbol="600519", market="sh", limit=5))
print(stock_realtime(symbol="01810.HK", market="hk"))

工具函数返回文本结果,表格类数据通常以 CSV 形式输出,便于直接展示、写入文件或交给上层应用继续处理。

支持的代码格式

工具会在内部对常见股票代码格式做标准化,主要影响 stock_pricesstock_realtimestock_infostock_indicators 等函数。

市场 支持示例
A 股个股 600519, 000001, sh600519, sz000001, 600519.SH, 000001.SZ
ETF 510300, 159001, sh510300, sz159001, 510300.SH, 159001.SZ
港股 01810, 1810, HK01810, 01810.HK, 1810.hk
美股 AAPL, MSFT, BRK.B
加密货币 BTC, ETH, BTC-USDT

说明:

  • A 股和 ETF 会标准化为 6 位代码,例如 sh600519 -> 600519
  • 港股会标准化为 5 位代码,例如 1810.hk -> 01810
  • 美股代码会转为大写,例如 brk.b -> BRK.B
  • 暂未专门支持 SHSE.600519SZSE.159001 这类交易所前缀格式。

环境变量

大多数基础行情可直接使用。部分增强数据源或自定义代理需要通过环境变量配置。

变量 说明
TUSHARE_TOKEN Tushare Pro token。配置后启用 Tushare A 股数据源。
ALPHA_VANTAGE_API_KEY Alpha Vantage API key。配置后启用部分美股新闻、技术指标和财务数据增强能力。
OKX_BASE_URL 自定义 OKX API 基础地址,默认 https://www.okx.com
BINANCE_BASE_URL 自定义 Binance API 基础地址,默认 https://www.binance.com
NEWSNOW_CHANNELS NewsNow 新闻频道列表,多个频道用逗号分隔。
ENABLE_EASTMONEY_PATCH 设为 true 后启用东方财富限流缓解补丁。

示例:

export TUSHARE_TOKEN="your-token"
export ALPHA_VANTAGE_API_KEY="your-api-key"

数据源与故障转移

项目内置多个数据源,并根据市场和函数类型自动选择可用来源:

  • A 股:Tushare、Efinance、Akshare、Pytdx、Baostock。
  • 港股:Akshare、YFinance。
  • 美股:YFinance、Alpha Vantage、Akshare。
  • 加密货币:OKX、Binance。
  • 新闻:东方财富、新浪、NewsNow。

部分工具会按优先级自动故障转移。例如 A 股日线优先使用高优先级数据源,失败后切换到其他来源;美股基本面优先使用 Alpha Vantage,缺失或未配置时回退到 YFinance。数据源状态可通过 data_source_status() 查看。

东方财富限流补丁

当东方财富相关接口频繁出现 RemoteDisconnected、连接被关闭、请求被重置等问题时,可以开启内置补丁:

export ENABLE_EASTMONEY_PATCH=true

开启后会:

  • 为东方财富请求注入随机 User-Agent
  • 从匿名 web-report 接口获取并缓存 nid18 token。
  • nid18 合并到现有 Cookie。
  • 在请求前加入短随机延迟,降低触发限流的概率。

补丁作用于共享的 requests.Session.request 层,因此同时覆盖项目自身请求和依赖库中触发的东方财富请求。

可用工具

A 股价格行情

工具 说明
index_prices 获取 A 股指数历史价格,例如沪深 300、上证指数。
stock_prices 获取 A 股、ETF、港股、美股历史价格及技术指标。
stock_realtime 获取 A 股、港股、ETF 实时行情。
stock_batch_realtime 批量获取多只 A 股实时行情。

A 股信息查询

工具 说明
search 根据名称、公司名或关键词查找股票代码。
stock_info 获取股票基本信息。
stock_indicators 获取 A 股、港股、美股财务指标摘要。
get_current_time 获取当前时间和 A 股交易日信息。

A 股市场资金

工具 说明
stock_zt_pool 获取涨停池、强势股池等数据。
stock_lhb_ggtj_sina 获取龙虎榜个股上榜统计。
stock_sector_fund_flow_rank 获取行业或概念板块资金流排名。
stock_north_flow 获取沪深港通北向资金流向。
stock_margin_trading 获取融资融券数据。
stock_block_trade 获取大宗交易数据。
stock_holder_num 获取股东户数变化数据。

A 股个股分析

工具 说明
stock_chip 获取筹码分布、获利比例、平均成本和集中度。
stock_fund_flow 获取个股主力、超大单、大单、中单、小单资金流向。
stock_sector_spot 获取个股所属行业和概念板块。
stock_board_cons 获取行业或概念板块成分股。

A 股估值与财务

工具 说明
stock_market_pe_percentile 获取市场整体 PE/PB 历史分位。
stock_industry_pe 获取行业 PE 对比数据。
stock_dividend_history 获取个股历史分红送转数据。
stock_institutional_holdings 获取基金重仓股和机构持仓数据。
stock_earnings_calendar 获取财报披露日历。
stock_financial_compare 获取盈利、偿债、运营等多维财务指标。

A 股股东数据

工具 说明
stock_locked_shares 获取限售股解禁日历和解禁规模。
stock_pledge_ratio 获取股权质押统计和质押比例。
stock_top10_holders 获取十大股东或十大流通股东信息。

A 股量化

工具 说明
backtest_strategy 对均线交叉、MACD、KDJ 等简单策略进行回测。

美股与港股

工具 说明
stock_prices_us 获取美股或港股历史价格及技术指标。
stock_overview_us 获取美股公司概览,包括市值、PE、EPS、股息率、52 周高低点等。
stock_financials_us 获取美股资产负债表、利润表、现金流量表。
stock_news_us 获取美股新闻和情绪数据,需要 ALPHA_VANTAGE_API_KEY
stock_earnings_us 获取美股历史盈利和分析师预期。
stock_insider_us 获取美股内部人交易记录。
stock_tech_indicators_us 获取美股 SMA、EMA、RSI、MACD、布林带等技术指标,需要 ALPHA_VANTAGE_API_KEY

加密货币

工具 说明
okx_prices 获取 OKX 加密货币 K 线价格、成交量和技术指标。
okx_loan_ratios 获取 OKX 杠杆借币多空比。
okx_taker_volume 获取 OKX 主动买入和主动卖出数据。
binance_ai_report 获取 Binance 加密货币 AI 分析报告。

市场新闻与状态

工具 说明
stock_news 获取股票或加密货币相关新闻。
stock_news_global 获取全球财经快讯。
data_source_status 查看数据源状态和熔断器信息。

直接导入工具注册表

如果需要批量注册到外部系统,可以使用 ALL_TOOLSTOOL_REGISTRY

from open_stock_data.tools import ALL_TOOLS, TOOL_REGISTRY

print(len(ALL_TOOLS))
print(TOOL_REGISTRY["stock_prices"][1])

许可证

本项目使用 MIT License,详见 LICENSE

Project details


Release history Release notifications | RSS feed

This version

0.2

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

open_stock_data-0.2.tar.gz (105.7 kB view details)

Uploaded Source

Built Distribution

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

open_stock_data-0.2-py3-none-any.whl (122.6 kB view details)

Uploaded Python 3

File details

Details for the file open_stock_data-0.2.tar.gz.

File metadata

  • Download URL: open_stock_data-0.2.tar.gz
  • Upload date:
  • Size: 105.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for open_stock_data-0.2.tar.gz
Algorithm Hash digest
SHA256 c33f754d3855cadf9f0e32c9e5f9d9a1fcb3edbdf8675d2aa350c0ac6e740a1e
MD5 f909300aabc75827fbc966d9bde31bd1
BLAKE2b-256 a26b56d29fa2dcbe83344c748d54d39562d140b0932ed22cb1ed3df999ca0f84

See more details on using hashes here.

File details

Details for the file open_stock_data-0.2-py3-none-any.whl.

File metadata

  • Download URL: open_stock_data-0.2-py3-none-any.whl
  • Upload date:
  • Size: 122.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for open_stock_data-0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 06abe1449cc4b840b27ee002f23de943b47e9721fdc680229b54f67677fb5b70
MD5 ed8a333ac1c107cf3f58630bafbb8342
BLAKE2b-256 127e6e8be783079785de4ee43bbc1db6fe44875698bdb03017c32521700e46c3

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