A High-performance And Standard Alpha Factor Mining System
Project description
Alpha Lab
专为因子研究员设计的数据处理与因子挖掘框架,提供交易日历、数据访问和因子分析的一体化工具。
安装
# 使用 uv 安装(推荐)
uv pip install alpha-lab
# 或使用 pip
pip install alpha-lab
快速开始
1. 读取数据
下面的数据读取示例假设本地数据源和 datacenter 相关配置已经就绪。
import polars as pl
import datacenter as dc
import xcals
# 获取交易日列表
trading_days = xcals.get_tradingdays("2023-01-01", "2023-01-31")
# 读取股票日线数据
df = dc.md.read_data_batch(
beg_date="2023-01-01",
end_date="2023-01-31",
instrument=dc.Instrument.STOCK,
datatype=dc.DataType.KLINE_DAY,
)
# 读取基础信息
stocks = dc.jy.asset(date="2023-01-01") # 可用股票
industry = dc.jy.industry(date="2023-01-01") # 行业分类
adj_factors = dc.jy.adj_factors(date="2023-01-01") # 复权因子
2. 计算因子
使用 Polars 简洁高效地计算因子:
# 计算 5 日收益率因子
factor_df = df.with_columns(
ret_5d=pl.col("close").pct_change(5)
).filter(
pl.col("volume") > 0 # 过滤停牌
)
# 更多因子示例
factor_df = df.with_columns(
ret_1d=pl.col("close").pct_change(1),
ret_5d=pl.col("close").pct_change(5),
ret_20d=pl.col("close").pct_change(20),
volume_ratio=pl.col("volume") / pl.col("volume").rolling_mean(20),
).filter(pl.col("volume") > 0)
3. 因子分析 (Rack + Polens)
使用 Rack 整合数据,Polens 进行专业因子分析:
from alphamaster.rack import Rack
from alphamaster.polens import FactorAnalyzer
# Rack: 加载行情数据并整合因子
rack = Rack()
rack.load_prices("2023-01-01", "2023-12-31") # 加载行情
rack.set_factor(factor_df) # 设置因子
# Polens: 因子分析
analyzer = FactorAnalyzer(rack.get_data(), group_col="industry")
analyzer.preprocess(periods=[1, 5, 10], quantiles=5)
analyzer.analyze()
# 获取统计指标
stats = analyzer.summary_stats()
print(stats)
# 绘制分析图表
analyzer.plot("ic_ts") # IC 时序图
analyzer.plot("quantile_cum") # 分层累积收益
analyzer.plot("stability") # 因子稳定性
提示: Rack 会自动缓存行情数据,更换因子时无需重新加载。
研究员入口
| 模块 | 说明 |
|---|---|
xcals |
交易日历工具 |
datacenter |
数据访问层,统一获取行情和基础信息 |
alphamaster |
因子研究工具,包括数据整合器 Rack 和因子分析模块 polens |
alpha-lab 还包含支撑数据存储、数据库访问和并发任务的内部基础设施模块。
这些模块随发行包一起交付,用于保证研究工具开箱可用,但通常不是研究员直接调用的入口。
许可证
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
alpha_lab-0.2.0.tar.gz
(193.8 kB
view details)
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
alpha_lab-0.2.0-py3-none-any.whl
(119.5 kB
view details)
File details
Details for the file alpha_lab-0.2.0.tar.gz.
File metadata
- Download URL: alpha_lab-0.2.0.tar.gz
- Upload date:
- Size: 193.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
70ad1aa158ea6496dc5fc844d6145566dd31beb5445fa7d35d3e19dd68e12431
|
|
| MD5 |
7a42069e1fa2515d025b8aba1051fa07
|
|
| BLAKE2b-256 |
a377d4679416d1e2ff08544549a958d005de35774bdde9a3cc5a89a21f919c5d
|
File details
Details for the file alpha_lab-0.2.0-py3-none-any.whl.
File metadata
- Download URL: alpha_lab-0.2.0-py3-none-any.whl
- Upload date:
- Size: 119.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
724297f109f864d325c2ee9049147e81084ffe9ffb828c03ba5f7cc5207a2d8f
|
|
| MD5 |
fec9c7e81398b25e0a51beca39615cf3
|
|
| BLAKE2b-256 |
d0f76aecf3e420b2c50f7d69b945cdbcdfcbd43ea0560060e1b67ca3630f223b
|