第一章: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 本章知识体系总览

下面这张图,把本章的核心逻辑串起来了:

Python量化分析环境搭建知识体系 量化分析环境 Anaconda 安装配置 Jupyter Notebook 核心库安装 数据源接入 conda包管理 环境隔离 NumPy Pandas Matplotlib Scikit-learn 聚宽 jqdatasdk 米筐 rqdatac

这张图展示了环境搭建的四个核心模块。从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