第二章:开发环境搭建——工欲善其事,必先利其器
做量化交易,说白了就是跟数据打交道、跟代码较劲。环境搭不好,后面全是坑。我见过太多人花了两周写策略,结果因为库版本冲突,又花了两周去debug。嗯,咱们别走那条弯路。
这一章,我会带你一步步把Python、Anaconda、VS Code、Jupyter Notebook这些家伙安排得明明白白。顺便把pandas、numpy、backtrader这些常用库也一并装好。你跟着走一遍,后面30章基本不用再为环境发愁。
2.1 Python与Anaconda安装
Python版本怎么选?我个人习惯用Python 3.9或3.10。3.11虽然新,但有些量化库还没完全适配。你想想看,万一backtrader报个兼容性错误,排查起来多闹心。
Anaconda这东西,说白了就是个Python的“全家桶”。它自带包管理器conda,还有一大堆数据科学库。我建议你直接去官网下个Anaconda Individual Edition,一路默认安装就行。
装完之后,打开终端(Windows用cmd或PowerShell,Mac/Linux用bash),输入:
python --version
conda --version
能看到版本号,就说明装好了。我记得第一次装的时候,python命令死活找不到,后来发现是环境变量没配好。嗯,如果你也遇到这问题,去系统环境变量里手动加一下Anaconda的路径就行。
2.2 VS Code配置
编辑器这块,我强烈推荐VS Code。免费、轻量、插件生态丰富。做量化开发,你需要的功能它基本都有。
安装好VS Code后,打开扩展市场(Ctrl+Shift+X),装这几个插件:
- Python(微软官方出品,必装)
- Jupyter(让你在VS Code里直接跑Notebook)
- Pylance(代码补全和类型检查,写代码快一倍)
- GitLens(版本管理,做策略迭代时特别有用)
装完之后,按Ctrl+Shift+P,输入“Python: Select Interpreter”,选你Anaconda安装的那个Python解释器。这一步很重要,不然VS Code可能用系统自带的Python,库都找不到。
2.3 Jupyter Notebook使用
Jupyter Notebook这东西,做量化分析简直神器。你可以一段一段地跑代码,边跑边看结果。比如你拉了一堆行情数据,想看看长什么样,直接print一下,图表就出来了。
启动方式很简单,终端输入:
jupyter notebook
浏览器会自动打开一个页面,点“New” -> “Python 3”就能新建一个Notebook。我个人习惯在VS Code里直接写Notebook,因为代码补全和调试更方便。你可以在VS Code里新建一个.ipynb文件,效果一样。
这里有个小技巧:Notebook里写代码,尽量把每个cell控制在10行以内。太长的话,出错了不好定位。我刚开始做回测时,一个cell写了50行,结果报错找半天。后来学乖了,数据加载一个cell,清洗一个cell,策略逻辑一个cell,清清楚楚。
2.4 虚拟环境管理
虚拟环境这东西,说白了就是给你的每个项目一个独立的“小房间”。房间里的Python版本、库版本都是独立的,互不干扰。
举个例子:你项目A需要pandas 1.3,项目B需要pandas 2.0。如果没有虚拟环境,你只能二选一。有了虚拟环境,两个版本可以共存,各用各的。
用conda创建虚拟环境很简单:
conda create -n quant_env python=3.9
conda activate quant_env
quant_env是环境名字,你可以随便起。激活之后,终端前面会显示(quant_env),说明你已经在虚拟环境里了。这时候安装的所有库,都只在这个环境里生效。
a_share_env,做加密货币用crypto_env。这样不同项目的依赖不会打架,而且换电脑时只要导出一个environment.yml文件,到新电脑上一键重建环境。
退出虚拟环境用:
conda deactivate
如果你不想用conda,也可以用Python自带的venv:
python -m venv quant_env
# Windows激活
quant_env\Scripts\activate
# Mac/Linux激活
source quant_env/bin/activate
两种方式都行,我个人更推荐conda,因为它还能管理Python版本,venv只能管理库。
2.5 常用量化库安装
环境搭好了,接下来装库。这些库是量化交易的“工具箱”,后面每一章都会用到。
| 库名 | 用途 | 安装命令 |
|---|---|---|
| pandas | 数据处理,行情数据清洗、合并、统计 | conda install pandas |
| numpy | 数值计算,矩阵运算、数学函数 | conda install numpy |
| matplotlib | 数据可视化,画K线图、回测曲线 | conda install matplotlib |
| backtrader | 策略回测框架,写策略、跑回测 | pip install backtrader |
| ccxt | 加密货币交易所API封装,获取行情、下单 | pip install ccxt |
| ta-lib | 技术指标计算,MACD、RSI、布林带等 | conda install -c conda-forge ta-lib |
| scikit-learn | 机器学习,用于预测模型、因子挖掘 | conda install scikit-learn |
安装时注意顺序:先装pandas和numpy,因为它们很多库的依赖。我一般这样操作:
conda activate quant_env
conda install pandas numpy matplotlib
pip install backtrader ccxt
conda install -c conda-forge ta-lib
conda install scikit-learn
为什么要混着用conda和pip?因为backtrader和ccxt在conda源里更新不及时,用pip装能拿到最新版。而pandas、numpy这些用conda装,依赖关系处理得更好,不容易出问题。
import xxx能不能成功,别等写代码时才发现。
装完之后,验证一下:
python -c "import pandas; import numpy; import matplotlib; import backtrader; import ccxt; print('All good!')"
如果没报错,恭喜你,环境搭好了。后面就可以安心写策略了。