3. 环境搭建与工具链:Python环境配置、Anaconda与Jupyter、必备库安装
做量化交易,说白了就是跟数据打交道。你想想看,没有趁手的工具,再好的策略也跑不起来。这一章,我就带你把整个开发环境搭好。嗯,这里要注意,环境搭建看似基础,但我在项目中见过太多人因为版本冲突、路径混乱,白白浪费一整天。
3.1 为什么选Python?
我个人习惯用Python做回测,原因很简单:生态太丰富了。pandas处理时间序列、numpy做矩阵运算、matplotlib画K线图,再加上backtrader这个回测框架,一条龙搞定。
你可能要问:「用其他语言不行吗?」当然可以。但Python的社区支持、第三方库数量,做量化交易绝对是第一梯队。我记得刚入行时,有个同事用C++写回测引擎,光数据结构就折腾了两周。我用Python,半天就搭好了原型。
3.2 Anaconda:一站式环境管理
Anaconda是什么?说白了就是一个Python发行版,帮你把Python解释器、常用库、包管理器都打包好了。我建议新手直接装Anaconda,省心。
- 自带conda包管理器,比pip更智能
- 预装了200+科学计算库
- 支持创建隔离环境,避免项目间冲突
安装步骤很简单:去官网下载对应系统的安装包,一路下一步就行。但有个坑——安装路径不要有中文和空格。我曾经因为用户名是中文,导致Jupyter启动报错,折腾了半小时才发现。
3.3 创建虚拟环境
做回测项目,我习惯单独建一个环境。这样不会污染全局Python,也方便迁移。
# 创建环境,指定Python版本
conda create -n backtest_env python=3.9
# 激活环境
conda activate backtest_env
# 退出环境
conda deactivate
环境名我一般用项目名加_env后缀。比如这个课程,就叫backtest_env。你想想看,如果所有项目都混在base环境里,哪天升级了某个库,其他项目可能就崩了。
3.4 Jupyter Notebook:交互式开发利器
Jupyter Notebook是我做策略探索时的最爱。你可以边写代码边看结果,还能加Markdown注释。说实话,没有Jupyter,我写策略的效率至少降一半。
安装很简单:
conda install jupyter notebook
启动:
jupyter notebook
浏览器会自动打开一个页面,默认端口是8888。如果端口被占用,它会自动找下一个可用端口。
3.5 必备库安装
接下来是重头戏——安装回测必备的四个库。我按依赖顺序来装:
3.5.1 pandas:数据处理核心
pandas是量化交易的基础。DataFrame结构天然适合处理时间序列数据。安装:
conda install pandas
或者用pip:
pip install pandas
我个人推荐用conda安装,因为它会自动处理依赖关系。比如pandas依赖numpy,conda会一并装上。
3.5.2 numpy:数值计算引擎
numpy提供高效的数组运算。虽然pandas底层已经用了numpy,但有些场景还是需要直接操作numpy数组。安装:
conda install numpy
3.5.3 matplotlib:数据可视化
回测结果总要画出来吧?matplotlib就是干这个的。安装:
conda install matplotlib
我建议同时安装seaborn,它基于matplotlib,画出来的图更漂亮:
conda install seaborn
3.5.4 backtrader:回测框架
backtrader是这次课程的核心。它封装了回测的通用逻辑,你只需要写策略逻辑就行。安装:
pip install backtrader
注意,backtrader在conda源里可能不是最新版,所以我用pip安装。如果遇到网络问题,可以加国内镜像:
pip install backtrader -i https://pypi.tuna.tsinghua.edu.cn/simple
3.6 验证安装
装完别急着走,先验证一下。打开Jupyter,新建一个Notebook,运行以下代码:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import backtrader as bt
print(f"pandas版本: {pd.__version__}")
print(f"numpy版本: {np.__version__}")
print(f"backtrader版本: {bt.__version__}")
# 简单测试:生成随机数据并画图
data = pd.DataFrame(np.random.randn(100, 3), columns=['A', 'B', 'C'])
data.plot()
plt.title('安装验证测试')
plt.show()
如果没报错,还能看到一张折线图,恭喜你,环境搭好了!
3.7 知识体系总览
下面这张图,是我画的环境搭建整体流程。你可以对照着检查自己走到哪一步了:
3.8 环境管理小贴士
| 命令 | 作用 | 使用频率 |
|---|---|---|
conda list |
查看当前环境已安装的包 | ⭐⭐⭐⭐ |
conda env list |
列出所有虚拟环境 | ⭐⭐⭐ |
conda remove -n env_name --all |
删除整个环境 | ⭐ |
conda export > environment.yml |
导出环境配置(方便分享) | ⭐⭐ |
conda env list 确认当前在哪个环境。然后运行 conda list | grep backtrader 检查关键库是否装好。这一套流程走下来,基本不会出问题。
好了,环境搭好了,工具也装齐了。下一节,我们就可以开始写真正的回测代码了。记住,好的开始是成功的一半——环境搭得稳,后面写策略才顺手。