3. 环境搭建与工具链:Python环境配置、依赖库安装、项目结构规划

做量化回测,说白了就是跟数据打交道。而Python,就是我们手里最顺手的工具。这一章咱们把环境搭好,后面写代码才不卡壳。

3.1 Python环境配置

我个人习惯用Anaconda来管理Python环境。为什么?因为省心。你想想看,做市商回测要装一堆科学计算库,一个个手动装容易出版本冲突。Anaconda把这些打包好了,装一个顶十个。

具体步骤:

  1. 去Anaconda官网下载Python 3.9+版本(我推荐3.10,稳定且兼容性好)
  2. 安装时记得勾选「Add Anaconda to my PATH environment variable」
  3. 打开终端或Anaconda Prompt,验证安装:
python --version
conda --version

看到版本号输出,说明环境就绪了。

避坑指南:我曾经在Windows上装完Anaconda后,发现命令行里python还是旧版本。原因是系统PATH里先找到了别的Python。解决办法:把Anaconda的路径移到PATH最前面。

3.2 依赖库安装

做市商回测离不开三个核心库:Pandas、NumPy、Matplotlib。它们的关系是这样的:

  • NumPy:底层计算引擎,处理数组和矩阵运算
  • Pandas:数据处理的瑞士军刀,专门对付时间序列
  • Matplotlib:画图工具,把回测结果可视化

安装命令很简单:

conda install numpy pandas matplotlib
# 或者用pip
pip install numpy pandas matplotlib

嗯,这里要注意。我建议用conda安装,因为它会自动处理依赖关系。比如Pandas底层依赖NumPy,conda会帮你装好兼容的版本。用pip的话,有时候会遇到版本冲突,我踩过这个坑。

额外推荐安装的库:

库名 用途 安装命令
Jupyter Notebook 交互式开发环境 conda install jupyter
Seaborn 更美观的统计图表 conda install seaborn
tqdm 进度条显示 conda install tqdm
小技巧:装完库后,可以用 conda list 查看已安装的所有包。如果发现版本不对,用 conda update 包名 更新。

3.3 项目结构规划

做回测框架,最怕代码写成一锅粥。我见过不少新手,把所有代码塞进一个文件里,最后自己都找不到哪是哪。咱们从一开始就把架子搭好。

我个人习惯的项目结构是这样的:

market_maker_backtest/
├── data/               # 原始数据存放
│   ├── raw/            # 未处理的市场数据
│   └── processed/      # 清洗后的数据
├── src/                # 核心代码
│   ├── __init__.py
│   ├── data_loader.py  # 数据加载模块
│   ├── strategy.py     # 做市策略
│   ├── backtest.py     # 回测引擎
│   └── metrics.py      # 绩效评估
├── config/             # 配置文件
│   └── settings.yaml
├── results/            # 回测结果
│   ├── reports/        # 分析报告
│   └── plots/          # 图表
├── tests/              # 单元测试
│   └── test_strategy.py
├── requirements.txt    # 依赖清单
└── README.md           # 项目说明

为什么这么分?说白了就是「关注点分离」。数据归数据,代码归代码,结果归结果。你想想看,如果数据文件和代码混在一起,哪天要换数据源,还得翻代码改路径,多麻烦。

核心模块说明:

  • data_loader.py:负责从CSV、数据库或API读取行情数据,统一格式输出
  • strategy.py:定义做市策略逻辑,比如报价宽度、库存管理
  • backtest.py:回测引擎核心,模拟订单簿、撮合交易
  • metrics.py:计算夏普比率、最大回撤、盈亏曲线等指标
重要:每个模块只做一件事。data_loader只管读数据,别在里面写策略逻辑。这样后期调试、扩展都方便。

3.4 知识体系总览

下面这张图,把本章的核心逻辑串起来了。你可以把它当作搭建环境的路线图:

做市商回测框架 - 环境搭建知识体系 Python环境 Anaconda / Python 3.10 核心依赖库 NumPy + Pandas + Matplotlib 项目结构 模块化分层设计 环境配置要点 • 版本选择:3.9+ • PATH路径设置 • conda vs pip选择 库安装清单 • 必装:numpy, pandas • 必装:matplotlib • 选装:seaborn, tqdm 模块职责划分 • data_loader:数据读取 • strategy:策略逻辑 • backtest:回测引擎 环境就绪 → 开始构建回测框架

3.5 验证环境是否就绪

装完别急着走。写个简单脚本验证一下:

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

# 生成模拟数据
dates = pd.date_range('2024-01-01', periods=100, freq='1min')
prices = np.random.randn(100).cumsum() + 100

# 创建DataFrame
df = pd.DataFrame({'time': dates, 'price': prices})
print(df.head())

# 画个简单折线图
plt.plot(df['time'], df['price'])
plt.title('Test Plot - Market Data')
plt.show()

如果能正常输出数据和图表,说明环境搭建成功了。如果报错,多半是库没装全或者版本不对。用 conda list | grep 包名 检查一下。

我的经验:第一次跑回测时,数据量一大就容易内存溢出。后来我养成习惯,先用小数据量(比如1000条)验证逻辑,没问题了再上全量数据。这个习惯帮我省了不少调试时间。

好了,环境搭好了,项目架子也支起来了。后面咱们就可以往里面填代码了。记住:好的开始是成功的一半,结构清晰比代码炫技更重要。


公众号:蓝海资料掘金营,微信deep3321