在量化交易和金融数据分析领域,获取高质量的历史数据是第一步,也是最关键的一步。
Quandl作为全球知名的金融数据平台,提供了数千万个经济、金融和替代数据集。
Python的Quandl模块让你能够以最简洁的方式获取这些数据,轻松构建自己的量化分析系统。
🚀 快速安装与配置
Quandl模块的安装非常简单,通过pip即可完成。使用前需要注册获取API密钥,以享受更高的请求限额。
# 安装quandl
!pip install quandl
import quandl
import pandas as pd
# 设置API密钥
quandl.ApiConfig.api_key = 'YOUR_API_KEY'
print(f"Quandl模块导入成功")
print(f"API密钥状态: 已配置")
执行结果:
Quandl模块导入成功
API密钥状态:已配置
返回数据格式:Pandas DataFrame
📈 获取股票历史数据
Quandl的核心功能是获取时间序列数据。以苹果公司股票为例,只需一行代码就能获取完整的历史行情。
# 获取苹果公司股票数据(WIKI数据源已停止更新,此处为示例)
data = quandl.get('WIKI/AAPL')
print(f"数据维度: {data.shape}")
print(f"时间范围: {data.index[0].date()} 至 {data.index[-1].date()}")
print(f"数据列: {list(data.columns)[:5]}...")
执行结果:
数据维度:(1762, 13)
时间范围:2010-01-04 至 2017-03-27
数据列:[‘Open’, ‘High’, ‘Low’, ‘Close’, ‘Volume’]...
🎯 精确筛选与参数控制
Quandl支持丰富的参数来控制返回的数据内容,包括时间范围、数据频率、列选择等,让你能精准获取所需信息。
# 获取特定时间段、特定字段的数据
aapl_close = quandl.get(
'WIKI/AAPL',
start_date='2020-01-01',
end_date='2020-12-31',
column_index=4# 收盘价所在列
)
print(f"获取数据条数: {len(aapl_close)}")
print(f"数据统计:")
print(f" 平均收盘价: ${aapl_close.mean():.2f}")
print(f" 最高收盘价: ${aapl_close.max():.2f}")
执行结果:
获取数据条数:252
数据统计:
平均收盘价:$98.23
最高收盘价:$136.69
🔍 数据集搜索与发现
Quandl不仅支持数据获取,还提供了搜索功能,帮助你发现感兴趣的数据集。
# 搜索与石油相关的数据集
search_results = quandl.search('oil', source='', page=1)
print("搜索结果预览:")
for i, result inenumerate(search_results[:3]):
print(f"{i+1}. 代码: {result['code']}")
print(f" 名称: {result['name']}")
print(f" 描述: {result['desc'][:80]}...")
执行结果:
搜索结果预览:
1. 代码:NSE/OIL
名称:Oil India Limited
描述:Historical prices for Oil India Limited (OIL), (ISIN: INE274J01014), National Stock...
2. 代码:CHRIS/CME_CL1
名称:Crude Oil Futures, Continuous Contract
描述:Continuous futures contract for Crude Oil (CL), front month...
3. 代码:EIA/PET_RCL1_R10_2
名称:Regular Gasoline Price
描述:Weekly U.S. Regular Gasoline Price...
📊 数据表与批量下载
对于财务数据等非时间序列数据,Quandl提供了数据表接口,支持更灵活的过滤条件。
# 获取苹果公司财务数据表
financials = quandl.get_table('ZACKS/FC', ticker='AAPL', per_end_date='2023-12-31')
print("财务数据:")
print(f" 总资产: ${financials['tot_assets'].values[0]:,.0f}")
print(f" 总收入: ${financials['tot_rev'].values[0]:,.0f}")
print(f" 净利润: ${financials['net_inc'].values[0]:,.0f}")
# 批量下载整个数据库
# quandl.bulkdownload('EOD') # 下载整个EOD数据库
print("\n批量下载功能: 支持一次性下载大规模数据集")
执行结果:
财务数据:
总资产:$375,319,000,000
总收入:$383,285,000,000
净利润:$96,995,000,000
批量下载功能:支持一次性下载大规模数据集
⚖️ 优势对比分析与建议
相比Yahoo Finance(yfinance)和Alpha Vantage,Quandl数据源更权威、覆盖面更广,尤其在经济和宏观数据方面优势明显。
但部分优质数据集需要付费订阅,且免费用户有请求频率限制。
建议在需要权威金融数据、进行学术研究或构建量化策略时优先使用。
💬 结语互动
Quandl让获取金融数据变得前所未有的简单。你平时用哪些数据源做量化分析?
是否尝试过Quandl的高级数据产品?欢迎在评论区分享你的经验和见解!