第二章:研发环境搭建
做量化策略研发,第一件事不是写代码,而是搭环境。这事儿看着简单,但我在项目里见过太多人因为环境问题浪费一整天。说白了,环境搭好了,后面能省80%的坑。
操作系统怎么选?
我个人习惯用Linux,尤其是Ubuntu。为什么?因为量化生态里大部分工具和库,都是优先支持Linux的。你想想看,服务器上跑策略,99%都是Linux。本地开发用Linux,能避免很多「本地能跑,服务器报错」的尴尬。
Windows也不是不行。我早期做CTA策略时就在Windows上折腾过。但有个坑——有些科学计算库在Windows上编译特别麻烦。比如TA-Lib,装起来能让你怀疑人生。Mac用户相对幸福,Unix内核,兼容性好,但M1/M2芯片偶尔会有兼容性问题。
我的建议:
- 新手:Windows + WSL2(Windows Subsystem for Linux)
- 老手:Ubuntu 22.04 LTS 或 MacOS
- 团队协作:统一Linux环境,避免「我的机器能跑」
Python环境管理:Anaconda vs venv
这个问题我纠结过很久。Anaconda确实方便,自带1500+包,装完就能用。但有个问题——它太胖了。一个基础环境就占3-4G,而且conda的依赖解析有时候慢得离谱。
venv是Python自带的,轻量,干净。但你需要手动装所有包。嗯,这里要注意:venv只管理Python包,不管理系统级的依赖。比如你装pandas,它底层依赖的libgcc、libstdc++这些,venv管不了。
我的实战经验:
我现在的做法是:用miniconda(Anaconda的轻量版)管理Python版本,然后用venv或poetry管理项目依赖。这样既保留了conda的便利性,又避免了环境臃肿。
| 工具 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| Anaconda | 开箱即用,包管理强大 | 体积大,依赖解析慢 | 新手、数据分析 |
| miniconda | 轻量,保留conda功能 | 需要手动装包 | 日常开发 |
| venv | Python原生,轻量 | 不管理系统依赖 | 纯Python项目 |
| poetry | 依赖锁定,发布方便 | 学习曲线略高 | 团队协作、库开发 |
核心库安装
量化策略离不开这几个库。我按安装顺序和重要性排个序:
- numpy:所有数值计算的基础。装它的时候注意,最好用conda装,因为pip装有时会触发编译,慢。
- pandas:处理时间序列数据的利器。我建议装最新版,老版本有些API已经废弃了。
- matplotlib:画图用的。量化里看回测曲线、K线图都靠它。
- scipy:科学计算,优化算法、统计检验都用得上。
- statsmodels:做统计建模和假设检验。比如你算个协整关系、做ADF检验,就靠它。
我曾经踩过的坑:
有一次装statsmodels,pip install直接报错,说缺少gfortran。折腾了半天才发现,statsmodels底层依赖Fortran编译器。后来用conda装,一步到位。所以我的建议是:科学计算相关的库,优先用conda装。
# 推荐安装方式
conda install numpy pandas matplotlib scipy statsmodels
# 或者用pip(但要注意依赖)
pip install numpy pandas matplotlib scipy statsmodels
Jupyter Lab配置与使用
Jupyter Lab是我每天都要用的工具。它比Jupyter Notebook强在哪?说白了,就是更像一个IDE了。你可以同时打开多个notebook、终端、文件浏览器,还能拖拽布局。
我个人习惯这样配置:
- 安装jupyterlab:
conda install jupyterlab - 安装插件:jupyterlab-git(版本控制)、jupyterlab-lsp(代码补全)
- 设置密码:
jupyter lab password,防止别人连你的端口 - 修改默认端口:
jupyter lab --port=8889,避免冲突
一个小技巧:
在Jupyter Lab里,按Shift+Enter运行当前单元格并跳到下一个。按Ctrl+Enter只运行不跳转。按Esc退出编辑模式,然后按a在上面插入单元格,按b在下面插入。这些快捷键用熟了,效率能翻倍。
你想想看,一个量化策略从数据获取、因子计算、回测到结果分析,全在一个notebook里完成,多爽。但要注意,notebook不适合做生产环境。策略定型后,还是要转成.py脚本。
本章知识体系
下面这张图,是我梳理的研发环境搭建的核心逻辑。从操作系统到底层库,再到开发工具,一层层往上搭。
环境搭建这件事,说难不难,说简单也不简单。关键是别急,一步步来。我见过有人一上来就装一堆库,结果版本冲突,最后全删了重来。嗯,稳一点,先搭好基础,再往上加东西。
本章核心要点:
- 操作系统:Linux优先,Windows用户用WSL2过渡
- Python环境:miniconda + venv/poetry 组合拳
- 核心库:按numpy→pandas→matplotlib→scipy→statsmodels顺序装
- Jupyter Lab:装好插件,记牢快捷键,效率翻倍
好了,环境搭好,下一章我们就可以开始真正写策略了。记住,好的开始是成功的一半,环境搭好了,后面就顺了。
公众号:蓝海资料掘金营,微信deep3321