基于 Polars 的命令行量化数据处理工具。
| 类型 | 路径 |
|---|---|
| 只读原始数据 | /mnt/readonly_dataset |
| 生成数据集 | /mnt/dataset |
所有路径参数必须作为命令行参数传入,不可硬编码。
| 数据类型 | 数据源 |
|---|---|
| 股票每日成交 | finance_sina |
| 指数每日成交 | finance_sina |
| 融资融券 | eastmoney |
| 基金行情 | cninfo |
| 基金份额 | exchange_sse + exchange_szse |
每个数据集的详细文档(命令、输入输出、字段含义)单独存放在 docs/datasets/,一个数据集一个文件。
| 数据集 | 类型 | 说明 | 文档 |
|---|---|---|---|
| gov_stats/工业企业指标 | 原始 | 规模以上工业企业月度经济效益 | 文档 |
| gov_stats/{进出口,社会消费品零售总额} | 原始 | 海关进出口、社会消费品零售总额月度指标(千美元/亿元/%),csv≤近年 + xlsx | 见下方 |
| gov_pbc | 原始 | 央行月度统计(货币供应量、社融、信贷收支、货币当局资产负债表),按年目录,htm/xls/xlsx 混合格式 | 见下方 |
| csindex/industry | 原始 | 中证行业分类快照(一/二/三/四级),日度但变化慢 | 见下方 |
| csindex/index_weight/{000300,000905} | 原始 | HS300 / CSI500 月度成分权重(OLE .xls 伪装成 .xlsx) | 见下方 |
| industry_profit | 生成 | 工业企业每月利润总额 | 文档 |
| pbc/money_supply | 生成 | 央行货币供应量 M0/M1/M2 月度(亿元),宽表 | 文档 |
| pbc/social_financing_flow | 生成 | 社会融资规模增量(流量),长表 | 文档 |
| pbc/social_financing_stock | 生成 | 社会融资规模存量 + 增速,长表 | 文档 |
| pbc/credit_funds | 生成 | 金融机构信贷收支(存贷款全明细),长表 | 文档 |
| pbc/central_bank_balance_sheet | 生成 | 货币当局资产负债表(全明细),长表 | 文档 |
| pbc/overseas_rmb_assets | 生成 | 境外机构/个人持有境内人民币金融资产(股票/债券/贷款/存款),宽表 | 文档 |
| pbc/exchange_rate | 生成 | 人民币兑美元汇率(月末/月均中间价),宽表 | 文档 |
| exchange_hkex/southbound_flow | 生成 | 港股通南向每日买卖净额(亿港元),宽表,2021-06 起 | 文档 |
| gov_stat/trade | 生成 | 海关进出口月度指标(长表) | 文档 |
| gov_stat/retail_sales | 生成 | 社会消费品零售总额月度指标(长表) | 文档 |
| gov_stat/retail_sales_monthly | 生成 | 社会消费品零售总额每月新增额(宽表,累计值差分) | 文档 |
| gov_stat/port_freight | 生成 | 全国港口货物吞吐量月度指标(长表,2019 起) | 文档 |
| gov_stat/freight | 生成 | 货运量月度指标(长表,2005 起) | 文档 |
| gov_stat/passenger | 生成 | 客运量月度指标(长表,2005 起) | 文档 |
| stock_quote_history | 生成 | 股票行情历史 | 文档 |
| stock_quote_adjusted | 生成 | 前复权行情 | 文档 |
| stock_quote_ta | 生成 | 技术指标 | 文档 |
| turnover_concentration | 生成 | 全 A 股日成交额集中度(gini/alpha/top5-median/hhi/cr10)+ 股票数 + 流通/总市值,宽表,1992 起 | 文档 |
| new_float_market_cap | 生成 | 剔除股价涨跌影响的日度流通市值变化(正/负/净分列,全市场宽表,2005 起) | 文档 |
| margin_trade_history | 生成 | 融资融券历史 | 文档 |
| margin_trade_daily | 生成 | 融资融券每日净变化 | 文档 |
| fund_shares_history | 生成 | 基金份额历史 | 文档 |
| fund_quote_history | 生成 | 基金行情历史 | 文档 |
| fund_flow | 生成 | 基金资金流 | 文档 |
| fund_hs300_correlation | 生成 | 沪深300关联基金滚动相关性 | 文档 |
| etf_universe | 生成 | ETF 范围清单(宽基指数/行业/商品/债券/境外市场五类,附子分类) | 文档 |
| index_adjust_history | 生成 | 指数成份调整历史(调入/调出事件流,2015-2026,按年分文件) | 文档 |
| index_constituent_history | 生成 | 指数成份股入/出区间(最新 weight 锚点 + 调整历史反推,按指数/年份分文件) | 文档 |
独立 argparse 脚本,放在 plots/,输出 PNG 到 /mnt/dataset/。每个脚本的完整文档(用法/参数/数据源/结果)单独存放在 plots/xxx.md,下表只做索引。
| 脚本 | 说明 | 文档 |
|---|---|---|
| industry_heatmap | 行业成交额-涨幅方块热力图(finviz 风格,全 A 股聚合) | 文档 |
| industry_turnover_stack | 行业成交额占比 river 图(streamgraph,时序) | 文档 |
| ppi_vs_hs300 | PPI 出厂价格指数同比 vs 沪深300(双轴) | 文档 |
| purchase_price_vs_hs300 | 购进价格指数同比 vs 沪深300(双轴) | 文档 |
| retail_sales_monthly_vs_hs300 | 社零滚12月合计及同比 vs 沪深300(双轴) | 文档 |
| power_generation_12m_vs_hs300 | 发电量滚12月合计同比 vs 沪深300(双轴) | 文档 |
| passenger_vs_hs300 | 客运量(铁路+民航)滚12月合计/同比/环比 vs 沪深300(3 panel) | 文档 |
| freight_vs_hs300 | 货运量(铁路+水运)滚12月合计/同比/环比 vs 沪深300(3 panel) | 文档 |
| port_freight_vs_hs300 | 港口吞吐量(全国港口+外贸)滚12月合计/同比/环比 vs 沪深300(3 panel) | 文档 |
| trade_surplus_rolling_yoy | 进出口顺差滚12月合计及同比 vs 沪深300(双轴) | 文档 |
| industry_profit_ttm | 工业企业利润 TTM 环比变动 vs 沪深300(双轴) | 文档 |
| loans_m2_12m_flow_vs_hs300 | 各项贷款增量 − M2 增量(12月)vs 沪深300 | 文档 |
| m2_12m_increment | M1(老口径)/M2 货币12月新增额 vs 沪深300(双轴) | 文档 |
| pbc_total_assets_12m_increment | 央行总资产12月增量 vs 沪深300(双轴) | 文档 |
| shibor_vs_hs300 | SHIBOR 3M 银行间利率 vs 沪深300(双轴) | 文档 |
| overseas_rmb_assets_12m_increment | 外资持有境内股/债12月新增额 vs 沪深300 | 文档 |
| usd_cny_exchange_rate | 人民币兑美元汇率(月度中间价)vs 沪深300(双轴) | 文档 |
| margin_balance_change | 融资余额月度净增长 vs 沪深300(最近5年) | 文档 |
| margin_inflow_20d | 融资余额20日净流入 vs 沪深300(最近5年,日频) | 文档 |
| margin_balance_vs_hs300 | 全市场融资/融券余额 vs 沪深300(全部历史,三轴) | 文档 |
| turnover_concentration | A股日成交额集中度(5算法)vs 沪深300 | 文档 |
| index_turnover_river | 沪深300/中证500/中证1000/其他 成交额占比 river 图(streamgraph) | 文档 |
| new_float_market_cap | 剔除股价影响的月度流通市值变化(扩容/回报/净额)vs 沪深300(双轴) | 文档 |
| market_stock_count | 沪深两市每月新上市股票数 / 新增流通市值 vs 沪深300(三轴,月频,排除北交所,范围按沪深300) | 文档 |
| hs300_turnover_share | 沪深300 成交额占两市总成交额比例 vs 沪深300(双轴,日频) | 文档 |
| market_turnover_total | 沪深两市总成交额(日频)vs 沪深300(双轴,可 log) | 文档 |
| channel_entries_on_hs300 | 红利低波ETF通道买入点叠加在沪深300日线上 | 文档 |
| turnover_channel_breakout | 成交额通道重入信号(沪深300,log Bollinger + ZigZag 评估) | 文档 |
| turnover_minmax_channel | 成交额通道(120 日滚动 max/min)+ 收盘价(上下两栏,log 刻度看天量/枯竭) | 文档 |
| zigzag_annual_return | ZigZag 枢轴每年潜在最大收益与潜在最大损失(沪深300) | 文档 |
| zigzag_bull_bear_cycle | ZigZag 枢轴牛熊周期(沪深300,段数/涨跌/历时) | 文档 |
| multiscale_regime_segments | 多尺度牛熊分段金标准(大/中/小,熊市豁免合并,25% ZigZag) | 文档 |
| segment_daily_return_distribution | 大级别牛熊分段内 日收益率分布直方图网格(沪深300,4×3 面板 + 牛熊聚合对比) | 文档 |
| next_day_return_heatmap | 截止当日 N1 日 → 之后 N2 日 收益 2D 热力图(牛 vs 熊对比,log 色阶,象限占比 + 条件概率,窗口/步长可参数化) | 文档 |
| conditional_forward_return | 前 N1 日收益分桶 → 之后 N2 日收益条件分布(牛 vs 熊箱线图,均值偏移/厚尾/峰度,桶边界可参数化) | 文档 |
| sweep_conditional_tail | 跨 N1=1..10 × N2=1..3 扫描条件分布,筛厚尾+显著偏移模式(双向 box plot,分布卡片在 x 轴下方) | 文档 |
| annual_volatility | 沪深300 每年年化波动率 + 指数对照 | 文档 |
| drawdown | 历史回撤水下曲线 + 前复权价格(基金/指数/股票通用,支持 --start-date 重置峰值) | 文档 |
| drawdown_extremes_vs_hs300 | 任意标的回撤极值点(峰/谷竖虚线)叠加沪深300(双轴,标的可参数化) | 文档 |
| window_return_distribution | 任意标的 N 日窗口收益率分布直方图(默认 512890/20日/1%桶宽,标的/窗口/桶宽均可参数化) | 文档 |
| window_return_p1_episodes | N 日窗口 P 分位极端事件按月聚集分布(默认 5 大 A 股指数 × 5/10/20 日 × P1 左尾,标的/窗口/分位/方向均可参数化) | 文档 |
| boll_breakout_forward_return | Bollinger 通道突破事件 → 未来 M 日收益分布(2×3 直方图网格,含基线 alpha 对比,标的/窗口/k/持有期可参数化) | 文档 |
| boll_lower_breakout_grid | close 破下轨事件 × 当日破位深度/N 日位置 双维网格 → 未来 M 日极值收益分布(max/min 双热力图,每格 N/μ/M/[P1,P5,P95,P99]) | 文档 |
| fund_pair_compare | 两只标的前复权收盘价双轴 + N 日滚动相关系数柱状(标的/窗口/相关窗口均可参数化) | 文档 |
| ah_listing_runup | A+H 上市:港股上市日前 2/3 月买入 A 股 → 持有期内最高收益率分布(总分布 + 按 120 日通道位置分桶) | 文档 |
| ah_listing_bottom_runup | A+H 上市前 120 交易日 A 股底部 → 反弹最高点 形态分析(最低点位置、反弹幅度、反弹持续时间、上市日 vs 峰值,窗口可参数化) | 文档 |
| southbound_flow_rolling | 港股通南向资金 20/60 日滚动净流入 vs 恒生科技 ETF(513180) 双轴图(含贸易战/双减/924 等事件标注) | 文档 |
| southbound_etf_analysis | 港股通南向资金 vs 恒生科技 ETF(513180):累计净流入/60日分位 × forward 1/3/5/20 日收益相关性 + 滚动 corr + 分桶 | 文档 |
| southbound_etf_strategy | 南向 q60 阈值择时(≥0.9 买 / ≤0.1 卖)回测 513180 ETF:买卖点 + 净值曲线 + 绩效统计,阈值可参数化 | 文档 |
| northbound_holdings_qoq | 北向持股季度环比:价格 × 市值 4 象限分类(逆势/顺势 × 加仓/减仓 + 无显著),按净增减持金额(亿元)排序 TopN | 文档 |
quant/tags.py 提供最简单的「股票 × 日期」布尔标记。每个 tag 是纯函数:接收一只股票的完整 DataFrame,返回带新增 tag_* 列的 DataFrame。filter 层在 tag 之上做组合查询。
| Tag | 函数 | 判定 |
|---|---|---|
surge_3d |
tag_surge_3d(df, min_total_return=0.10) |
过去 3 个交易日(含当日)每日 close > prev_close,且 close / close[t-3] - 1 >= min_total_return |
volume_spike |
tag_volume_spike(df, ma_period=20, ratio=2.0) |
turnover >= ratio × turnover_ma{ma_period} |
limit_up |
tag_limit_up(df, ratio=0.099) |
close >= round(prev_close × (1 + ratio), 2) |
- 在
quant/tags.py写tag_xxx(df, ...) -> pl.DataFrame,函数内with_columns(... .alias("tag_xxx")) - 注册到
TAG_FUNCSdict(key 是简短名,value 是函数) - 注册到
TAG_REQUIRED_COLUMNS(声明该 tag 需要读哪些原始列,filter_by_tags会按需读列避免全表扫描)
| 项 | 内容 |
|---|---|
| 命令 | uv run python -m quant.cli filter-by-tags <date> <tag> [<tag> ...] [options] |
| 输入 | {input_dir}/{code}.parquet(默认 stock_quote_ta) |
| 输出 | 控制台表格 + 可选 CSV |
| 逻辑 | 每只股票读一次,应用所有 tag 函数,留下指定日期 tag_* 全为 True 的股票 |
参数:
| 参数 | 说明 | 默认值 |
|---|---|---|
| date | 指定日期(YYYY-MM-DD,位置参数) | 必填 |
| tags | Tag 名(AND 组合,可多个,位置参数) | 必填 |
| input_dir | 输入目录 | /mnt/dataset/stock_quote_ta |
| min_market_cap | 最小市值(单位:元) | 0(不过滤) |
| exclude_st | 是否排除 ST 股票 | True(用 --no-exclude-st 关闭) |
| output_csv | 导出 CSV 路径 | None(不导出) |
输出字段:
| 字段 | 含义 |
|---|---|
| code | 股票代码 |
| date | 指定日期 |
| close | 指定日期收盘价 |
| market_cap | 指定日期总市值 |
| tag_* | 每个命中 tag 的布尔列(全 True,列出来仅作记录) |
使用示例:
# 单 tag: 3 日连涨强势股
uv run python -m quant.cli filter-by-tags 2026-06-15 surge_3d --min-market-cap 20000000000
# 组合: 3 日连涨 且 当日涨停
uv run python -m quant.cli filter-by-tags 2026-06-15 surge_3d limit_up
# 组合: 涨停 且 放量
uv run python -m quant.cli filter-by-tags 2026-06-15 limit_up volume_spike --min-market-cap 10000000000
# 不过滤 ST
uv run python -m quant.cli filter-by-tags 2026-06-15 limit_up --no-exclude-st| 项 | 内容 |
|---|---|
| 命令 | uv run python -m quant.cli filter-limit-up-pullback <date> [options] |
| 输入 | {input_dir}/{code}.parquet(默认 stock_quote_ta) |
| 输出 | 控制台表格 + 可选 CSV |
| 逻辑 | 在 tag_limit_up 之上叠加时间窗口条件:近期涨停 + 回踩到涨停前价位 |
筛选条件:
- 非 ST 股票
- 指定日期
market_cap >= min_market_cap - 指定日期前
lookback_days个交易日内(窗口跨度 ≤max_calendar_span自然日,用于排除停牌)出现过tag_limit_up - 指定日期
close < (1 + pullback_tolerance) × 涨停日 prev_close
窗口内多次涨停取最近一次作为锚点。
参数:
| 参数 | 说明 | 默认值 |
|---|---|---|
| date | 指定日期(YYYY-MM-DD,位置参数) | 必填 |
| input_dir | 输入目录 | /mnt/dataset/stock_quote_ta |
| min_market_cap | 最小市值(单位:元) | 10000000000(100亿) |
| lookback_days | 回看交易日数 | 10 |
| max_calendar_span | 窗口最大自然日跨度 | 14 |
| pullback_tolerance | 相对涨停前价位的容忍度 | 0.01(1%) |
| output_csv | 导出 CSV 路径 | None(不导出) |
输出字段:
| 字段 | 含义 |
|---|---|
| code | 股票代码 |
| date | 指定日期 |
| close | 指定日期收盘价 |
| market_cap | 指定日期总市值 |
| zt_date | 锚点涨停日 |
| zt_prev_close | 涨停前一交易日收盘价 |
| pullback_pct | close / zt_prev_close - 1 |
使用示例:
# 默认参数
uv run python -m quant.cli filter-limit-up-pullback 2026-06-15
# 放宽到近 20 个交易日、市值 50 亿
uv run python -m quant.cli filter-limit-up-pullback 2026-06-15 --lookback-days 20 --min-market-cap 5000000000| 项 | 内容 |
|---|---|
| 命令 | uv run python -m quant.cli filter-volume-spike <input_dir> <output_csv> <min_market_cap> [options] |
| 输入 | {input_dir}/{code}.parquet(stock_quote_ta) |
| 输出 | 单个 CSV 文件,每行一条放量记录 |
| 逻辑 | 用 Polars 向量化筛选所有满足 turnover ≥ min_ratio × turnover_ma{ma_period} 的日期 |
参数:
| 参数 | 说明 | 默认值 |
|---|---|---|
| input_dir | 输入目录(stock_quote_ta) | 必填 |
| output_csv | 输出 CSV 文件路径 | 必填 |
| min_market_cap | 最小市值(单位:元) | 必填(200亿=20000000000) |
| min_ratio | 放量倍数(相对N日均线) | 2.0 |
| ma_period | 均线周期(基准) | 20 |
| min_date | 起始日期(含,YYYY-MM-DD) | None(全历史) |
CSV 字段:
| 字段 | 含义 |
|---|---|
| date | 触发放量的日期 |
| code | 股票代码 |
| market_cap | 当日总市值 |
| turnover | 当日成交额 |
| turnover_ma20 | 20日成交额均线(基准) |
| spike_ratio | 放量倍数(turnover / turnover_ma20) |
使用示例:
# 筛选市值200亿以上,2倍放量
uv run python -m quant.cli filter-volume-spike /mnt/dataset/stock_quote_ta /tmp/out.csv 20000000000
# 只要 2026 年的记录
uv run python -m quant.cli filter-volume-spike /mnt/dataset/stock_quote_ta /tmp/out.csv 20000000000 --min-date 2026-01-01
# 改用 60 日均线作基准,3 倍阈值
uv run python -m quant.cli filter-volume-spike /mnt/dataset/stock_quote_ta /tmp/out.csv 20000000000 --ma-period 60 --min-ratio 3.0性能: 单进程下全市场(6000+股票)扫描所有历史日期约耗时 30-60 秒。
每个交易日,比较有数据的指数过去 N 个交易日收益(默认 20 日),选最强者持有到下一日(T-1 信号决定 T 持仓)。候选池:CSI300(000300) / 中证500(000905) / 中证1000(000852) / 创业板50(399673) / 上证50(000016) / 科创50(000688)。
上市时间不同的指数按日动态加入比较池(full join 对齐),不截断整体回测:CSI300 自 2002 起单独可比,上证50 自 2004 加入,中证500 / 中证1000 自 2005 加入,创业板50 自 2014 加入,科创50 自 2020 加入。
换仓扣交易成本:每次买卖各扣 --cost-rate(默认万分之三 = 0.03%),换仓 = 卖 + 买 = 2 次,建仓 = 1 次,持有不变 = 0 次。年化(CAGR)按实际日历跨度计算,避免 交易日数 / 252 高估。
uv run python -m quant.cli daily-momentum-strategy \
--input-dir /mnt/dataset/index_quote_history \
--output-csv /mnt/dataset/strategy_daily_momentum.csv \
--output-png /mnt/dataset/strategy_daily_momentum.png \
--lookback-days 20 \
--cost-rate 0.0003参数:
--input-dir/--output-csv:必填(路径参数无默认值)--lookback-days:动量回看交易日数(默认 20)--cost-rate:单边交易成本(默认 0.0003 = 万分之三)
输出:
output_csv:每日明细(持仓指数、日收益、累计净值)output_png:策略与各指数 B&H 的 NAV 曲线(对数轴),策略曲线末端标注最终收益倍数
纯数学模拟,不计滑点、税费(成本仅按 --cost-rate 佣金估算)。
基于单一指数的双均线突破策略:快线上穿慢线时持仓,跌破时空仓。使用 T-1 日信号决定 T 日持仓,避免未来函数。
uv run python -m quant.cli ma-crossover-strategy \
--input-dir /mnt/dataset/index_quote_history \
--index-code 000300 \
--fast-window 5 \
--slow-window 60 \
--output-csv /mnt/dataset/strategy_ma_cross.csv \
--output-png /mnt/dataset/strategy_ma_cross.png参数:
--index-code:指数代码(默认 000300 = CSI300)--fast-window/--slow-window:快慢均线窗口(默认 5 / 60)
输出:
output_csv:每日明细(收盘价、快慢均线、持仓、收益、累计净值)output_png:策略与指数 B&H 的 NAV 曲线,绿色阴影为持仓区间
布林带下轨买入策略的可视化:close ≤ MA(window) − k·σ 触发买入,标注每个买入点的窗口内最大涨幅 / 前瞻收益 / 最大浮亏。窗口未满的最近买入点用截至最新的已知数据补全(空心三角标记)。详见 plots/channel_entry_signals.md。
uv run python plots/channel_entry_signals.py --code 512890 --window 120 --k 1.5 --fwd 60当全市场融资日净流入为正且超过过去 N 日均值 + k 倍标准差时买入标的指数,反之卖出平仓,持有到反向信号。窗口 N 与倍数 k 做网格搜索,按年化夏普找最优;标的可切换。详见 plots/margin_inflow_outlier_strategy.md。
uv run python plots/margin_inflow_outlier_strategy.py
# 换标的:--index-file /mnt/dataset/index_quote_history/000905.parquet
# 自定义网格:--windows 20,30,60 --k-values 2.0,3.0,4.0┌─────────────────────────────────────────────────────────────────┐
│ 只读原始数据 │
│ /mnt/readonly_dataset/finance_sina/stock_quote/ │
│ /mnt/readonly_dataset/finance_sina/index_quote/ │
│ /mnt/readonly_dataset/eastmoney/margin_trade/ │
│ /mnt/readonly_dataset/cninfo/fund_quote/ │
│ /mnt/readonly_dataset/exchange_sse/fund_shares/ │
│ /mnt/readonly_dataset/exchange_szse/fund_shares/ │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 股票数据流 │
├─────────────────────────────────────────────────────────────────┤
│ stock_quote_history ← finance_sina/stock_quote │
│ ↓ │
│ stock_quote_adjusted (前复权) │
│ └─→ stock_quote_ta (技术指标) │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ 融资融券数据流 │
├─────────────────────────────────────────────────────────────────┤
│ margin_trade_history ← eastmoney/margin_trade │
│ ↓ │
│ margin_trade_daily (每日净变化) │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ 基金数据流 │
├─────────────────────────────────────────────────────────────────┤
│ fund_shares_history ← exchange_sse/fund_shares │
│ + exchange_szse/fund_shares │
│ ↓ │
│ ├─→ fund_flow ←──────────────────────┐ │
│ │ │ │
│ fund_quote_history ← cninfo/fund_quote ───┘ │
│ ↓ │
│ fund_quote_adjusted (前复权) │
│ ├─→ fund_flow ← fund_shares_history │
│ ├─→ fund_hs300_correlation (沪深300关联基金滚动相关性) │
│ └─→ etf_universe (ETF 范围清单:宽基/行业/商品/债券/境外) │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ 央行宏观数据流 │
├─────────────────────────────────────────────────────────────────┤
│ gov_pbc/{year}/[子目录]/{表}.{htm,xls,xlsx} │
│ ↓ (xlsx > xls > htm 优先;htm 用 html.parser,xls/xlsx │
│ 用 calamine;月份列按位置推断避免 Excel 浮点截断) │
│ pbc/ money_supply (M0/M1/M2,2004+) │
│ social_financing_flow (社融增量,2012+) │
│ social_financing_stock(社融存量+增速,2015+) │
│ credit_funds (信贷收支,本外币+人民币,1999+) │
│ central_bank_balance_sheet (央行资产负债表,1999+) │
│ overseas_rmb_assets (境外持境内金融资产,2014+) │
│ exchange_rate (人民币兑美元汇率,1999+) │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ 统计局月度指标数据流 │
├─────────────────────────────────────────────────────────────────┤
│ gov_stats/{工业企业指标,进出口,社会消费品零售总额, │
│ 全国港口货物吞吐量,货运量,客运量}/{year}.{csv,xlsx} │
│ ↓ (月份列乱序/倒序,按列名 'YYYY年M月' 解析;指标×月份宽表转长表; │
│ 1-2 月合并缺口按当期[2月]是否已发布决定平摊/反推) │
│ gov_stat/ industry_profit (利润累计→当月差分,每年一文件) │
│ trade (进出口,千美元/%) │
│ retail_sales (消费品零售,亿元/%) │
│ port_freight (港口吞吐量,万吨,2019+) │
│ freight (货运量,万吨,2005+) │
│ passenger (客运量,万人,2005+) │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ 港交所互联互通数据流 │
├─────────────────────────────────────────────────────────────────┤
│ exchange_hkex/connect_top/{YYYY-MM-DD}.csv │
│ ↓ (每个文件顶部 4 行聚合:SSE/SZSE × North/South; │
│ 按 code 列名取南向两行;date 取自文件名; │
│ schema 跨年变化 2021/2022/2023+,按列名读不依赖顺序) │
│ exchange_hkex/ southbound_flow (港股通南向每日买卖净额,2021+) │
└─────────────────────────────────────────────────────────────────┘