第1章:Python金融分析环境搭建

做量化交易,第一件事不是写策略,而是搭环境。

我见过太多人,策略逻辑想得挺漂亮,结果一跑代码就报错——不是库版本冲突,就是API连不上。说白了,环境没搭好,后面全是坑。

这一章,咱们就把地基打牢。我会带着你一步步装好Anaconda、玩转Jupyter Notebook、复习三大件(NumPy/Pandas/Matplotlib),再聊聊国内常用的金融数据接口。

本章核心目标:让你能在30分钟内,从零搭建一个可用的量化分析环境。

1.1 Anaconda安装与配置

Anaconda是什么?简单说,它是一个Python发行版,帮你把Python解释器、常用库、包管理器打包在一起。你不需要一个个去pip安装,省心很多。

我个人习惯用Anaconda来管理多个Python环境。比如做回测用一个环境,做机器学习用另一个,互不干扰。

安装步骤

  1. 去官网下载Anaconda(选Python 3.9+版本,别选太老的)
  2. 安装时勾选「Add Anaconda to my PATH environment variable」
  3. 安装完成后,打开终端(Windows用Anaconda Prompt)
  4. 输入 conda --version 验证安装

小技巧:我建议你创建一个独立的量化环境,别把东西都装在base里。

conda create -n quant python=3.9
conda activate quant

避坑指南:我曾经在base环境里装了太多包,结果某次更新NumPy时把pandas搞崩了。从那以后,每个项目我都单独建环境。

1.2 Jupyter Notebook使用技巧

Jupyter Notebook是量化分析的神器。你想想看,写一段代码、立刻看到结果、还能加注释和图表,多方便。

启动方式很简单:在终端输入 jupyter notebook,浏览器就会自动打开。

几个我常用的快捷键

快捷键 功能
Shift + Enter 运行当前单元格并跳到下一个
Ctrl + Enter 运行当前单元格但不跳转
A / B 在上方/下方插入新单元格
DD 删除当前单元格
M 切换到Markdown模式(写注释用)

核心技巧:用Markdown单元格写策略思路,用代码单元格写实现。这样你的Notebook就是一份可执行的策略文档。

1.3 NumPy/Pandas/Matplotlib基础回顾

这三样东西,是量化分析的「三驾马车」。我每天写策略都离不开它们。

NumPy:数值计算的基础

说白了,NumPy就是Python里的数组工具。它比Python原生的列表快得多,因为底层是C写的。

import numpy as np

# 创建一个数组
prices = np.array([100, 102, 101, 105, 108])
returns = np.diff(prices) / prices[:-1]
print(returns)  # 计算收益率

个人经验:做因子计算时,尽量用NumPy的向量化操作,别用for循环。速度能差几十倍。

Pandas:数据处理的核心

Pandas的DataFrame,你可以把它想象成Excel表格,但功能强大多了。

import pandas as pd

# 创建一个时间序列
dates = pd.date_range('2024-01-01', periods=5, freq='D')
data = pd.DataFrame({
    'close': [100, 102, 101, 105, 108],
    'volume': [10000, 12000, 11000, 15000, 13000]
}, index=dates)

print(data.head())

Matplotlib:可视化利器

画图是量化分析里最直观的验证方式。我习惯用Matplotlib来快速看数据分布。

import matplotlib.pyplot as plt

plt.plot(data.index, data['close'])
plt.title('价格走势')
plt.xlabel('日期')
plt.ylabel('收盘价')
plt.show()

注意:如果在Jupyter里画图,记得加一行 %matplotlib inline,否则图不会显示。

1.4 金融数据API接口介绍

做量化,数据是命根子。没有数据,策略就是空中楼阁。

国内常用的数据接口,我主要用两个:Tushare和JoinQuant。

Tushare

Tushare是老牌的数据接口,数据全、更新快。但需要注册获取token。

import tushare as ts

# 设置token(需要去官网注册)
ts.set_token('你的token')
pro = ts.pro_api()

# 获取日线数据
df = pro.daily(ts_code='000001.SZ', start_date='20240101', end_date='20240131')
print(df.head())

小建议:Tushare的token要保管好,别硬编码在代码里。我习惯用环境变量来存。

JoinQuant(聚宽)

聚宽不仅提供数据,还有在线回测平台。适合快速验证策略想法。

# 聚宽的数据获取方式(在聚宽平台内使用)
from jqdata import *

# 获取平安银行的历史数据
df = get_price('000001.XSHE', start_date='2024-01-01', end_date='2024-01-31')
print(df.head())

对比总结:

特性 Tushare JoinQuant
数据范围 股票、期货、基金、宏观 股票、期货、基金
使用方式 本地调用 平台内使用
免费额度 积分制,基础免费 有一定免费额度
适合场景 本地回测、研究 在线回测、快速验证

本章知识体系

下面这张图,帮你理清本章的核心脉络:

Python金融分析环境搭建 Anaconda Jupyter Notebook 三大件 数据接口 环境管理 包管理 交互式编程 Markdown+代码 NumPy数组计算 Pandas数据处理 Matplotlib可视化 Tushare JoinQuant 目标:30分钟搭建可用量化分析环境

嗯,这一章的内容就到这里。环境搭好了,后面咱们才能安心搞策略。

蓝海数据掘金营,专注资料整理