ashare-lake
Health Pass
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 78 GitHub stars
Code Warn
- network request — Outbound network request in frontend/src/main.js
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
A股数据湖,覆盖股票行情/期货etf/基本面/资金/结构/宏观/舆情/风控等全套量化数据
A股数据湖
别再每次重拉、自己拼复权了。 一行命令把能按天自动更新的 A 股研究湖落到本地 Parquet——多源进同一契约,行级可溯源。
- 真数上手:
pip install→asl demo,几分钟出可复权日线 - 日更能挂着跑:水位 / 失败重试 / 质量审计;作者自用每天自动跑
- 研究口径一次定好:复权 · universe · PIT;38 个注册数据集,日线可回溯到约 2001
CLI:asl · 包名:ashare_lake · 只做数据层(回测和信号留给下游)· 可选分钟线(1m / 5m,默认关)
30 秒拿到真数
需要能访问 TDX 行情主机(大陆出口更稳)。5 只流动性股票 × 约 30 个交易日;独立目录,不会变成全市场湖。demo 只落日线——下面表里的其它数据集要走自建湖。
pip install ashare-lake
asl demo
# 可选:asl demo --intraday # 再看一根完整 1m 会话
from ashare_lake.query import load
bars = load("daily_bars", data_root="data/ashare-lake-demo", adjust="hfq")
asl query --config configs/ashare-lake.demo.toml --sql "
SELECT symbol, trade_date, close, volume, source
FROM daily_bars
WHERE symbol = '600519.SH'
ORDER BY trade_date DESC
LIMIT 10
"
TDX 不通时先 asl servers test。也可 asl demo --symbols 600519.SH,000001.SZ --days 10。
macOS / Linux / Windows(PowerShell、cmd)命令通用;venv 与调度见 installation / runbook。
自建日更湖
首次 asl init 会回填(耗时长、占磁盘);之后日常增量 + 读取。load() 默认读 cwd 下 configs/ashare-lake.toml 的 data.root。
默认不含分钟线。 asl init / asl run daily 只跑日频与基本面等主路径;1m / 5m 需显式开启(见下节)。
pip install ashare-lake
# macOS / Linux:
asl config init --data-root /Users/you/ashare-lake
# Windows:asl config init --data-root D:/ashare-lake
# macOS / Windows 默认 workers=1;Linux 示例模板为 8
asl init # 建目录 + 首次回填
asl run daily # 之后每个交易日(不含分钟线)
asl status
from ashare_lake.query import load
bars = load(
"daily_bars",
start="2020-01-01", end="2025-12-31",
adjust="hfq", # None | "qfq" | "hfq"
universe="all_a",
)
roe = load("financial_statement_items", items=["roe"], as_of="2024-04-30")
asl query --sql "
SELECT symbol, trade_date, adj_close
FROM daily_bars_adj
WHERE trade_date >= '2025-01-01'
"
demo 线:
data/ashare-lake-demo/+configs/ashare-lake.demo.toml(查数要带该--config)。
日更线:asl config init写出的configs/ashare-lake.toml。两条线互不覆盖。
无 extras:pip install ashare-lake 装齐运行时数据源。全量回填后建议按 回填验收 再挂调度。
可选:分钟线(1m / 5m)
默认关闭,也不在 asl run daily 里——全市场 1m 约 35MB/日、8.4GB/年。TDX 约只留 95 个交易日的 1m、491 个交易日的 5m;更早窗口为空,无法靠回填拉长。磁盘与耗时见 runbook。
在 configs/ashare-lake.toml 里打开:
[minute_bars]
enabled = true
scope = "index:000300.SH" # 或 watchlist / all
frequencies = ["1m", "5m"] # 5m 是唯一有较长历史的频率
# 一次性种子(可续跑;--symbols 可只拉几只、不必改配置)
asl backfill minute_bars_5m --start 2024-08-01 --end 2026-07-31
asl backfill minute_bars --start 2026-05-01 --symbols 600519.SH,000001.SZ
# 日更:单独一组,不要塞进默认 daily
asl run daily --group intraday
from ashare_lake.query import load
m5 = load("minute_bars_5m", start="2026-07-01", symbols=["600519.SH"], adjust="hfq")
架构
落盘布局(日更湖的 data.root 下):
{data_root}/
curated/ {dataset}/{partition}=v/part-*.parquet
derived/ adj_factors/...
staging/ 本次 run 原始落地(compact 后可清理)
meta/ manifest、quality findings、水位、on-demand 缓存
duckdb/ ashare-lake.duckdb
有什么数据
下表覆盖注册表全部 38 个数据集(35 curated + 3 derived,与 domain/datasets.py 同步)。
英文名即 load() 的第一个参数;字段见 schema,编排与主源见 catalog。
| 类别 | 数据集(load() 名 · 中文) |
|---|---|
| 基础参考 | instruments 证券主数据 · trading_calendar 交易日历 · trading_status 交易状态(停复牌 / ST) |
| 行情 | daily_bars 日线(未复权) · index_bars 指数日线 · minute_bars 1 分钟线(可选) · minute_bars_5m 5 分钟线(可选) · commodity_bars 商品期货主连(可选) · adj_factors 复权因子(派生) · delisting_events 退市事件(派生) |
| 公司事件 | corporate_actions 公司行为(除权除息) · announcement_index 公告索引 · earnings_disclosure_schedule 业绩披露预约 |
| 基本面 / 估值 | financial_statement_items 财务报表科目(PIT) · valuation_metrics 估值指标 · analyst_consensus 分析师一致预期 |
| 资金面 | fund_flow 个股资金流 · margin_trading 融资融券 · northbound_flows 北向资金流向 · northbound_holdings 北向持股 · dragon_tiger 龙虎榜 · block_trades 大宗交易 · institutional_holdings 机构持股 |
| 结构 / 行业 | sector_members 板块成分 · index_constituents 指数成分 · industry_members 行业分类成分 · industry_index 行业指数(派生) |
| 宏观 | macro_indicators 宏观指标 · market_breadth 市场宽度 · economic_calendar 经济日历(占位,源已下线) |
| 舆情 / 轮动 | sentiment_scores 情绪评分 · hot_rank 人气榜 · sector_bars 板块行情 · sector_fund_flow 板块资金流 · news_headlines 新闻标题 · flash_news_wire 7×24 快讯 |
| 风险 | share_unlock_schedule 解禁日程 · regulatory_events 监管事件 |
另有 on-demand(不进 curated 主路径):stock_news、research_reports 等,见 catalog。
定位:与同类差异
AkShare / efinance 解决「怎么拉数」;Tushare 解决「云端宽表」;Qlib / vn.py 解决「研究/交易平台」。
ashare-lake 专做中间层:多源进同一契约,落成可日更、可溯源、可审计的本地 Parquet 湖。详见 comparison。
| 你在意什么 | ashare-lake | AkShare / efinance | Tushare Pro | Baostock | Qlib / vn.py |
|---|---|---|---|---|---|
| 本地可续跑的数据底座 | 湖 + 日更编排(水位 / 重试 / audit) | 只拉到内存,编排自管 | 云端积分,非自建湖 | 会话拉数,无湖 | 绑在平台数据子系统里 |
| 数据从哪来、能否复查 | 行级溯源 + 写前 schema 校验 | 通常无统一契约 | 平台字段 | 无湖契约 | 视模块 |
| 多源交叉核验 | 主源 curated + 备源 snapshot,可 diff,不静默顶替 | 单次单源调用 | 单平台 | 单源 | 视配置 |
| 研究口径是否稳定 | load() 契约:复权组合 / universe / PIT as_of |
自己拼 | 自己拼 | 自己拼 | 平台口径 |
| 源挂了会怎样 | fail batch,暴露问题,可按批 retry | 看调用方 | 看平台 | 看调用方 | 视模块 |
| 能否单独当研究数据底座 | 能(湖 + 日更 + load()) |
否,还需自建落盘/编排 | 云端表,非自建湖 | 否,会话拉数 | 能,但绑平台 |
已知限制
- 幸存者偏差:退市股需
asl delisted backfill+repair;未补齐前收益序列要打折看 - 海外网络:部分 HTTP / 板块回填依赖大陆出口;行情 demo 需 TDX 可达
- 日内视野:TDX 约保留 95 个交易日的 1m、491 个交易日的 5m;更早窗口为空——见 catalog
- 年/月分区(如
index_bars):优先asl query/load(),避免 hive 分区标签撞真日期——见 lake-layout
项目状态
个人项目:issue / PR 欢迎,响应尽力而为。贡献指南 · 安全策略。文档中文为主;CHANGELOG 与 ADR 为英文。
文档
完整索引:docs/README.md。常用入口:安装 · 快速开始 · 数据集目录 · Runbook · CLI。
许可
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found