第2章:Python量化环境搭建
说实话,做量化交易这么多年,我见过太多人一上来就急着写策略。结果呢?环境没配好,装个库报错半天,数据源连不上,白白浪费一整天。嗯,这章我们就踏踏实实把地基打牢。
2.1 Anaconda与Jupyter Notebook安装
我个人习惯用Anaconda来管理Python环境。为什么?因为它把Python解释器、常用库、还有Jupyter Notebook都打包好了。你不需要一个个去装,省心。
核心要点:Anaconda = Python + 常用科学计算库 + 包管理器(conda) + Jupyter
安装步骤其实很简单:
- 去Anaconda官网下载对应系统的安装包(Windows/Mac/Linux)
- 双击安装,一路默认就行
- 安装完成后,打开终端或Anaconda Prompt,输入
conda list验证
我曾经帮一个学员排查问题,他装完Anaconda后死活打不开Jupyter。最后发现是安装路径有中文。嗯,这里要注意:安装路径不要有中文和空格,这是老生常谈的坑了。
Jupyter Notebook怎么启动?很简单:
# 在终端输入
jupyter notebook
浏览器会自动弹出来。你想想看,一个网页里能写代码、能跑结果、还能加注释,是不是比黑乎乎的终端舒服多了?
小技巧:我习惯在项目根目录下启动Jupyter,这样文件管理更清晰。另外,Jupyter Lab是Notebook的升级版,界面更现代化,推荐试试。
2.2 必备库安装与验证
做量化,有几个库是绕不开的。说白了,它们就是你的工具箱。我们来一个一个装。
2.2.1 Pandas 和 NumPy
这两个是数据处理的基石。NumPy管数值计算,Pandas管表格数据。我每天跟它们打交道,就像吃饭喝水一样自然。
# 用conda安装(推荐)
conda install pandas numpy
# 或者用pip
pip install pandas numpy
验证一下:
import pandas as pd
import numpy as np
print(pd.__version__) # 比如 2.0.3
print(np.__version__) # 比如 1.24.3
2.2.2 Scikit-learn
机器学习的瑞士军刀。分类、回归、聚类、特征工程,它都有。我在做因子筛选时经常用它。
conda install scikit-learn
# 验证
from sklearn import datasets
print(sklearn.__version__)
2.2.3 XGBoost 和 LightGBM
这两个是集成学习的王牌。XGBoost老牌劲旅,LightGBM后起之秀。我个人习惯两个都装,哪个好用用哪个。
注意:XGBoost在Windows上安装有时会报错。我曾经遇到过编译问题,后来用conda安装就解决了。建议优先用conda。
conda install -c conda-forge xgboost lightgbm
# 验证
import xgboost as xgb
import lightgbm as lgb
print(xgb.__version__)
print(lgb.__version__)
为什么强调验证?因为装完不等于能用。我见过太多人装完库,import时报错,然后一脸懵。所以养成习惯:装一个,验一个。
2.3 数据源获取简介
做量化,数据是命根子。没有数据,再牛的模型也是空中楼阁。国内常用的数据源有两个:Tushare和AKShare。
2.3.1 Tushare
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='20230101', end_date='20231231')
print(df.head())
避坑指南:我曾经因为token过期,跑了一整夜的策略结果全是空数据。建议把token写在配置文件里,定期检查。
2.3.2 AKShare
AKShare是后起之秀,完全免费,数据源覆盖广。从股票、基金到期货、宏观经济,应有尽有。我最近越来越喜欢用它。
# 安装
pip install akshare
# 使用示例
import akshare as ak
# 获取A股实时行情
df = ak.stock_zh_a_spot_em()
print(df.head())
你想想看,一个免费接口能拿到这么多数据,是不是很香?但要注意,免费意味着稳定性可能不如付费接口。所以我的建议是:开发阶段用AKShare,生产环境用Tushare或付费数据源。
2.4 本章知识体系
为了让你更直观地理解本章内容,我画了一张图:
这张图把本章的核心内容串起来了。你从中心往外看,先装Anaconda和Jupyter,再装必备库,最后搞定数据源。每一步都有坑,但按我说的来,基本不会出问题。
最后说一句:环境搭建这事,看着简单,但真出问题能卡你半天。我建议你装完每一步都验证一下,别等到写策略了才发现库没装对。磨刀不误砍柴工,对吧?
公众号:蓝海资料掘金营,微信deep3321