第二章 环境搭建:工欲善其事,必先利其器
做量化交易也好,挖矿策略回测也罢,说白了就是跟数据打交道。你想想看,没有趁手的工具,再好的策略也跑不起来。这一章,我就带你把环境搭好,把家伙事儿备齐。
我个人习惯,先把Python环境搞定,再装Jupyter Notebook,最后把必备库一个一个装好。别嫌麻烦,这一步稳了,后面写代码才顺手。
2.1 Python环境配置
Python版本怎么选?我建议直接用Python 3.8以上版本。为什么?因为backtrader这个库在3.8以上跑得最稳。我记得有一次帮朋友调试策略,他用的是Python 3.6,结果装backtrader时各种报错,折腾了大半天。后来换成3.9,十分钟搞定。
具体步骤很简单:
- 去Python官网下载安装包(python.org)
- 安装时记得勾选「Add Python to PATH」
- 打开命令行,输入
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 文件夹,里面再按日期细分。这样找历史回测结果时,一目了然。
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) 这个标识。
2.4 知识体系总览
下面这张图,是我自己画的环境搭建知识结构。你看一眼,心里就有数了:
这张图把整个环境搭建的脉络理清了。你照着这个结构一步步来,不会乱。我个人习惯把这张图打印出来贴在工位上,每次搭新环境都看一眼,省得漏步骤。
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