GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - zer0quant/zer0factor: 面向 A 股本地数据的 AI 因子研究工作台:因子生成、存储、注册、评估与报告。

BranchesTags
Open more actions menu

Latest commit

 

History

267 Commits
267 Commits

Folders and files

NameName
Last commit message
Last commit date
.claude
.claude
 
 
.vscode
.vscode
 
 
config
config
 
 
docs
docs
 
 
logs
logs
 
 
notebooks
notebooks
 
 
tests
tests
 
 
web
web
 
 
workspaces/factor-research-guosen-momentum
workspaces/factor-research-guosen-momentum
 
 
zer0factor
zer0factor
 
 
.gitignore
.gitignore
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
LICENSE
LICENSE
 
 
README.en.md
README.en.md
 
 
README.md
README.md
 
 
main.py
main.py
 
 
pyproject.toml
pyproject.toml
 
 
uv.lock
uv.lock
 
 

Repository files navigation

zer0factor

Python Status License

简体中文 | English

面向 A 股本地数据的因子研究工作台:把研报和因子想法变成标准因子代码,再完成计算、预处理、评估,最后在网页上查看结果。

研报 / 想法 -> FactorSpec -> compute() -> Parquet 因子值 -> 评估 -> Web 工作台

数据来自配套项目 zer0share,它负责 A 股数据的同步和查询。

项目还在早期阶段,适合作为研究工作台使用,还不是成熟的生产平台。

因子主页:版本表格与各周期多头超额曲线

能做什么

  • 标准因子接口:FactorSpec + FactorFrame + compute(),输出统一为 trade_date, ts_code, value
  • 存储:Parquet 按日期分区,DuckDB 作为注册表
  • 预处理:截面去极值、标准化,以及行业 / 市值中性化
  • 评估:IC、分组收益、换手、单调性、组合绩效
  • Web 工作台:看板、因子主页、对比、因子族、后台任务
  • factor-research skill:从研报中提取因子、审核、生成代码并归档

安装

需要 Python 3.11+、uv,以及用 zer0share 同步好的本地数据。默认 zer0share 和本项目放在同级目录,位置不同的话,修改 pyproject.toml 的 [tool.uv.sources]。

git clone https://github.com/zer0quant/zer0factor.git
cd zer0factor
uv sync
cp config/settings.example.toml config/settings.toml   # 按需修改数据目录和日期区间

快速开始

uv run python main.py compute-market-cap                  # 计算内置市值因子
uv run python main.py evaluate-factor log_total_market_cap
uv run python main.py show-summary                        # 查看评估结果

评估结果写在 data/evaluations/<run_id>/,指标口径见 docs/evaluation.md。

更新到最新数据

先在 zer0share 目录下同步行情并续建股票池(股票池不会随行情自动更新):

uv run python main.py sync --stock
uv run python main.py build-universe

再回到本项目,一条命令完成日更(适合放进定时任务):

uv run python main.py update-daily --notify             # 每个交易日:截止日检查 → 增量构建 → 增量评估 → 飞书摘要
uv run python main.py update-daily --full-eval --notify # 每月一次:评估改为全量对账
  • 目标截止日取行情和股票池中较早的一个;股票池落后时照常更新到股票池的截止日,并发飞书提醒。
  • 任一步失败即停止,退出码为 1。--dry-run 只列出计划,--skip-eval 只构建不评估。
  • 也可以分步执行 check-freshness、compute-returns --incremental、build-factors --incremental、evaluate-factors --incremental,用法和增量评估与全量的差别见 docs/incremental-update.md。

Web 工作台

cd web && npm install && npm run build && cd ..   # 首次使用:构建前端(需要 Node 18+)
uv run python main.py serve                       # 打开 http://127.0.0.1:8600

看板、因子主页的数字都来自 [web.standard] 定义的统一口径、并且评估到最新的那一次评估。页面说明、配置项和后台任务的用法见 docs/web-workbench.md。

因子看板:一行一个原始因子,指标取主版本各周期的中位数。

因子看板

版本详情:核心指标、分组累计收益、分层收益、Rank IC 序列与衰减。

版本详情

因子对比:指标并排比较,多头累计收益曲线叠加(可切换多头超额)。

因子对比

常用命令

所有命令都通过 uv run python main.py <命令> 执行,加 --help 查看完整参数。

分类 命令
查看 status、factor-list、factor-info <name>、families
日更 update-daily、check-freshness
计算 compute-returns、compute-market-cap、build-factors --family <name>(均支持 --incremental)
预处理 standardize-factor <name>、neutralize-factor <name>
评估 evaluate-factor <name>、evaluate-factors <name...>(支持 --incremental)、evaluate-batch --file <file>
结果 show-summary、evaluate-summary、analyze-evaluation
工作台 serve、web-warm --run <run_id>

写一个因子

class Ret20(Factor):
    spec = FactorSpec(name="ret20", inputs=["close"], min_window=20, frequency="1d", adjust="hfq")

    def compute(self, data: FactorFrame) -> pd.DataFrame:
        return to_factor_output(data.close / data.close.shift(20) - 1, self.spec.name)

因子代码只访问 FactorFrame,不要自己读文件、查 DuckDB 或调用 zer0share。字段契约见 docs/factor-contract.md。

文档

  • 因子契约:字段、输出格式、存储布局
  • 因子评估:注册表、评估命令、产物和指标口径
  • Web 工作台:页面说明、统一口径、后台任务、因子族
  • 增量更新:日更命令、增量构建与增量评估
  • factor-research skill:从研报到因子的完整流程
  • TODO · 开发笔记 · 贡献指南

当前限制

  • 只支持本地 A 股数据和 zer0share。
  • FactorFrame 还没有提供 ST、停牌、上市天数、精确涨停等字段。
  • 使用 qfq 价格的因子族不支持增量构建;增量评估只支持单一持有期。
  • API 还在实验阶段。

交流

  • 知乎:我用 Codex,把"投资研报到股票因子"的流程做成了一个 Skill / 我用 Codex + Alphalens,搭了一套适配 A 股的因子评估流水线
  • 微信公众号「极客投研笔记」

免责声明

本项目只用于研究和工程实验,不构成任何投资建议。

License

MIT,详见 LICENSE。

About

面向 A 股本地数据的 AI 因子研究工作台:因子生成、存储、注册、评估与报告。

Topics

a-sharealpha-researchalphalenschina-stock-marketduckdbfactor-backtestingfactor-evaluationlocal-datapyfolioquantitative-finance

Resources

Readme
MIT license

Contributing

Contributing
Activity
Custom properties

Stars

94 stars

Watchers

2 watching

Forks

15 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.