aznikline
alpha-mining-system
Python

Alpha 因子挖掘系统 v3.0 — 模块化自动化因子挖掘平台 (表达式/遗传编程/深度学习三模式, A股+美股, CLI+Streamlit+Notebook)

Last updated Aug 5, 2026
11
Stars
0
Forks
0
Issues
+1
Stars/day
Attention Score
38
Language breakdown
Python 96.2%
Jupyter Notebook 3.8%
Files click to expand
README

Alpha 因子挖掘系统

License: MIT Python 3.8+ Stars English

A modular, extensible automated Alpha factor mining platform for A-share and US equity markets, inspired by WorldQuant / BigQuant.

一个模块化、可扩展的自动化 Alpha 因子挖掘平台,参考 WorldQuant / BigQuant 架构设计。支持手动表达式、遗传编程、深度学习三种因子生成模式,覆盖数据加载 → 因子计算 → 有效性评估 → 可视化报告的完整研究工作流。

24 个算子 · 3 种因子生成模式 · A 股 + 美股双市场 · CLI + Streamlit + Notebook 三入口

30 秒上手

from alphamining import initdata, quick_evaluate

一行加载数据(A 股 / 美股自动路由 + 标准化 + 衍生特征)

data = initdata(market='ashare', start='2019-01-01', end='2024-12-31')

一行评估因子:表达式 → IC/分层回测/多空绩效/图表

result = quickevaluate("rank(tsmean(close,20)/close)", data, n_groups=5)
flowchart LR
    subgraph Data["📊 数据层"]
        AK[Akshare A股]
        TS[Tushare]
        BS[Baostock]
        YF[YFinance 美股]
    end
    subgraph Engine["🔧 因子引擎"]
        EX["表达式<br/>(WorldQuant 语法)"]
        GP["遗传编程<br/>(gplearn)"]
        DA["DeepAlpha<br/>(DNN/LSTM)"]
    end
    subgraph Eval["📈 评估"]
        IC[IC/IC_IR]
        BG[分层回测]
        LS[多空绩效]
    end
    subgraph Viz["🎨 可视化"]
        P1[IC 时序]
        P2[净值曲线]
        P3[分组收益]
        P4[月度热力图]
    end
    Data --> Engine --> Eval --> Viz
    style Engine fill:#1a1f2e,color:#7dd3fc
    style Data fill:#14171d,color:#e6e9ef
    style Eval fill:#14171d,color:#e6e9ef
    style Viz fill:#14171d,color:#e6e9ef

核心特性

📊 数据层

  • 多数据源支持:Akshare(免费A股)、Tushare(专业数据)、Baostock(稳定数据)、YFinance(美股)
  • 自动降级机制:首选数据源失败时自动尝试备选
  • 多市场支持:A股(a_share)、美股(us)自动路由
  • Parquet 本地缓存:重复使用无需重复下载
  • 数据标准化:统一字段命名、格式、复权处理

🔧 因子引擎

  • 三种因子生成模式
- 手动表达式:类 WorldQuant 表达式语法 - 遗传编程:gplearn 自动进化有效因子 - DeepAlpha:DNN/LSTM 深度学习隐式因子
  • 24 个内置算子
- 截面算子:rank, zscore, demean, scale - 时序算子:tsmean, tsstd, tsdelta, tscorr, tsskew, tskurt, residual - 数学算子:abs, sign, log, power, sqrt, add, sub, mul, div - 条件算子:if_else

📈 因子评估

  • IC 分析:Pearson / Spearman 双指标
  • IC_IR 稳定性:IC 均值/标准差
  • 5-10 分组回测:分层年化收益对比
  • 多空组合绩效:年化收益、夏普、最大回撤、卡玛比率
  • 换手率分析:因子稳定性评估
  • 训练/测试集严格切分:避免过拟合
  • 行业市值中性化:可选

🎨 可视化输出

  • IC 时间序列图(±2σ 通道)
  • 多空净值曲线图
  • 分组累计收益对比图
  • 月度 IC 热力图
  • 因子整体对比汇总图

快速开始

安装依赖

pip install -r requirements.txt

可选模式按需安装:

pip install gplearn      # 遗传编程模式
pip install torch         # DeepAlpha 深度学习模式
pip install streamlit     # Web 界面

命令行运行(v3.0 标准包入口)

# 查看系统信息与可用模式
python -m alpha_mining info

用默认 config.yaml 运行

python -m alpha_mining run

直接传入因子表达式(覆盖配置)

python -m alphamining run -e "rank(tsmean(close,20)/close)" "-rank(tsstd(return1d,20))"

指定市场 / 生成模式

python -m alpha_mining run --market us --mode expression

不生成图表

python -m alpha_mining run --no-plots

指定配置文件

python -m alphamining run -c myconfig.yaml

Streamlit Web 界面

streamlit run app.py

Notebook 优先工作流

推荐在 Notebook 中使用 v3.0 高级 API,一行代码完成加载 / 评估:

from alphamining import initdata, quickevaluate, comparefactors

一行加载数据(含标准化 + 衍生特征)

data = initdata(market='ashare', start='2019-01-01', end='2024-12-31')

一行评估单个因子

result = quickevaluate("rank(tsmean(close,20)/close)", data, n_groups=5)

对比多个因子

comparefactors(["rank(tsdelta(close,5))", "-rank(tsstd(return1d,20))"], data)

