第3章:Python量化环境搭建
量化交易的第一步是什么?不是写策略,不是找数据。
是搭环境。
我见过太多人,一上来就 pip install 这个那个,结果版本冲突、依赖报错,折腾半天还没开始写代码。说实话,这很打击信心。所以这一章,咱们把环境彻底搞定。
3.1 为什么选Anaconda?
Python的包管理,说白了就是一场噩梦。你装了一个库,它依赖A版本;另一个库,它依赖B版本。两个版本不兼容,你就等着哭吧。
Anaconda 就是来解决这个问题的。它自带 Python 解释器,还带了一个叫 conda 的包管理器。conda 比 pip 强在哪?它能帮你处理依赖冲突。我个人的习惯是:每个项目建一个独立环境,互不干扰。
核心优势:
- 自带 1500+ 科学计算包,省去手动安装的麻烦
- 环境隔离,不同项目用不同 Python 版本
- conda 比 pip 更擅长处理二进制依赖(比如 NumPy 底层调用的 C 库)
3.2 安装Anaconda
去官网下载对应系统的安装包。我建议选 Python 3.9 或 3.10 版本,太新的版本有些量化库还没适配。
安装时注意两点:
- 勾选「Add Anaconda to my PATH environment variable」—— 虽然安装程序会警告,但加上更方便
- 安装路径不要有中文和空格
装完后,打开终端(Windows 用 Anaconda Prompt),输入:
conda --version
如果看到版本号,说明安装成功。嗯,这一步一般不会出问题。
3.3 创建量化专用环境
我个人习惯给每个项目建独立环境。比如这个套利系统,我专门建一个叫 quant 的环境:
conda create -n quant python=3.9
激活环境:
conda activate quant
你会看到命令行前面多了 (quant) 字样。这说明你现在在 quant 环境里操作了。
小技巧: 我经常用 conda info --envs 查看所有环境。如果某个环境搞坏了,直接 conda remove -n quant --all 删掉重建,比手动修复快得多。
3.4 安装核心量化库
接下来装四个最常用的库。我按顺序来:
conda install numpy
conda install pandas
conda install matplotlib
conda install scipy
为什么用 conda 而不是 pip?因为 conda 会自动帮你解决依赖。比如 NumPy 依赖 BLAS 和 LAPACK 这些底层数学库,conda 会一并装好。用 pip 的话,你可能要手动装这些,很烦。
装完后验证一下:
python -c "import numpy; print(numpy.__version__)"
python -c "import pandas; print(pandas.__version__)"
python -c "import matplotlib; print(matplotlib.__version__)"
python -c "import scipy; print(scipy.__version__)"
如果都没报错,说明环境搭好了。
避坑指南: 我曾经遇到过 pandas 和 numpy 版本不兼容,导致 DataFrame 操作报错。后来我养成了一个习惯:装完库后,先跑一个简单的测试脚本,确认所有库能正常协同工作。
3.5 Jupyter Notebook配置
Jupyter Notebook 是量化分析的神器。你可以边写代码边看结果,还能加注释、画图,非常适合探索性分析。
安装:
conda install jupyter
配置:
jupyter notebook --generate-config
这会生成一个配置文件,在 ~/.jupyter/jupyter_notebook_config.py。我一般会改几个地方:
c.NotebookApp.ip = '0.0.0.0'—— 允许远程访问c.NotebookApp.port = 8888—— 固定端口c.NotebookApp.open_browser = False—— 不自动打开浏览器
启动:
jupyter notebook
然后在浏览器打开 http://localhost:8888,就能看到界面了。
个人经验: 我习惯在 Jupyter 里先写一个「环境检查」的 cell,把上面四个库的版本都打印出来。这样每次启动新项目时,一眼就能确认环境没问题。
3.6 环境验证实战
我们来写一个完整的验证脚本。新建一个 Notebook,输入以下代码:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import scipy.stats as stats
# 生成随机数据
data = np.random.randn(1000)
# 计算统计量
mean = np.mean(data)
std = np.std(data)
skew = stats.skew(data)
kurt = stats.kurtosis(data)
print(f"均值: {mean:.4f}")
print(f"标准差: {std:.4f}")
print(f"偏度: {skew:.4f}")
print(f"峰度: {kurt:.4f}")
# 画图
plt.figure(figsize=(10, 6))
plt.hist(data, bins=30, alpha=0.7, label='随机数据')
plt.axvline(mean, color='r', linestyle='--', label=f'均值={mean:.2f}')
plt.title('环境验证:正态分布随机数')
plt.legend()
plt.show()
如果一切正常,你会看到一个漂亮的直方图,上面标着均值线。这说明你的量化环境已经可以正常工作了。
验证清单:
| 库名 | 版本要求 | 验证方法 |
|---|---|---|
| NumPy | ≥1.21.0 | np.array([1,2,3]) 能正常创建 |
| Pandas | ≥1.3.0 | pd.DataFrame() 能正常创建 |
| Matplotlib | ≥3.4.0 | plt.plot() 能正常显示图形 |
| SciPy | ≥1.7.0 | stats.norm.rvs() 能生成随机数 |
3.7 本章知识体系
下面这张图,帮你理清整个环境搭建的脉络:
环境搭好了,后面写策略、跑回测,才能顺风顺水。别嫌这一步麻烦,磨刀不误砍柴工。
公众号:蓝海资料掘金营,微信deep3321