第二章:数据获取准备——Python环境搭建与数据源选择

做量化投资,说白了就是跟数据打交道。没有数据,再牛的策略也是空中楼阁。

这一章,咱们先把地基打牢。我会带你一步步搭好Python环境,装上两个最常用的金融数据库——akshare和tushare。最后聊聊数据源怎么选,这里头有不少坑,我当年都踩过。

2.1 Python环境搭建——别小看这一步

我个人习惯用Anaconda来管理Python环境。为什么?因为它自带了一堆科学计算库,省得你一个个装。

你想想看,要是装个pandas都得折腾半天,那还怎么搞量化?

推荐版本:Python 3.8 或 3.9。别追新,稳定第一。

安装步骤其实很简单:

  1. 去Anaconda官网下载对应系统的安装包
  2. 一路默认安装,记得勾选「Add Anaconda to my PATH environment variable」
  3. 打开终端或Anaconda Prompt,输入 python --version 确认安装成功

嗯,这里要注意:如果你用的是Mac或Linux,建议用 conda create -n quant python=3.9 创建一个独立的量化环境。我在项目中遇到过好几次,因为库版本冲突导致整个环境崩掉,那叫一个头疼。

2.2 akshare库——免费且强大的数据利器

akshare这个库,我真是越用越喜欢。它把国内主流金融数据源都整合到了一起,而且完全免费。

安装命令:

pip install akshare --upgrade

为什么要加 --upgrade?因为akshare更新特别频繁,有时候接口会变。我曾经因为没升级,跑了一晚上的策略,结果发现数据全是错的……从那以后,我每次用之前都会先升级一下。

来看看怎么用:

import akshare as ak

# 获取北向资金流向数据
north_flow = ak.stock_hsgt_north_net_flow_in_em(symbol="北上")
print(north_flow.head())

# 获取个股北向资金持仓
stock_north = ak.stock_hsgt_individual_em(stock="600519")
print(stock_north.head())

你看,两行代码就能拿到北向资金数据。akshare的接口命名很直观,基本一看就知道是干嘛的。

小技巧:akshare返回的数据格式是pandas DataFrame,可以直接用pandas做分析,非常方便。

2.3 tushare库——专业玩家的选择

tushare跟akshare不太一样。它更偏向专业用户,数据质量高,但需要注册获取token。

安装:

pip install tushare

使用前要先注册:

import tushare as ts

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

# 初始化pro接口
pro = ts.pro_api()

# 获取北向资金持股明细
north_hold = pro.hsgt_hold_detail(trade_date='20250110')
print(north_hold.head())

我个人习惯把token存在环境变量里,而不是直接写在代码中。这样既安全,又方便切换账号。

注意:tushare的免费版有调用频率限制,每分钟最多200次。如果策略需要高频数据,建议付费升级。

2.4 数据源选择策略——怎么选最合适?

这个问题,我当年纠结了很久。后来总结出一个原则:看场景选工具

下面这张图是我自己梳理的决策逻辑:

数据源选择决策流程图 开始选择数据源 需要实时数据? (盘中交易) 推荐:akshare 免费、更新快 需要历史高频? (分钟级数据) 推荐:tushare 数据质量高 两者皆可,看个人习惯

说白了,选数据源就三个维度:

  • 实时性要求:做盘中交易选akshare,它更新快
  • 数据精度要求:做回测研究选tushare,它历史数据更全
  • 成本预算:免费先用akshare,不够用了再上tushare付费版

我自己的做法是:两个库都装。平时用akshare做快速验证,正式策略用tushare。这样既灵活又保险。

我的建议:刚开始学北向资金筛选,先用akshare就够了。等策略跑通了,再考虑用tushare做精细化回测。

2.5 避坑指南——我踩过的那些坑

做数据获取,最怕的就是数据源突然挂了。我曾经有一次,凌晨跑策略,结果akshare接口返回空数据,整个策略白跑了一晚上。

从那以后,我养成了几个习惯:

  1. 数据缓存:每次获取的数据存一份本地CSV,万一接口挂了还能用缓存
  2. 异常处理:代码里加try-except,接口报错时自动切换备用数据源
  3. 定时检查:每周跑一次数据完整性检查,确保数据没断档

嗯,这些经验都是用真金白银换来的。你想想看,要是因为数据问题导致策略误判,那损失可就大了。

2.6 本章小结

这一章,咱们把数据获取的基础打好了:

  • Python环境搭建——Anaconda + Python 3.9
  • akshare安装与使用——免费、更新快、适合实时数据
  • tushare安装与使用——专业、数据质量高、适合回测
  • 数据源选择策略——看场景选工具,两个都装最保险

下一章,咱们就要开始真正的北向资金数据清洗和分析了。到时候,这些基础工作会让你事半功倍。


专注资料整理