量化交易中文教材

配套代码

这里是从全书各章抽出的全部 Python 代码,共 578 段,按「册 / 章 / 段」存放:

配套代码/第06册_金融时间序列/03a_ARCH与GARCH波动率模型/02.py
          └ 册                 └ 章(与正文文件同名)     └ 本章第 2 段代码

每个文件第一行注明它来自哪一章的第几段,便于和正文对照。正文中代码后贴的「关键输出」就是这些文件的运行结果。

环境

python3 -m venv ~/quant-env
source ~/quant-env/bin/activate
pip install numpy pandas scipy statsmodels scikit-learn arch matplotlib

全部代码只使用模拟数据,不需要联网,也不需要 cvxpy、PyTorch 等额外的包。

运行

大多数文件可以在所在目录直接运行:

cd 配套代码/第08册_期权期货与衍生品/15b_BSM定价公式隐含波动率与股息
python 01.py

有依赖的代码

  • 章内续写段:有些代码段沿用本章前面代码段定义的变量或函数,正文里会写「接上段」「在同一会话中运行」。这类文件已经把它依赖的前面各段原样包含在文件开头,开头注释写着「本段依赖本章前面代码段」,可以单独运行,但会重复输出前面各段的结果。
  • 模块文件:以下文件被其他章节以模块形式导入,运行依赖它们的代码时,要把它们所在目录加入 PYTHONPATH,或者把模块复制到同一目录:
模块 位置 被谁导入
lob.py(价格–时间优先订单簿) 第07册 / 04a_订单基础市价单与限价单 第 07 册 04a、04b、05 章
c6_engine.py(集合竞价与连续竞价撮合引擎) 第07册 / 06_指令驱动市场与撮合规则 第 07 册 06 章
c09_sim.py(因子收益模拟器) 第06册 / 09_主成分分析与因子模型 第 06 册 09 章
simplex.py(两阶段单纯形法) 第09册 / 29_线性规划 第 09 册 29 章

例如运行第 07 册第 05 章的代码:

export PYTHONPATH="$(pwd)/配套代码/第07册_市场微观结构与交易/04a_订单基础市价单与限价单"
cd 配套代码/第07册_市场微观结构与交易/05_市场结构
python 01.py

运行时间

绝大多数文件几秒内结束。较慢的有第 11 册第 10 章(机器学习,全章约 6 分钟)、第 06 册第 12 章(MCMC)和第 08 册的蒙特卡洛章节,每段约一到数分钟。少数代码会打印计时,计时数字随机器不同而不同。

验证情况

578 段代码已全部在 Python 3(numpy、pandas、scipy、statsmodels、scikit-learn、arch)环境下实际运行通过。CLRS 风格的伪代码在正文中标为 text,没有抽到这里。