第1章:Python环境搭建——Anaconda安装、虚拟环境配置、常用库安装

做量化交易,说白了就是跟数据打交道。你想想看,一个交易系统要同时连好几个交易所,实时处理行情,还要算价差、发订单……这些活儿全得靠Python来干。但Python有个毛病——不同项目依赖的库版本经常打架。我刚开始做多交易所套利的时候,就吃过这个亏。

嗯,今天咱们先把地基打牢。环境搭好了,后面写代码才不闹心。

1.1 为什么选Anaconda?

我个人习惯用Anaconda来管理Python环境。原因很简单:省事。

  • 自带科学计算全家桶——numpy、pandas、matplotlib这些做量化必备的库,装好就有
  • 虚拟环境隔离——每个项目一套环境,互不干扰
  • 跨平台支持——Windows、macOS、Linux都能用

我在项目中遇到过最头疼的事:一个策略用pandas 1.0写的,另一个策略依赖pandas 0.25的新特性。要是没有虚拟环境,这两个项目根本没法共存。Anaconda的conda环境就是干这个的。

1.2 安装Anaconda

去官网下载对应操作系统的安装包就行。我建议选Python 3.9+的版本,太老的版本有些库已经不支持了。

注意:安装时有个选项叫「Add Anaconda to my PATH environment variable」,Windows用户建议勾上。macOS/Linux用户无所谓,反正终端里也能用。

装完验证一下:

conda --version
# 输出类似:conda 23.7.4

看到版本号,说明装好了。

1.3 虚拟环境配置

虚拟环境这东西,说白了就是给每个项目搞一个「独立小房间」。你在小房间里装什么库,都不会影响到外面。

创建环境:

conda create -n quant_env python=3.9

这里quant_env是环境名,你可以随便起。我习惯用项目名来命名,比如arbitrage_envmarket_making_env

激活环境:

conda activate quant_env

退出环境:

conda deactivate
小技巧:每次打开终端,先看一眼命令行前面有没有环境名。有的话说明你在虚拟环境里,没有的话就是base环境。我曾经在base环境里装了一堆库,结果另一个项目跑不起来……排查了半天才发现是环境搞混了。

1.4 常用库安装

做多交易所做市套利,下面这几个库是绕不开的:

库名 用途 安装命令
ccxt 统一API接口,连接各大交易所 pip install ccxt
requests 发送HTTP请求,获取REST API数据 pip install requests
websockets 建立WebSocket连接,接收实时行情 pip install websockets
pandas 数据处理和分析 conda install pandas
numpy 数值计算 conda install numpy

安装命令很简单,激活环境后直接pip或conda装就行:

pip install ccxt requests websockets
conda install pandas numpy

装完后验证一下:

python -c "import ccxt; print(ccxt.__version__)"
python -c "import requests; print(requests.__version__)"
python -c "import websockets; print(websockets.__version__)"

不报错,说明装好了。

核心要点:ccxt是咱们做多交易所套利的「瑞士军刀」。它封装了上百个交易所的API,你写一套代码就能连币安、OKX、Bybit……不用每个交易所单独写一遍。我刚开始做的时候,就是靠ccxt省下了至少一半的开发时间。

1.5 环境搭建的整体流程

下面这张图,把整个环境搭建的流程串起来了:

Python量化环境搭建流程 安装Anaconda Python 3.9+ 版本 创建虚拟环境 conda create -n quant_env 激活环境 conda activate 安装核心库 ccxt, requests, websockets pandas, numpy 安装辅助库(按需) ta-lib(技术指标) sqlalchemy(数据库) 验证安装:import 测试 ✅ 环境搭建完成,可以开始写策略了!

这张图把整个流程分成了6步。你跟着走一遍,基本不会出问题。

1.6 避坑指南

环境搭建看着简单,但坑也不少。我把自己踩过的坑列出来,你注意避开:

  • pip和conda混用——我曾经在conda环境里用pip装了个库,结果conda list里看不到,搞得我以为是没装上。后来才知道,conda和pip的包管理是两套体系。建议优先用conda,conda没有的再用pip。
  • Python版本不匹配——ccxt最新版要求Python 3.7+,websockets要求3.6+。你要是用Python 2.7,那基本告别这些库了。我建议统一用3.9,兼容性最好。
  • 网络问题——国内装库有时候会超时。可以换国内镜像源:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ccxt
  • 环境激活后pip install报错——检查一下是不是在虚拟环境里。有时候终端没激活,pip装到base环境里去了。用which python看看路径对不对。

1.7 验证环境是否可用

最后,写个小脚本验证一下:

import ccxt
import requests
import websockets
import pandas as pd
import numpy as np

print("所有库导入成功!")
print(f"ccxt版本: {ccxt.__version__}")
print(f"pandas版本: {pd.__version__}")
print(f"numpy版本: {np.__version__}")

# 测试ccxt能否连接交易所
exchange = ccxt.binance()
markets = exchange.load_markets()
print(f"币安交易对数量: {len(markets)}")

跑一下,如果输出正常,说明环境完全OK。

我的建议:把这个脚本保存成check_env.py,每次新建项目都跑一遍。省得写到一半发现某个库没装,打断思路。

好了,环境搭建就这些内容。说白了就是三步:装Anaconda、建虚拟环境、装库。后面咱们写策略的时候,所有代码都在这个环境里跑,干净又省心。

专注资料整理