第1章:Python环境搭建——Anaconda安装、虚拟环境管理、必备库安装
做量化投资,说白了就是跟数据打交道。而Python,就是我们手里最趁手的工具。但工欲善其事,必先利其器——环境搭不好,后面全是坑。我见过太多新手在环境配置上卡一整天,最后心态崩了。所以这一章,咱们把地基打牢。
1.1 为什么选Anaconda?
你可能会问:直接装个Python不行吗?当然可以。但做因子回测,我们需要管理多个项目,每个项目依赖的库版本可能不一样。比如项目A用pandas 1.3,项目B用pandas 2.0。如果全装在一个环境里,迟早会冲突。
Anaconda就是来解决这个问题的。它自带Python、包管理器conda,还有一套虚拟环境机制。我个人习惯用Anaconda,因为它开箱即用,省去了手动配置的麻烦。我记得第一次用的时候,装完就能跑代码,那种顺畅感,嗯,很舒服。
核心优势:
- 自带Python和常用科学计算库
- conda包管理器比pip更稳定,尤其适合Windows用户
- 虚拟环境隔离,项目之间互不干扰
1.2 Anaconda安装步骤
安装其实很简单,但有几个细节要注意。我曾经在安装时选了「Add to PATH」,结果跟系统自带的Python冲突了,折腾了半天。所以这里我建议你按下面的步骤来:
- 下载安装包:去Anaconda官网,选对应操作系统的版本。我建议下载Python 3.9+的版本,太老的版本有些新库不支持。
- 安装时注意:
- Windows用户:不要勾选「Add Anaconda to my PATH environment variable」
- macOS/Linux用户:默认路径即可
- 安装路径不要有中文或空格 - 验证安装:打开终端(Windows用Anaconda Prompt),输入
conda --version,看到版本号就说明装好了。
避坑指南:我曾经在Windows上勾选了「Add to PATH」,结果每次打开cmd都会自动激活base环境,而且跟系统Python冲突。后来我只好重装。记住:用Anaconda Prompt或PowerShell来管理环境,别动系统PATH。
1.3 虚拟环境管理——你的项目隔离舱
虚拟环境,说白了就是给每个项目一个独立的「小房间」。你在房间里装什么库,都不会影响到其他房间。做因子回测时,我通常会为每个策略单独建一个环境,这样即使某个库升级出问题,也不会牵连其他策略。
下面是我常用的几个命令,你直接复制粘贴就行:
# 创建虚拟环境(指定Python版本)
conda create -n factor_backtest python=3.9
# 激活环境
conda activate factor_backtest
# 退出环境
conda deactivate
# 查看所有环境
conda env list
# 删除环境
conda remove -n factor_backtest --all
环境命名我建议用项目名,比如factor_backtest、momentum_strategy。这样一眼就能看出来是干嘛的。你想想看,如果叫test1、test2,过两个月你自己都忘了哪个是哪个。
小技巧:我习惯在项目根目录放一个environment.yml文件,记录所有依赖。这样换电脑或分享给同事时,一行命令就能复现环境:conda env create -f environment.yml
1.4 必备库安装——因子回测的「五虎将」
做因子回测,有几个库是绕不开的。我把它们称为「五虎将」:pandas、numpy、matplotlib、seaborn、tqdm、joblib。嗯,其实是六个,但tqdm和joblib算是一对好搭档。
| 库名 | 作用 | 安装命令 |
|---|---|---|
| pandas | 数据处理,尤其是DataFrame操作 | conda install pandas |
| numpy | 数值计算,矩阵运算 | conda install numpy |
| matplotlib | 基础绘图,折线图、柱状图等 | conda install matplotlib |
| seaborn | 高级统计绘图,比matplotlib更美观 | conda install seaborn |
| tqdm | 进度条显示,跑循环时心里有数 | conda install tqdm |
| joblib | 并行计算,加速回测 | conda install joblib |
安装命令很简单,激活你的虚拟环境后,一行一行执行就行:
conda activate factor_backtest
conda install pandas numpy matplotlib seaborn tqdm joblib
如果你网络慢,可以换成国内镜像源:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
为什么是这六个库?
- pandas + numpy:因子数据处理的核心。pandas处理表格数据,numpy做底层数值计算。我回测时90%的代码都在跟DataFrame和数组打交道。
- matplotlib + seaborn:可视化分析。seaborn基于matplotlib,但画出来的图更漂亮。我习惯用seaborn画因子收益分布,用matplotlib画净值曲线。
- tqdm + joblib:效率工具。tqdm让你知道回测还要跑多久,joblib让多因子并行计算成为可能。我曾经用joblib把回测时间从2小时压缩到15分钟。
1.5 验证安装——跑个简单例子
装完库,咱们得验证一下。写个简单的Python脚本,看看能不能跑通:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from tqdm import tqdm
from joblib import Parallel, delayed
# 生成模拟因子数据
np.random.seed(42)
dates = pd.date_range('2020-01-01', periods=100)
factors = pd.DataFrame({
'date': dates,
'factor1': np.random.randn(100),
'factor2': np.random.randn(100),
'return': np.random.randn(100) * 0.02
})
print("数据加载成功!")
print(factors.head())
# 用seaborn画个因子分布图
sns.histplot(factors['factor1'], kde=True)
plt.title('因子1分布')
plt.show()
如果能看到图表,说明环境搭建成功。嗯,这里要注意:如果报错说缺少某个库,别慌,用conda install补上就行。
1.6 本章知识体系
下面这张图,帮你理清本章的核心逻辑:
从Anaconda安装开始,到虚拟环境隔离,再到六个核心库的安装与验证。每一步都是为后面的因子回测打基础。我个人觉得,环境搭建花点时间值得——后面写代码时,你会感谢现在认真搭环境的自己。
我的经验:刚开始做因子回测时,我图省事把所有库装在一个环境里。结果有一次升级pandas,导致另一个项目的代码全崩了。从那以后,我每个项目都单独建环境。虽然多花了几分钟,但再也没出过环境冲突的问题。
公众号:蓝海资料掘金营,微信deep3321