第一章:Python金融数据分析环境搭建
做量化投资,第一件事不是写策略,而是搭环境。
我见过太多人,策略逻辑想得挺美,结果一跑代码就报错。环境没配好,后面全是坑。所以这一章,咱们把地基打牢。
1.1 Anaconda:量化分析的瑞士军刀
Anaconda是什么?说白了,就是一个Python发行版。它帮你把Python解释器、常用库、包管理工具打包在一起。你装一个Anaconda,就等于装好了大半个量化分析环境。
为什么选Anaconda?
- 自带conda包管理器——比pip好用,尤其处理NumPy、SciPy这些底层库时
- 预装200+常用包——省去一个个安装的麻烦
- 环境隔离——不同项目用不同Python版本,互不干扰
我个人习惯下载64位版本。安装时记得勾选「Add Anaconda to my PATH environment variable」。这一步很多人会忘,结果命令行里打不出conda命令。
安装完成后,打开终端(Windows用Anaconda Prompt),输入:
conda --version
python --version
看到版本号,说明安装成功。
1.2 Jupyter Notebook:策略研究的交互式利器
Jupyter Notebook是量化研究员最常用的工具。它让你把代码、图表、文字说明放在同一个文档里。写策略、做回测、分析结果,一气呵成。
启动方式很简单:
jupyter notebook
浏览器会自动打开一个页面。点「New」→「Python 3」,就能新建一个Notebook。
我会把Notebook分成几个区块:数据获取、因子计算、策略回测、绩效分析。每个区块用Markdown标题隔开。这样回头看时,逻辑特别清晰。
Jupyter有几个快捷键必须记住:
Shift + Enter:运行当前单元格并跳到下一个Ctrl + Enter:运行当前单元格但不跳转Esc + M:把当前单元格变成Markdown格式Esc + B:在当前单元格下方插入新单元格
嗯,这些快捷键用熟了,效率能翻倍。
1.3 核心库安装:Pandas/NumPy/Matplotlib/Scikit-learn
这四个库是量化分析的基石。我按安装顺序来说。
NumPy——数值计算的基础。所有矩阵运算、数学函数都靠它。
conda install numpy
Pandas——数据处理的核心。DataFrame结构专门为金融时间序列设计。
conda install pandas
Matplotlib——画图工具。净值曲线、回撤图、相关性热力图都靠它。
conda install matplotlib
Scikit-learn——机器学习库。做因子筛选、多因子模型时经常用到。
conda install scikit-learn
我曾经遇到过一个问题:用pip安装Scikit-learn,结果和NumPy版本不兼容,跑模型时直接报错。后来改用conda安装,就再没出过问题。conda会自动处理依赖关系,你想想看,省了多少事。
安装完成后,验证一下:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import sklearn
print(np.__version__)
print(pd.__version__)
没报错,就说明环境搭好了。
1.4 数据源接入:聚宽与米筐
做量化策略,数据是命根子。A股市场的数据源,聚宽(JoinQuant)和米筐(RiceQuant)是两家主流平台。
聚宽数据接入
聚宽提供了Python SDK。安装方式:
pip install jqdatasdk
然后注册账号,获取授权码。登录方式:
from jqdatasdk import auth, get_price
auth('你的账号', '你的密码')
# 获取平安银行2023年1月行情数据
df = get_price('000001.XSHE',
start_date='2023-01-01',
end_date='2023-01-31',
frequency='daily',
fields=['open', 'close', 'high', 'low', 'volume'])
print(df.head())
米筐数据接入
米筐的SDK叫rqdatac:
pip install rqdatac
使用方式类似:
import rqdatac as rq
rq.init('你的账号', '你的密码')
# 获取贵州茅台行情
df = rq.get_price('600519.XSHG',
start_date='2023-01-01',
end_date='2023-01-31')
print(df.head())
两个平台我都用过。聚宽的数据更全,米筐的API更简洁。你可以都试试,看哪个顺手。我个人习惯用聚宽做因子研究,米筐做回测验证。
1.5 本章知识体系总览
下面这张图,把本章的核心逻辑串起来了:
这张图展示了环境搭建的四个核心模块。从Anaconda这个基础平台出发,到Jupyter这个交互工具,再到四个核心库,最后连上数据源。每一步都是下一环的前提。
1.6 环境验证:跑一个完整的例子
环境搭没搭好,跑个完整例子就知道了。下面这段代码,把今天装的所有东西都用上了:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 生成模拟的沪深300日收益率数据
np.random.seed(42)
dates = pd.date_range('2023-01-01', '2023-12-31', freq='B')
returns = np.random.randn(len(dates)) * 0.01
# 计算累计净值
nav = (1 + returns).cumprod()
# 画净值曲线
plt.figure(figsize=(10, 6))
plt.plot(dates, nav, label='模拟策略净值', color='#3498db')
plt.title('量化策略净值曲线示例')
plt.xlabel('日期')
plt.ylabel('净值')
plt.legend()
plt.grid(True, alpha=0.3)
plt.show()
print(f'年化收益率: {returns.mean() * 252:.2%}')
print(f'年化波动率: {returns.std() * np.sqrt(252):.2%}')
print(f'夏普比率: {returns.mean() / returns.std() * np.sqrt(252):.2f}')
能跑出图表和数字,说明你的环境已经准备好了。接下来,就可以正式开始策略开发了。
公众号:蓝海资料掘金营,微信deep3321