跳转至

量化金融研究课程

面向零基础同学的量化金融学习路径,涵盖金融概念、算法原理、Python 实现与历史数据回测,并配套练习、研究规范和可复现性检查。

教学定位:本仓库用于量化金融教学、策略研究和历史数据实验,不提供实盘交易系统,也不保证示例策略具有未来盈利能力。不提供券商、交易所或账户接口;不处理实时行情和订单生命周期;不提供生产级风控、容灾和监控。示例收益不构成投资建议;考虑手续费和滑点不等于可以用于实盘。


学习路线图

模块0:环境配置
模块1:金融基础概念(数学基础、价格收益、风险、市场、概率模拟、GARCH、统计、时序分析、现值、AR过程)
模块2:数据获取与处理(数据源、数据清洗、特征工程)
模块3:技术指标与信号(趋势、动量、波动率、股票池选股、协整与相关性)
模块4:策略回测框架(策略思维、简单回测、backtrader、绩效评估)
模块5:投资组合优化(Markowitz、风险平价)
模块6:机器学习与量化(特征筛选、预测建模)
后续进阶模块:基本面量化(07)、期货与大宗商品(08)、高频交易(09)、数学方法(10)

项目结构

quant-trade-tutorial/
├── README.md                     # 本文件
├── environment-cpu.yml           # 默认 CPU 课程环境
├── environment-gpu.yml           # 可选 NVIDIA GPU 环境
├── docs/                         # 网站和课程内容
│   ├── 00_setup/                 # 模块0:环境配置
│   ├── 01_financial_concepts/    # 模块1:金融基础
│   ├── ...
│   ├── 10_math_methods/          # 模块10:数学方法
│   ├── datasets/                 # 固定教学数据
│   ├── exercises/                # 独立习题 Notebook
│   ├── solutions/                # 独立参考答案 Notebook
│   ├── projects/                 # 模块项目与 Capstone
│   └── utils/                    # 共享工具函数
├── scripts/                      # 检查、执行和课程生成脚本
└── tests/                        # 工具函数测试

快速开始

conda(推荐)

conda env create -f environment-cpu.yml
conda activate quant-cpu
jupyter notebook

需要运行 GPU 章节时,改用 environment-gpu.yml 并激活 quant-gpu。常规课程不要求 CUDA。

验证环境

python docs/00_setup/check_env.py

各模块内容概览

模块 主题 核心内容
00 环境配置 Conda 安装、包管理、Jupyter 使用
01 金融基础 收益率、波动率、GARCH、概率模拟、统计基础、时序分析、现值估值
02 数据处理 常见数据源下载、数据清洗、收益率特征工程
03 技术指标 趋势/动量/波动率指标、Universe 选股过滤、协整配对检验
04 策略回测 策略思维来源、手写回测框架、backtrader 框架应用
05 组合优化 Markowitz 均值方差优化
06 机器学习 因子库特征选择与降维
07 基本面量化 财务报表、价值因子、质量因子挖掘
08 期货策略 期货基础、商品动量、期限结构
09 高频交易 订单簿底层逻辑、做市商模型基础
10 数学方法 蒙特卡洛、线性规划、马尔可夫链

主要依赖

类别
数据处理 numpy, pandas
可视化 matplotlib, seaborn
科学计算 scipy
机器学习 scikit-learn, xgboost
深度学习 pytorch;GPU 环境使用 CUDA 12.1
时序/统计 statsmodels, arch (GARCH)
数据获取 yfinance, akshare, adata
回测框架 backtrader
开发工具 jupyter, notebook

学习建议

  1. 按顺序学习 — 模块之间有强依赖关系,每一个 notebook 的文末都指明了下一步。
  2. 动手运行代码 — 每个 notebook 都有可交互的示例与 练习
  3. 修改参数 — 改变参数观察结果变化,加深理解。
  4. 做笔记 — 在 notebook 中记录自己的思考。

参考资源