2. 开发环境搭建:Anaconda安装与配置、Jupyter Notebook使用、Pandas与NumPy库安装、Tushare/Akshare数据接口注册
说实话,做量化交易这件事,很多人一上来就急着写策略、跑回测。但我个人的经验是——先把厨房收拾利索了,再想着炒菜。环境搭建这一步看似基础,但我在项目里见过太多因为环境不一致导致的诡异bug。嗯,咱们今天就把这事一次性搞定。
本章核心目标:搭建一套完整的Python量化开发环境,确保你能顺利获取数据、处理数据、运行回测。
2.1 Anaconda:量化交易者的瑞士军刀
为什么选Anaconda?说白了,它帮你把Python解释器、常用科学计算库、包管理器全打包好了。你不需要一个个去pip安装,省心很多。
安装步骤:
- 去Anaconda官网下载对应系统的安装包(我建议选Python 3.9+版本)
- 双击安装,一路默认即可。但有一个坑——安装路径不要有中文和空格。我曾经因为路径里带了个中文,折腾了一下午才找到原因。
- 安装完成后,打开终端(Windows用Anaconda Prompt),输入
conda --version验证
小技巧:安装时勾选"Add Anaconda to my PATH environment variable",这样你可以在任何终端直接使用conda命令。
2.2 创建独立的量化交易环境
我个人习惯是每个项目建一个独立环境。为什么?你想想看,不同项目依赖的库版本可能冲突,混在一起迟早出事。
# 创建环境
conda create -n quant_env python=3.9
# 激活环境
conda activate quant_env
# 以后想退出
conda deactivate
环境名我取的是 quant_env,你可以按自己喜好来。但建议别用中文,终端对中文的支持你懂的……
2.3 Jupyter Notebook:交互式开发的利器
做量化研究,Jupyter Notebook几乎是标配。它让你能边写代码边看结果,还能加注释、画图表。我大部分策略的原型都是在Notebook里完成的。
安装与启动:
# 在quant_env环境下安装
conda install jupyter notebook
# 启动
jupyter notebook
启动后浏览器会自动打开,默认端口是8888。如果端口被占用,它会自动切换到8889,别慌。
注意:Notebook里的代码是按单元格执行的。如果你改了前面的变量,记得重新运行那个单元格,否则后面的代码可能用的是旧值。这个坑我踩过不止一次。
2.4 Pandas与NumPy:量化分析的两大基石
做量化交易,你每天打交道最多的就是这两个库。NumPy负责数值计算,Pandas负责数据处理。说白了,一个管"算",一个管"表"。
安装命令:
conda install pandas numpy
验证是否安装成功:
import pandas as pd
import numpy as np
print(pd.__version__)
print(np.__version__)
如果没报错,说明安装成功。我一般习惯用 pd 和 np 作为别名,行业惯例,大家都这么写。
核心知识点:Pandas的DataFrame是二维表格结构,天然适合存储股票行情数据。NumPy的数组运算速度比Python原生列表快几十倍,回测时你就知道它的好了。
2.5 数据接口注册:Tushare与Akshare
做量化交易,数据是命根子。没有数据,策略就是空中楼阁。国内常用的免费数据接口有两个:Tushare和Akshare。
2.5.1 Tushare注册与使用
Tushare是老牌数据接口,数据质量高,但需要注册获取token。
- 访问Tushare官网,用手机号注册
- 登录后,在个人主页找到"接口TOKEN"
- 复制token,安装tushare库:
pip install tushare
import tushare as ts
# 设置token
ts.set_token('你的token')
# 初始化接口
pro = ts.pro_api()
# 获取股票日线数据
df = pro.daily(ts_code='000001.SZ', start_date='20240101', end_date='20240301')
print(df.head())
避坑指南:Tushare的token不要硬编码在代码里。我习惯把它存在环境变量或者配置文件中,防止不小心上传到GitHub泄露。
2.5.2 Akshare注册与使用
Akshare是完全免费的,不需要注册,直接pip安装就能用。适合新手快速上手。
pip install akshare
import akshare as ak
# 获取A股日线数据
df = ak.stock_zh_a_hist(symbol="000001", period="daily",
start_date="20240101", end_date="20240301")
print(df.head())
两个接口各有优劣。Tushare数据更规范,但有限流;Akshare完全免费,但偶尔接口会变动。我个人建议:研究阶段用Akshare,正式回测用Tushare。
2.6 本章知识体系总览
下面这张图帮你理清整个环境搭建的逻辑脉络:
2.7 环境验证:跑通第一个量化示例
环境搭好了,咱们跑个小例子验证一下。这段代码会从Akshare获取平安银行的历史数据,然后计算5日均线:
import pandas as pd
import numpy as np
import akshare as ak
# 获取数据
df = ak.stock_zh_a_hist(symbol="000001", period="daily",
start_date="20240101", end_date="20240301")
# 计算5日均线
df['MA5'] = df['收盘'].rolling(window=5).mean()
# 查看结果
print(df[['日期', '收盘', 'MA5']].head(10))
如果顺利跑通,恭喜你——环境搭建完成,可以正式开始量化之旅了。
常见问题:如果报错 ModuleNotFoundError,说明库没装对。检查一下你当前激活的是不是 quant_env 环境。用 conda info --envs 查看当前环境列表,带星号的就是当前环境。
好了,环境这块就说到这。记住一句话:环境搭得好,回测没烦恼。后面咱们就要开始真正写策略了,到时候你会发现,今天花的时间都是值得的。