第一章:Python环境搭建——工欲善其事,必先利其器

做高频做市,说白了就是跟时间赛跑。你的代码快一毫秒,可能就多赚一笔。但这一切的起点,得先把Python环境搭好。我见过太多新手,一上来就急着写策略,结果环境乱七八糟,最后连个回测都跑不起来。

嗯,今天我们就从零开始,把地基打牢。

1.1 为什么选Anaconda?

你可能想问:直接用Python官网的安装包不行吗?当然行。但做量化,尤其是高频方向,你需要的库太多了——NumPy、Pandas、SciPy、Matplotlib……一个个手动装,依赖冲突能让你崩溃。

我个人习惯用Anaconda。它自带150+科学计算包,还帮你管好了虚拟环境。说白了,就是一个「全家桶」,装完就能干活。

我的经验: 曾经有个同事,为了省点硬盘空间,坚持用Miniconda。结果每次装新库都要手动解决依赖,折腾了两天。后来我直接甩给他一个Anaconda安装包,半小时搞定。省下的时间,够他写一个简单的做市策略了。

1.2 安装Anaconda

去官网下载对应系统的安装包。Windows用户记得选64位版本。安装时有个坑——一定要勾选「Add Anaconda to my PATH environment variable」。虽然安装程序会警告你「不推荐」,但相信我,勾上能省很多事。

避坑指南: 我曾经因为没勾这个选项,导致在命令行里死活找不到conda命令。后来花了半小时查环境变量配置……嗯,从那以后我再也不敢跳过这一步了。

装完后,打开终端(Windows用Anaconda Prompt),输入:

conda --version

如果看到版本号,说明安装成功。

1.3 配置Jupyter Notebook

Jupyter是我做量化研究的主力工具。为什么?因为它支持交互式编程——你写一段代码,立刻能看到结果。对于探索性数据分析、策略原型验证,简直不要太爽。

启动Jupyter很简单:

jupyter notebook

浏览器会自动打开一个页面。你可以在里面新建Python文件,边写边跑。我个人习惯把回测代码、可视化图表都放在一个Notebook里,方便复盘。

小技巧: 在Jupyter里按Tab键可以自动补全代码,按Shift+Tab可以查看函数文档。这两个快捷键,能帮你省下至少30%的敲代码时间。

1.4 安装常用量化库

高频做市离不开这几个库:

库名 用途 安装命令
NumPy 高性能数值计算 conda install numpy
Pandas 数据处理与分析 conda install pandas
Matplotlib 数据可视化 conda install matplotlib
SciPy 科学计算(统计、优化) conda install scipy

你可能会问:为什么不用pip?其实都可以。但conda会自动处理依赖关系,尤其对于NumPy这种底层用C写的库,conda安装的版本通常更稳定。

装完后,验证一下:

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

print("所有库导入成功!")
注意: 如果你在Jupyter里运行这段代码,记得先重启内核(Kernel -> Restart)。否则可能报「模块未找到」的错误。

1.5 性能测试工具

做高频做市,代码性能是命根子。你不能等到策略上线了才发现「哎呀,这行代码跑了10毫秒」。所以,从一开始就要养成性能测试的习惯。

Python自带的timeit模块就够用。比如你想测试一个NumPy数组求和的速度:

import timeit
import numpy as np

arr = np.random.rand(1000000)

# 测试NumPy求和
t1 = timeit.timeit(lambda: np.sum(arr), number=100)
print(f"NumPy求和耗时: {t1:.4f}秒")

# 测试Python原生求和
t2 = timeit.timeit(lambda: sum(arr), number=100)
print(f"Python原生求和耗时: {t2:.4f}秒")

结果会让你大吃一惊——NumPy比原生快了将近100倍。这就是为什么做量化一定要用NumPy的原因。

我的习惯: 每次写完一个核心函数,我都会用timeit跑一下。如果发现某个操作耗时超过1毫秒,我就会琢磨能不能优化。比如用向量化操作代替循环,或者用Cython重写热点代码。

除了timeit,我还推荐line_profiler。它能逐行告诉你每行代码的耗时,帮你精准定位瓶颈。安装方式:

conda install line_profiler

用法也很简单,在函数前面加个@profile装饰器,然后运行:

kernprof -l -v your_script.py

它会输出每行代码的执行次数和耗时。嗯,这个工具帮我优化过不少做市策略的延迟。

1.6 本章知识体系

下面这张图,帮你理清今天讲的所有内容:

Python环境搭建 Anaconda安装 Jupyter配置 量化库安装 环境管理 包管理 交互式编程 可视化 NumPy Pandas Matplotlib SciPy 性能测试工具 (timeit, line_profiler) 安装配置 开发工具 核心库 性能优化

这张图把今天的内容串起来了。从Anaconda这个「地基」开始,往上搭Jupyter这个「工作台」,再装上NumPy、Pandas这些「工具」,最后用性能测试工具当「质检员」。每一步都踩实了,后面写策略才能跑得快、跑得稳。


好了,环境搭好了,下一章我们开始真正接触高频做市的核心——订单簿数据。到时候我会带你用Pandas处理真实的Level 2行情数据,那才是真正有意思的东西。

专注资料整理