-
Notifications
You must be signed in to change notification settings - Fork 55
Home
quant 是一个面向 A 股量化研究与策略验证 的低门槛、本地化基础设施项目,聚焦于从数据获取、存储管理、因子构建、因子评估到交易模拟的一体化研究流程,目标是提供一套结构清晰、便于扩展、适合个人研究与教学实践的量化开发底座。
本项目定位为量化研究基础框架(Quant Research Infrastructure),强调以下几个方面:
- 本地化研究环境:不依赖云端编译器平台,在本地完成数据管理与代码编写与运行
- 模块化设计:将数据提取、因子构建、因子分析、模拟交易等能力拆分为独立模块,便于维护与扩展
- 面向 A 股市场:当前主要围绕 A 股场景进行设计与实现
- 研究闭环完整:覆盖“数据准备 → 因子计算 → 因子检验 → 模拟交易”的核心链路
- 兼顾入门与进阶:既适合作为量化学习项目,也可作为后续策略研究的基础框架
当前项目已具备或明确体现出以下核心能力:
项目基于 Tushare 获取市场数据与基础信息,包括但不限于:
- 交易日历
- 指数成分股
- 日频行情数据
- 日频指标数据
- 财务数据
通过统一的数据获取逻辑,降低研究过程中的重复性工作。
项目使用 DuckDB 作为本地数据存储引擎,用于高效地进行文件读写,具备以下优势:
- 查询速度更快
- 更适合结构化数据管理
- 便于通过 SQL 统一读取与处理数据
- 降低多文件散落带来的维护成本
这一设计使项目更接近真正可持续演进的研究型工程,而不只是零散脚本集合。
项目包含独立的因子计算模块,可用于构建和处理量化研究中的常见因子逻辑。
目前已涉及定价因子与相关计算流程,具备进一步扩展自定义因子的良好基础。
项目提供因子分析能力,用于评估因子的有效性与稳定性,支持研究阶段常见的分析任务,例如:
- 因子分组表现观察
- 因子IC半衰期计算
- 回测曲线可视化
- 不同交易日多轨道回测
项目包含交易模拟模块,重点关注更接近真实环境的小资金交易场景,已体现出如下设计思路:
- 考虑手续费与交易滑点
- 股票池筛选与交易限制处理
- 持仓记录导出
- 评价因子地头部选股能力
这使得项目不仅停留在“因子能不能解释收益”的研究层面,也开始向“策略是否具备可交易属性”的验证阶段延伸。
本项目当前主要采用以下技术组件:
- Python 3.12+
- Pandas / NumPy:数据处理与数值计算
- Pathlib:路径管理
- DuckDB:本地数据库存储
- Tushare:A 股数据接口
- Joblib:并行计算
- Matplotlib:结果可视化
- tqdm:任务进度展示
当前仓库的核心代码主要位于 src/quant_infra,按职责可大致理解为以下模块:
-
const.py
项目常量定义,包括指数代码、频率映射、数据存储路径、更新周期等基础配置 -
db_utils.py
DuckDB 数据库工具模块,负责数据库初始化、SQL 读取与数据写入 -
get_data.py
数据获取模块,负责从 Tushare 拉取交易日、指数成分股、行情等数据 -
factor_calc.py
因子计算模块,用于构建和计算研究所需的基础定价因子及相关数据 -
factor_analyze.py
因子分析模块,用于评估因子效果并支持可视化展示 -
trade.py
交易模拟模块,用于在更接近真实约束的条件下验证策略与因子表现
本项目适用于以下场景:
- 量化投资方法地学习与实验
- A 股因子研究与选股验证
- 个人量化研究环境搭建
- 本地化回测框架原型开发
- 从零理解量化研究完整流程
如果你希望摆脱“平台黑箱”,真正理解量化研究每个环节如何落地,这个项目会是一个很好的起点。
本项目更强调研究基础设施而不是“开箱即用的高频策略库”。
因此,在使用上建议遵循以下原则:
-
先完成数据环境配置
包括 Python 环境、依赖安装、Tushare Token 配置等 -
先理解数据链路,再扩展策略
优先跑通数据获取、入库、读取与基本分析流程 -
先验证因子,再构建策略
避免直接进入交易逻辑开发,而忽视因子本身的统计有效性 -
先做小规模实验,再完善工程化能力
在确认研究逻辑可行后,再逐步补充日志、配置管理、参数管理与结果归档能力
相较于许多“只提供单个策略脚本”或“只演示几段回测代码”的项目,quant 的特点在于:
- 不是单点脚本,而是完整研究链路
- 不是纯 CSV 堆叠,而是引入 DuckDB 做本地数据管理
- 不是只做指标计算,也覆盖 分析与交易模拟
- 不只是教学示例,也具备进一步扩展为小资金量化交易工具的潜力
未来本项目可以继续沿以下方向演进:
- 扩展更多数据下载方式
- 提升异常处理与数据质量校验能力
- 增加更多风格因子、技术指标因子与基本面因子
- 完善组合构建逻辑
- 增加调仓规则与仓位管理机制
- 增加配置文件管理
- 优化目录结构与输出管理
- 补充示例文档、研究范式与最佳实践
- 提高项目可复用性与可维护性
本项目当前仍在持续迭代中。
欢迎将其作为你的个人量化研究底座,不断补充、重构和演进。