第1章:Python量化环境搭建

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

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

这一章,我就带你一步步把Python量化环境整明白。咱们的目标是:装好就能用,跑起来不报错。

1.1 Anaconda安装:量化人的“瑞士军刀”

Anaconda是什么?你可以把它理解成一个Python的“全家桶”。它自带Python解释器、包管理器conda,还有一大堆常用的科学计算库。

我个人习惯用Anaconda来管理Python环境。为什么?因为做量化交易,你经常需要在不同项目间切换。有的项目用pandas 1.0,有的用2.0,用conda创建虚拟环境,互不干扰。

安装步骤:

  1. 去Anaconda官网下载对应系统的安装包(Windows/Mac/Linux)
  2. 双击安装,一路默认选项就行
  3. 安装完成后,打开终端(或Anaconda Prompt),输入 conda --version 验证

小技巧:安装时记得勾选“Add Anaconda to my PATH environment variable”。虽然安装程序会提醒你不推荐,但我建议勾上。省得后面每次都要手动激活环境。

安装完Anaconda,你其实已经拥有了一个基础的量化环境。但别急,我们还需要配置Jupyter Notebook——这才是我们写策略的主战场。

3.2 Jupyter Notebook配置:交互式开发的利器

Jupyter Notebook,说白了就是一个在浏览器里写代码的工具。它最大的好处是:你可以一段一段地跑代码,随时看结果。这对量化分析来说太方便了。

你想想看,你写一个策略,需要先加载数据,然后做回测,最后看收益曲线。用Jupyter,每一步都能看到中间结果,哪里出问题一目了然。

启动Jupyter:

# 在终端输入
jupyter notebook

运行后,浏览器会自动打开一个页面。默认端口是8888。如果端口被占用,它会自动换一个。

注意:我曾经遇到过Jupyter启动后页面空白的情况。后来发现是浏览器缓存问题。清一下缓存,或者换个浏览器就好了。

我个人习惯在Jupyter里装几个插件,让体验更好:

  • jupyter_contrib_nbextensions:提供代码折叠、目录生成等功能
  • autopep8:自动格式化代码,保持整洁

安装命令:

pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user

3.3 pandas/numpy安装:数据处理的双引擎

做量化交易,你每天要处理海量的行情数据。pandas和numpy就是处理这些数据的核心工具。

pandas:专门处理表格数据。比如你从交易所拿到的分钟K线,就是一个典型的DataFrame。

numpy:提供高效的数组运算。回测时计算收益率、波动率,底层全靠它。

安装很简单:

# 用conda安装(推荐)
conda install pandas numpy

# 或者用pip
pip install pandas numpy

避坑指南:我曾经在Windows上直接用pip安装pandas,结果报了一堆编译错误。后来换成conda安装,一次成功。所以,能用conda就别用pip,尤其是在Windows上。

验证安装:

import pandas as pd
import numpy as np

print(pd.__version__)
print(np.__version__)

如果输出版本号,说明安装成功。

3.4 tushare/akshare数据接口:获取行情数据

环境搭好了,数据从哪来?两个最常用的免费接口:tushare和akshare。

接口 特点 适用场景
tushare 老牌接口,数据全面,但需要注册获取token 股票、基金、期货等基础行情
akshare 开源免费,无需注册,覆盖范围广 ETF、期权、宏观经济数据

安装:

pip install tushare akshare

使用示例:

import tushare as ts
import akshare as ak

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

# 获取上证50ETF的日线数据
df_50etf = pro.fund_daily(ts_code='510050.SH', start_date='20240101', end_date='20240301')
print(df_50etf.head())

# akshare直接获取
df_50etf_ak = ak.fund_etf_hist_em(symbol="510050", period="daily", start_date="20240101", end_date="20240301", adjust="qfq")
print(df_50etf_ak.head())

注意:tushare的token是个人标识,不要泄露。我见过有人把token直接贴在代码里发到GitHub上,结果被别人盗用,导致接口被封。

知识体系总览

下面这张图,帮你理清本章的知识结构:

Python量化环境 Anaconda安装 Jupyter Notebook pandas/numpy tushare / akshare conda虚拟环境 交互式开发 DataFrame/数组 行情数据获取 图:Python量化环境搭建知识体系

嗯,到这里,你的Python量化环境就基本搭好了。Anaconda管理环境,Jupyter写代码,pandas/numpy处理数据,tushare/akshare获取行情。这套组合拳,足够应付大部分量化场景了。

环境搭好只是第一步。下一章,我们会真正开始接触ETF做市的核心逻辑。到时候,这些工具都会派上用场。


公众号:蓝海资料掘金营,微信deep3321