第二章:环境搭建——Python量化环境配置与必备库安装
说实话,很多新手在学量化交易时,第一步就卡住了。
不是算法难,不是策略复杂,而是环境没搭好。我见过太多人,兴致勃勃想跑个回测,结果装库装了三天,最后崩溃了。
今天咱们就把这事一次性搞定。干净、利落、不出错。
2.1 为什么选Python做量化?
你可能想问:为什么量化圈都用Python?
答案很简单——生态。pandas处理时间序列、numpy做矩阵运算、scikit-learn跑机器学习模型、yfinance拉数据。一条龙搞定。
我在2018年刚开始做美股量化时,试过用R、试过用Matlab。最后全换成了Python。为什么?因为社区太强了。你遇到任何问题,99%的概率已经有人踩过坑了。
2.2 Anaconda——量化环境的基础
我个人习惯用Anaconda来管理Python环境。为什么不用原生Python?
你想想看,做量化你要装几十个库。用原生pip一个个装,版本冲突能让你怀疑人生。Anaconda自带conda包管理器,隔离环境、管理版本,省心太多。
- 自带Python解释器,不用单独装
- conda命令比pip更智能,自动处理依赖
- 可以创建多个虚拟环境,互不干扰
安装步骤很简单:去Anaconda官网下载对应系统的安装包,一路默认安装就行。
嗯,这里要注意:安装时勾选"Add Anaconda to my PATH environment variable"。我当年第一次装时没勾,后面每次都要手动找路径,烦死了。
2.3 Jupyter Notebook——交互式开发的利器
Anaconda装好后,Jupyter Notebook就自动有了。你可以在开始菜单找到它,或者在终端输入:
jupyter notebook
浏览器会弹出一个界面。这就是你写量化代码的主战场。
为什么用Jupyter?因为它支持逐行执行、即时反馈。你写一行代码,马上能看到结果。调试策略、可视化数据,比写脚本爽太多了。
2.4 必备库安装——一个都不能少
环境搭好了,接下来装核心库。我建议用conda安装,兼容性最好。
conda install pandas numpy scikit-learn
conda install -c conda-forge yfinance
或者你也可以用pip:
pip install pandas numpy scikit-learn yfinance
下面我逐个说说这些库是干嘛的。
2.4.1 pandas——数据处理的灵魂
做量化,90%的时间都在处理数据。pandas就是干这个的。
它提供了DataFrame结构,你可以把它想象成Excel表格,但比Excel强大一百倍。筛选、合并、分组、时间序列操作,一行代码搞定。
import pandas as pd
# 创建一个简单的DataFrame
data = {'日期': ['2024-01-01', '2024-01-02', '2024-01-03'],
'收盘价': [150.25, 152.10, 149.80]}
df = pd.DataFrame(data)
print(df)
我在项目中遇到过最头疼的事:数据缺失。美股数据偶尔会有空值,pandas的dropna()和fillna()就是救星。
2.4.2 numpy——数值计算的基石
pandas底层就是numpy。它提供多维数组和大量数学函数。
说白了,你要算收益率、波动率、协方差矩阵,都离不开numpy。
import numpy as np
# 计算日收益率
prices = np.array([150.25, 152.10, 149.80])
returns = np.diff(prices) / prices[:-1]
print(returns)
2.4.3 scikit-learn——机器学习的主力
这是咱们课程的核心。scikit-learn封装了几乎所有主流机器学习算法:线性回归、随机森林、SVM、KNN……
而且它的API设计极其统一。你学会一个模型,其他模型上手就很快。
from sklearn.ensemble import RandomForestRegressor
# 初始化模型
model = RandomForestRegressor(n_estimators=100)
# 后面我们会用它来预测股价走势
2.4.4 yfinance——美股数据的入口
做美股量化,数据从哪来?yfinance就是答案。它直接从Yahoo Finance拉数据,免费、实时、覆盖全。
import yfinance as yf
# 下载苹果公司股票数据
aapl = yf.download('AAPL', start='2023-01-01', end='2024-01-01')
print(aapl.head())
你想想看,一行代码就能拿到一年的日线数据。这在十年前想都不敢想。
2.5 验证环境——确保一切就绪
库都装好了,怎么确认没问题?写个简单的测试脚本:
import pandas as pd
import numpy as np
import sklearn
import yfinance as yf
print(f"pandas版本: {pd.__version__}")
print(f"numpy版本: {np.__version__}")
print(f"scikit-learn版本: {sklearn.__version__}")
print(f"yfinance版本: {yf.__version__}")
# 拉取数据测试
data = yf.download('SPY', period='5d')
print("数据拉取成功!")
print(data.tail())
如果没报错,恭喜你,环境搭好了。
2.6 本章知识体系
下面这张图,帮你理清整个环境搭建的逻辑:
这张图很清晰:左边是环境工具,右边是核心库。两者缺一不可。
2.7 写在最后
环境搭建这事,说难不难,说简单也不简单。我见过太多人卡在这一步。
如果你遇到报错,别慌。先看错误信息,再去Stack Overflow搜。99%的问题都能解决。
好了,环境搭好了,下一章咱们就开始真正干活了——拉数据、做分析、建模型。想想就兴奋。
- Anaconda管理Python环境,Jupyter做交互开发
- pandas处理数据、numpy做计算、scikit-learn跑模型、yfinance拉数据
- 用conda安装库,兼容性最好
- 写测试脚本验证环境是否正常
公众号:蓝海资料掘金营,微信deep3321