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

做量化交易也好,挖矿策略回测也罢,说白了就是跟数据打交道。你想想看,没有趁手的工具,再好的策略也跑不起来。这一章,我就带你把环境搭好,把家伙事儿备齐。

我个人习惯,先把Python环境搞定,再装Jupyter Notebook,最后把必备库一个一个装好。别嫌麻烦,这一步稳了,后面写代码才顺手。

2.1 Python环境配置

Python版本怎么选?我建议直接用Python 3.8以上版本。为什么?因为backtrader这个库在3.8以上跑得最稳。我记得有一次帮朋友调试策略,他用的是Python 3.6,结果装backtrader时各种报错,折腾了大半天。后来换成3.9,十分钟搞定。

具体步骤很简单:

  1. 去Python官网下载安装包(python.org)
  2. 安装时记得勾选「Add Python to PATH」
  3. 打开命令行,输入 python --version 验证
小技巧: 我习惯在安装时把路径设短一点,比如 C:\Python39,这样后面找文件方便。

装好之后,建议再装个虚拟环境工具。我用的是 venv,Python自带的,不用额外安装。命令就一行:

python -m venv myenv

激活虚拟环境后,所有库都装在里面,不会跟系统Python打架。这个习惯我保持了好几年,省了不少麻烦。

2.2 Jupyter Notebook安装

Jupyter Notebook这东西,说白了就是一个交互式编程环境。你写一段代码,马上就能看到结果,特别适合做策略回测和数据分析。

安装命令很简单:

pip install jupyter

装完之后,在命令行输入 jupyter notebook,浏览器就会自动打开一个页面。嗯,这里要注意,第一次启动可能会有点慢,别急。

我个人习惯把Notebook文件按策略名称分类存放。比如挖矿策略相关的,我会建一个 mining_strategies 文件夹,里面再按日期细分。这样找历史回测结果时,一目了然。

避坑指南: 我曾经在Jupyter里直接装库,结果跟系统环境冲突,导致Notebook打不开。后来我学乖了,所有库都在虚拟环境里装,再启动Jupyter。记住:先激活虚拟环境,再启动Jupyter

2.3 必备库安装

做挖矿策略回测,有四个库是绕不开的。我按安装顺序列出来:

库名 用途 安装命令
pandas 数据处理,说白了就是表格操作 pip install pandas
numpy 数值计算,矩阵运算的利器 pip install numpy
matplotlib 画图,把数据变成可视化图表 pip install matplotlib
backtrader 回测框架,策略验证的核心 pip install backtrader

你可以一次性装完:

pip install pandas numpy matplotlib backtrader

装完之后,打开Jupyter Notebook,输入下面这段代码测试一下:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import backtrader as bt

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

如果没报错,说明环境搭好了。我在项目中遇到过好几次,明明装好了但导入失败,十有八九是虚拟环境没激活。你检查一下终端前面有没有 (myenv) 这个标识。

核心要点: 这四个库的版本要兼容。我建议用最新稳定版,别追新。比如pandas 1.3.x、numpy 1.21.x、matplotlib 3.4.x、backtrader 1.9.x,这几个版本我实测过,配合得很好。

2.4 知识体系总览

下面这张图,是我自己画的环境搭建知识结构。你看一眼,心里就有数了:

挖矿策略回测环境搭建知识体系 Python环境 Jupyter Notebook 必备库安装 版本选择(3.8+) 虚拟环境(venv) PATH路径配置 交互式编程环境 策略文件分类管理 虚拟环境启动 pandas(数据处理) numpy(数值计算) matplotlib(可视化) backtrader(回测框架) 环境搭建完成 → 开始策略回测之旅

这张图把整个环境搭建的脉络理清了。你照着这个结构一步步来,不会乱。我个人习惯把这张图打印出来贴在工位上,每次搭新环境都看一眼,省得漏步骤。

2.5 验证环境是否可用

库都装好了,怎么确认能不能用?我教你一个笨办法:写一个最简单的回测脚本跑一下。

import backtrader as bt

# 创建一个简单的策略
class TestStrategy(bt.Strategy):
    def next(self):
        pass  # 啥也不干,就测试环境

# 初始化回测引擎
cerebro = bt.Cerebro()
cerebro.addstrategy(TestStrategy)

# 模拟数据
import pandas as pd
import numpy as np
dates = pd.date_range('2020-01-01', periods=100)
data = pd.DataFrame({
    'open': np.random.randn(100) + 100,
    'high': np.random.randn(100) + 101,
    'low': np.random.randn(100) + 99,
    'close': np.random.randn(100) + 100,
    'volume': np.random.randint(1000, 5000, 100)
}, index=dates)

# 喂给回测引擎
data_feed = bt.feeds.PandasData(dataname=data)
cerebro.adddata(data_feed)

# 跑一下
result = cerebro.run()
print("环境验证通过!回测引擎正常运行。")

这段代码跑通了,说明你的环境完全OK。我在项目中遇到过有人卡在这一步,原因是pandas版本太高,跟backtrader不兼容。解决办法很简单:把pandas降到1.3.x版本就行。

我的经验: 每次装完环境,我都会跑一遍这个测试脚本。花两分钟验证,能省后面两小时的排查时间。别偷懒,这一步值得做。

好了,环境搭好了,工具备齐了。接下来你就可以放心地写策略、跑回测、调参数了。记住,环境是地基,地基稳了,楼才能盖得高。


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