环境搭建与工具准备:Python、Pandas、NumPy、Matplotlib、Backtrader等库的安装与配置
做量化投资,说白了就是跟数据打交道。你想想看,没有趁手的工具,再好的策略也跑不起来。这一章,我就带你把这些家伙什儿都备齐了。
我个人习惯用 Anaconda 来管理 Python 环境。为什么?因为它省心。你不需要一个个去装库,它自带了一大堆常用的科学计算包。我刚开始做量化那会儿,手动装库装到崩溃,依赖冲突搞得我想砸电脑。后来用了 Anaconda,嗯,真香。
Python 环境安装
先去 Anaconda 官网 下载对应你操作系统的版本。我建议选 Python 3.8 以上的版本,太老的版本有些新库不支持。
安装的时候有个小细节:记得勾选「Add Anaconda to my PATH environment variable」。虽然安装文档说不推荐,但我个人经验告诉你,勾上能省很多后续的麻烦。
创建虚拟环境
为什么要搞虚拟环境?说白了就是隔离。你同时做几个项目,每个项目依赖的库版本可能不一样。虚拟环境能让它们互不干扰。
# 创建一个名为 quant_env 的环境,指定 Python 版本
conda create -n quant_env python=3.9
# 激活环境
conda activate quant_env
# 退出环境
conda deactivate
我一般会给每个策略项目单独建一个环境。比如这个宽基指数增强策略,我就专门建了一个环境,里面只装它需要的库。这样万一哪个库升级出问题了,不会影响到其他项目。
核心库安装
好,环境有了,接下来装核心库。我们做量化分析,离不开这几个家伙:
| 库名 | 用途 | 安装命令 |
|---|---|---|
| Pandas | 数据处理、时间序列分析 | conda install pandas |
| NumPy | 数值计算、矩阵运算 | conda install numpy |
| Matplotlib | 数据可视化、画图 | conda install matplotlib |
| Backtrader | 回测框架 | pip install backtrader |
| SciPy | 科学计算、优化算法 | conda install scipy |
| statsmodels | 统计模型、回归分析 | conda install statsmodels |
验证安装
装完了别急着走,先验证一下。我习惯写个简单的测试脚本:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import backtrader as bt
import scipy
import statsmodels
print(f"Pandas 版本: {pd.__version__}")
print(f"NumPy 版本: {np.__version__}")
print(f"Backtrader 版本: {bt.__version__}")
print(f"SciPy 版本: {scipy.__version__}")
print(f"statsmodels 版本: {statsmodels.__version__}")
# 简单测试:生成随机数据并画图
data = np.random.randn(100)
plt.plot(data)
plt.title("测试:随机数据")
plt.show()
如果都能正常运行,没有报错,那就说明环境搭好了。我曾经遇到过一次,装完 Backtrader 后导入报错,查了半天发现是 Python 版本太高,Backtrader 对 3.10 以上支持不太好。所以如果你用 Python 3.9,基本稳得很。
Backtrader 快速上手
Backtrader 是我们回测的主力工具。它的核心思想很简单:你定义策略,它帮你跑历史数据,然后告诉你赚了还是亏了。
一个最基本的回测流程是这样的:
import backtrader as bt
# 1. 创建大脑(Cerebro)
cerebro = bt.Cerebro()
# 2. 加载数据
data = bt.feeds.YahooFinanceData(dataname='AAPL', fromdate='2020-01-01', todate='2023-12-31')
cerebro.adddata(data)
# 3. 添加策略
class MyStrategy(bt.Strategy):
def next(self):
# 这里写你的交易逻辑
pass
cerebro.addstrategy(MyStrategy)
# 4. 设置初始资金
cerebro.broker.setcash(100000.0)
# 5. 运行回测
print(f'初始资金: {cerebro.broker.getvalue():.2f}')
cerebro.run()
print(f'最终资金: {cerebro.broker.getvalue():.2f}')
你看,就这么几步。Cerebro 是大脑,负责调度一切。数据喂进去,策略写进去,它自动帮你跑完整个回测过程。
数据源配置
做宽基指数增强,我们需要指数成分股的数据。我个人习惯用以下几个数据源:
- Yahoo Finance:免费,但有时不稳定,适合快速测试
- AKShare:国产免费库,A股数据很全,推荐
- Tushare:专业级数据,部分需要积分,但质量高
- 本地CSV:最稳的方式,自己维护数据文件
安装 AKShare 很简单:
pip install akshare
用它获取沪深300成分股数据:
import akshare as ak
# 获取沪深300成分股
stock_300 = ak.index_stock_cons_csindex("000300")
print(stock_300.head())
可视化工具配置
Matplotlib 是我们画图的主力。但默认的图表风格嘛...说实话有点丑。我一般会调整一下:
import matplotlib.pyplot as plt
# 设置中文字体,防止乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 设置风格
plt.style.use('seaborn-v0_8-darkgrid')
# 设置图片大小
plt.rcParams['figure.figsize'] = (12, 6)
这样画出来的图,至少能看了。后面我们做净值曲线、回撤图的时候,这些配置会省你很多事。
本章知识体系
我把这一章的核心逻辑画了张图,你一看就明白:
这张图把整个环境搭建的脉络理清楚了。从 Python 环境开始,到核心库、回测框架、数据源,一层层搭起来。你按这个顺序来,基本不会出问题。
好了,环境搭好了,工具备齐了。下一章我们就开始真正动手,用这些工具来构建我们的宽基指数增强策略。记住,工欲善其事,必先利其器。这一步虽然枯燥,但值得你花时间做好。