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_prices、stock_realtime、stock_info、stock_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.600519、SZSE.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 接口获取并缓存
nid18token。 - 将
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_TOOLS 或 TOOL_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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c33f754d3855cadf9f0e32c9e5f9d9a1fcb3edbdf8675d2aa350c0ac6e740a1e
|
|
| MD5 |
f909300aabc75827fbc966d9bde31bd1
|
|
| BLAKE2b-256 |
a26b56d29fa2dcbe83344c748d54d39562d140b0932ed22cb1ed3df999ca0f84
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06abe1449cc4b840b27ee002f23de943b47e9721fdc680229b54f67677fb5b70
|
|
| MD5 |
ed8a333ac1c107cf3f58630bafbb8342
|
|
| BLAKE2b-256 |
127e6e8be783079785de4ee43bbc1db6fe44875698bdb03017c32521700e46c3
|