{"repo":"Parsnip77/Multi-factor-Model-for-Stock-Selection","free":true,"listed":false,"github":"https://github.com/Parsnip77/Multi-factor-Model-for-Stock-Selection","clone":"git clone https://github.com/Parsnip77/Multi-factor-Model-for-Stock-Selection.git","description":"用 Python 实现A股历史日线数据获取与清洗，复现 WorldQuant Alpha101 经典因子，实现因子评估、合成、回测全流程 Pipeline","language":"Python","stars":12,"topics":["backtesting-trading-strategies","multi-factor-model","quantitative-finance","stock-price-prediction"],"license":null,"category":"trading","readme_excerpt":"本文档用简明语言说明本仓库中 所有文件与代码的用途、使用方式 ，并展示项目架构。 一、项目概述 本项目是一个 多因子选股模型 的量化交易示例，使用 Python 实现从数据获取、因子构建到回测的完整流程。 第一阶段：数据层（ETL）+ 因子计算 + 因子预处理 第一阶段用 Tushare Pro 拉取沪深300成分股的日线行情与基本面指标，写入本地 SQLite 数据库；在此基础上复现《101 Formulaic Alphas》中的经典因子；再通过预处理模块对原始因子执行去极值、标准化、中性化，最终由 data preparation main.py 串联全流程，将四张核对齐的宽表导出为 Parquet 文件。 第二阶段：因子评估层 + 分层回测 + 线性回归合成因子 第二阶段对每个因子进行 IC 评估，计算其信息系数均值和信息比率，绘制 IC 时间序列图和数值累计图，并据此进行有效因子筛选。针对每个单因子进行分层回测，绘制 G1 ～ G5 分组收益曲线及 G5-G1 多空收益曲线，给出累计收益率、年化收益率、年化波动率、夏普比率、最大回撤五个指标。最后，使用滚动窗口线性回归的方式尝试对多因子进行简单线性合成，给出合成因子的 IC 分析和回测数据。总脚本由 analyze main.py 执行，报告写入 result.txt 。 第三阶段：ML 合成因子层 + 分层回测 第三阶段接入 LightGBM，以 15 个 alpha 为特征，24 个月训练 + 6 个月验证 + 6 个月测试进行滚动时间切分，训练合成一个 ML Alpha，并调用分层回测模块。最终给出回测指标数据报告、特征重要性参考和 SHAP 分析 beeswarm 图。总脚本由 ml analyze main.py 执行，报告写入 result ml.txt 。 ---- 项目成果简要展示： 1. 第二阶段合成因子IC分析图和分层回测收益曲线（详细数据指标见 result.txt） 2. 第三阶段合成因子IC分析图、分层回测收益曲线和 SHAP beeswarm 图（详细数据指标见 result ml.txt） --- 二、项目架构 文件/目录 用途 ----------- ------ data/ 存放 SQLite 数据库文件（不上传至 git） src/config.py 全局参数配置，包含 Tushare Token（不上传至 git） src/data loader.py DataEngine 类：数据下载、缓存、读取 src/alphas.py Alpha101 类：复现《101 Formulaic Alphas》中的 15 个因子 src/preprocessor.py FactorCleaner 类：对原始因子执行去极值、标准化、中性化 src/targets.py calc forward return(prices df, d) ：计算 d 日未来收益率标签 src/ic analyzer.py calc ic / calc ic metrics / plot ic ：截面 Spearman IC 评估 src/backtester.py LayeredBacktester ：分层回测，含绩效指标计算与累计净值绘图 src/factor combiner.py symmetric orthogonalize （Löwdin 正交化）+ rolling linear combine （含正交化开关的滚动 OLS 合成因子） src/ml data prep.py ","default_branch":null,"files":null,"tree":[],"storefront":"/r/Parsnip77","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Parsnip77/Multi-factor-Model-for-Stock-Selection/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}