完整示例见 notebooks/01_quickstart.ipynb

配置文件说明

完整配置见 config.yaml,主要分段:

market: ashare            # ashare (A股) / us (美股)

data: preferred_source: null # null = 按市场自动选择;或指定 akshare/tushare/baostock/yfinance fallback_sources: [tushare, baostock] # 失败时自动降级 start_date: "2019-01-01" end_date: "2024-12-31" symbols: all # all = 全市场;或 ["000001.SZ", "000002.SZ"]

factor_generation: mode: expression # expression / gplearn / deep_alpha expressions: # 模式 1 - "rank(ts_mean(close,20)/close)" - "-rank(tsstd(return1d,20))" gp: # 模式 2 population_size: 200 generations: 20 top_n: 5 deep_alpha: # 模式 3 model_type: dnn # dnn / lstm / transformer hidden_layers: [128, 64, 32] numoutputfactors: 10

evaluation: n_groups: 5 train_ratio: 0.8 neutralize: false # 行业市值中性化

filter: # 因子筛选阈值 mintrainicir: 0.5 mintestic_mean: 0.02 minlssharpe_train: 1.0


因子表达式参考

| 表达式 | 因子含义 | 预期 IC 方向 | |--------|----------|------------| | rank(ts_mean(close,20)/close) | 价格偏离均线程度 | 负 | | ts_delta(close,5) | 5 日动量 | 正/负 | | -rank(tsstd(return1d,20)) | 波动率反转 | 正 | | ts_zscore(volume,10)*-1 | 成交量异常 | 正 | | rank(closevwapdiff) | 价格与成交均价差 | 负 | | tsskew(return1d,20) | 收益率偏度 | 负 | | residual(close, log_volume, 20) | 成交量解释后的残差收益 | 正 |


项目结构

alpha-mining-system/
├── alpha_mining/                # v3.0 标准包
│   ├── init.py             # 包入口,导出高级 API
│   ├── main.py             # python -m alpha_mining 入口
│   ├── cli.py                  # 命令行接口 (run / info)
│   ├── api.py                  # Notebook 高级 API
│   ├── data_hub.py             # 统一数据抽象层(多市场)
│   ├── factor_engine.py        # 因子计算引擎
│   ├── evaluator.py            # 因子评估器(中性化增强)
│   ├── visualizer.py           # 结果可视化模块
│   ├── operators.py            # 24 个算子库
│   ├── utils.py                # 工具函数
│   └── data_adapters/          # 数据源适配器(市场感知)
│       ├── base_adapter.py
│       ├── akshare_adapter.py
│       ├── tushare_adapter.py
│       ├── baostock_adapter.py
│       └── yfinance_adapter.py
├── notebooks/
│   └── 01_quickstart.ipynb     # Notebook 优先工作流示例
├── api/
│   └── index.py                # Vercel Serverless Function 入口
├── app.py                      # Streamlit Web 界面
├── config.yaml                 # 默认配置
├── requirements.txt
├── vercel.json
├── LICENSE
└── README.md

运行时自动生成:datacache/(行情缓存)、factorcache/(因子缓存)、results/(输出报告与图表),均已在 .gitignore 中排除。


v3.0 升级要点

相对 v2.1 的主要变化:

  • 标准 Python 包结构 — 从顶层脚本改为 alphamining/ 包,入口统一为 python -m alphamining
  • Notebook 优先工作流 — 新增高级 API(initdata / quickevaluate / compare_factors),一行代码完成加载与评估。
  • 命令行接口 (CLI)run / info 子命令,支持 -e 传入表达式、--market / --mode 覆盖配置,便于批量与自动化回测。
  • Streamlit Web 界面streamlit run app.py 提供交互式因子探索。
  • Serverless APIapi/index.py 提供轻量 HTTP 接口。
  • 因子元信息系统FactorResult 统一包装,携带 name / category / source / expression / dataversion / generatedat 等完整溯源信息。
  • 高阶算子tsskew / tskurt / residual
  • 多市场架构market 参数路由 A 股 / 美股,适配器自动按市场过滤数据源。

有效因子筛选标准

| 指标 | 最低阈值 | 优秀阈值 | |------|----------|----------| | 训练集 RankIC_IR | > 0.3 | > 0.5 | | 测试集 RankIC 均值 | > 0.01 | > 0.03 | | 多空夏普(训练) | > 0.5 | > 1.0 | | 方向一致性 | 训练/测试同号 | - | | 日换手率 | < 0.3 | < 0.15 |


部署与集成

  • GitHub: https://github.com/aznikline/alpha-mining-system
  • Vercel Serverless:API 模式支持(见 vercel.json / api/index.py
  • 本地 Docker:docker run -v $(pwd)/config.yaml:/app/config.yaml ...

相关项目

本仓是量化系列的一部分,配套项目分工:

  • alpha — OpenAlpha factor discovery → qmt 执行层的 integration bridge。alpha-mining-system 负责挖掘因子(遗传编程 / DeepAlpha),alpha 负责桥接到执行框架(SignalAlphaFactor adapter,含 116 个测试 + Protocol fallback 可独立运行)。
  • qmt / ptrade — 作者维护的量化执行层(私有)。alpha 的 bridge 以它们为 integration target;不公开以隔离交易逻辑。

License

MIT License © 2026 aznikline

🔗 More in this category

© 2026 GitRepoTrend · aznikline/alpha-mining-system · Updated daily from GitHub