4、Python环境搭建:Anaconda安装、Python版本选择、虚拟环境创建、常用库安装

做量化做市,第一件事不是写策略,而是搭环境。

我见过太多人,代码写了一半,发现库版本冲突,或者Python版本不对,整个项目跑不起来。说实话,这种问题最让人头疼。所以这一章,咱们把环境彻底搞定。

4.1 为什么选Anaconda?

Python的发行版很多,但做量化交易,我强烈推荐Anaconda。原因很简单——它把Python、包管理器、常用科学计算库打包在一起了。你装一个,基本就齐活了。

我自己最早用的是原生Python,后来发现装个pandas要手动解决依赖,装个numpy还得编译C扩展……折腾几次后,果断换Anaconda。嗯,省心太多了。

Anaconda的核心优势:

  • 自带conda包管理器,比pip更擅长处理依赖冲突
  • 预装200+常用数据科学库
  • 支持创建隔离的虚拟环境
  • 跨平台(Windows/Mac/Linux)体验一致

4.2 Python版本选择

做量化做市,Python版本不是越新越好。你想想看,很多交易库(比如ccxt、websocket-client)对新版Python的支持往往滞后。我建议选稳定版。

Python版本 推荐度 说明
3.8.x ⭐⭐⭐⭐ 最稳定,几乎所有库都支持
3.9.x ⭐⭐⭐⭐⭐ 我个人推荐,性能有提升,兼容性好
3.10.x ⭐⭐⭐ 部分旧库可能不兼容,需测试
3.11+ ⭐⭐ 新特性多,但生态还不够成熟

我个人习惯用Python 3.9。为什么?因为我在项目中踩过坑——有一次用3.11跑一个老版本的websocket库,直接报错。后来查了半天,发现是asyncio的接口变了。所以,别追新,稳最重要。

4.3 虚拟环境创建

做量化做市,你可能会同时维护多个策略。每个策略依赖的库版本可能不同。这时候,虚拟环境就是你的救命稻草。

说白了,虚拟环境就是给每个项目一个独立的Python“小房间”。里面的库互不干扰。

我的习惯:每个做市策略项目,都单独建一个虚拟环境。命名规则是 mm_策略名,比如 mm_btc_hedge。这样一眼就知道哪个环境对应哪个策略。

创建虚拟环境的命令很简单:

# 创建名为 mm_env 的虚拟环境,指定Python版本为3.9
conda create -n mm_env python=3.9

# 激活环境
conda activate mm_env

# 退出环境
conda deactivate

# 查看所有环境
conda env list

这里要注意一点:激活环境后,你的终端前面会出现 (mm_env) 字样。如果没看到,说明没激活成功。我曾经因为这个疏忽,把库装到了base环境里,结果项目跑起来各种报错……

4.4 常用库安装

做市机器人需要跟交易所打交道、处理数据、做计算。下面这几个库,是标配。

4.4.1 pandas & numpy

这两个是数据处理的基石。pandas处理表格数据,numpy做数值计算。安装很简单:

conda install pandas numpy

用conda装的好处是,它会自动帮你解决依赖。比如pandas依赖numpy,conda会一起装好。如果用pip,有时候会遇到版本不匹配的问题。

4.4.2 ccxt

ccxt是连接交易所的瑞士军刀。它统一了上百家交易所的API接口。你写一套代码,就能对接币安、OKX、Bybit等主流交易所。

pip install ccxt

注意,ccxt更新很频繁。我建议固定版本号,比如:

pip install ccxt==4.0.7

为什么?因为有一次ccxt大版本升级,把某个函数的参数名改了。我的策略代码直接崩了。从那以后,我学乖了——生产环境锁版本。

4.4.3 websocket

做市对实时性要求极高。你不能用HTTP轮询去拿行情,那太慢了。必须用WebSocket,建立长连接,数据实时推送。

pip install websocket-client

这里有个坑:Python有两个常用的WebSocket库——websocket-clientwebsockets。前者是同步的,后者是异步的。做市机器人一般用同步的 websocket-client,因为它更容易控制连接状态。

避坑指南:安装完记得测试一下连接。我曾经遇到过——库装好了,但死活连不上交易所。后来发现是系统缺少openssl的依赖。解决办法:conda install openssl

4.5 环境验证

装完库,别急着写代码。先验证一下环境是否正常。我一般写个简单的测试脚本:

import pandas as pd
import numpy as np
import ccxt
import websocket

print("pandas version:", pd.__version__)
print("numpy version:", np.__version__)
print("ccxt version:", ccxt.__version__)
print("websocket version:", websocket.__version__)

# 测试ccxt连接
exchange = ccxt.binance()
markets = exchange.load_markets()
print(f"成功加载 {len(markets)} 个交易对")

如果所有库都能正常导入,且ccxt能成功加载币安的交易对,那环境就搭好了。

4.6 本章知识体系

下面这张图,帮你理清整个环境搭建的逻辑:

Python环境搭建知识体系 量化做市环境 Anaconda安装 Python 3.9 虚拟环境 conda包管理器 预装200+库 稳定兼容 生态成熟 conda create 环境隔离 常用库:pandas · numpy · ccxt · websocket

这张图把环境搭建的四个核心环节串起来了。从Anaconda安装开始,到Python版本选择,再到虚拟环境创建,最后安装常用库。每一步都环环相扣。

好了,环境搭好了。下一章,咱们开始写真正的做市策略代码。


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