2. 开发环境搭建

说实话,做量化调优的第一步往往不是调参数,而是先把环境弄明白。我记得自己刚入行那会儿,为了省事直接在系统 Python 里装了一堆包,结果半年后项目换机器,依赖全崩了。嗯,从那以后我再也不敢跳过环境隔离这一步。这一节就把我这些年踩过的坑告诉你,照着来就行。

Python 版本怎么选?

我个人习惯用 Python 3.11 或更高版本。为什么?3.11 在性能和错误提示上改进很大,尤其是面向量化的场景下,循环和数学操作都快了不少。3.10 也能用,但 3.12 有些库暂时还没完全兼容,所以 3.11 是当前最稳的选择。

你可以在终端里跑一下:

python --version

如果版本低于 3.11,那就需要升级或重新安装。我建议直接用 miniconda,它能同时管理多个版本,特别适合我们这种需要反复切换环境的人。

注意:不要用系统自带的 Python 去装科学计算包。系统 Python 是给系统工具用的,你装了 numpy 可能会和系统的包起冲突。我之前就因此翻过一次车,apt upgrade 直接把项目环境搞坏了。

虚拟环境——最容易被忽略的一步

很多人觉得“我项目不大,不用虚拟环境”。错。量化调优涉及的库版本敏感度极高。比如 pandas 2.0 改了接口,你全局装了个 2.0,项目里还在用 1.5 的语法,直接报错。我建议每个项目单独建一个虚拟环境。

用 conda 创建环境很简单:

conda create -n kquant python=3.11
conda activate kquant

如果你不想装 conda,用 venv 也行:

python -m venv kquant_env
source kquant_env/bin/activate  # Linux/Mac
kquant_env\Scripts\activate     # Windows

我个人更喜欢 conda,因为后面装 numpy 时会自动帮我把底层线性代数库一起搞定,省了我不少麻烦。

Jupyter Notebook——交互式调优的利器

K‑quant 调优过程中,我几乎全程在 Jupyter Notebook 里工作。原因很简单——每调一个参数立刻看到结果,画图也方便。安装命令:

pip install jupyter notebook

启动就用:

jupyter notebook

它会自动弹出浏览器。如果是在远程服务器上跑,你可以加上 --no-browser --port=8888,然后本地 SSH 隧道连接,具体操作我后面会讲。

小技巧:启动后第一次打开会要求输入 token。你可以在终端里复制那串长长的 token,也可以提前设置密码:jupyter notebook password,这样以后直接输密码就行。

核心库安装:pandas / numpy / matplotlib

这三个库是量化调优的基石。pandas 处理表格数据,numpy 做数值计算,matplotlib 画图。安装一句话:

pip install pandas numpy matplotlib

或者用 conda(推荐):

conda install pandas numpy matplotlib

为什么推荐 conda?因为 numpy 底层依赖 BLAS/LAPACK,conda 会自动匹配高性能的 MKL 或 OpenBLAS,而 pip 有时装的是从源码编译的版本,慢一倍。我在一个项目里试过,同样的矩阵运算,conda 版的 numpy 比 pip 快了将近 40%。这种差距在 K‑quant 的大规模量化计算中会被放大。

版本对照表——别装错了

为了方便你对照,我整理了一张常用库与 Python 版本的兼容表:

库名 推荐版本 最低 Python 版本
Python 3.11.x 3.8
pandas ≥2.0 3.9
numpy ≥1.24 3.9
matplotlib ≥3.7 3.9

你直接用 pip install 一般会自动拉取匹配版本。如果遇到依赖冲突,可以试试先升级 pip:pip install --upgrade pip,再逐个装。

验证环境——跑个 quick test

一切安装完成后,写个最简单的脚本验证一下:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

print("numpy version:", np.__version__)
print("pandas version:", pd.__version__)
print("matplotlib version:", plt.matplotlib.__version__)

# 做个简单测试
data = np.random.randn(1000)
df = pd.DataFrame(data, columns=['value'])
df['value'].hist(bins=30)
plt.title("K‑quant 环境测试")
plt.show()

如果代码不报错,弹出一个直方图窗口,说明环境通通就绪。如果 matplotlib 没显示窗口,可能是后端问题,加一行 plt.switch_backend('TkAgg') 试试。

核心思路:开发环境 = Python 3.11 + 独立虚拟环境 + Jupyter Notebook + pandas/numpy/matplotlib。四者缺一不可,而且一定要用 conda 管理环境,别偷懒。

本章知识脉络

下面这张图总结了我们刚才搭建的整个开发环境栈,从底层到顶层清清楚楚:

K‑quant 量化调优开发环境栈 操作系统(Windows / Linux / macOS) Python 3.11+(推荐 Miniconda 管理) 虚拟环境(conda / venv) Jupyter Notebook pandas · numpy · matplotlib conda 自动附带 MKL 加速
一点建议:上面这套环境装好后,以后每次开始新项目只需 conda activate kquant 就能秒切,不用再怕依赖冲突。我自己电脑上现在有七八个环境,每个项目对应一个,井然有序。