用 Python 获取
免费股票数据
把股票价格读入 pandas,比较免费数据源,并在开发前核对时间戳、复权方式、调用限额和使用许可。
核心摘要
选择文档清晰的 API 或 SDK,把 JSON 读入 pandas,并在转换前保存原始响应。
免费套餐通常伴随延迟行情、日线数据、调用上限、较少交易所覆盖或非商业条款。
检查时间戳、时区、拆股分红复权、代码格式、空值和重复记录。
为 Python 选择免费股票数据源
先确定项目需要的数据形态,而不是先选库。历史研究需要稳定的 OHLCV 与公司行动数据;看板需要最新报价和明确时效;选股则需要基本面与一致的标识符。
适合需要稳定 JSON、清晰字段、API Key 和明确限额的项目。优先选择提供时间戳与复权说明的来源。
适合 Notebook 和原型,能减少配置,但其底层端点可能变化,因此要锁定版本并测试返回列。
CSV 适合交换数据和一次性分析,Parquet 更适合带类型、按分区存储的历史数据。无论哪种格式,清洗前都应保留原始来源文件。
用一个模块负责拉取和标准化,另一个模块计算指标或模型。这样供应商变化更容易测试,Notebook 也更容易复现。
Python 示例:把价格读入 pandas
供应商无关的写法是用 requests 请求数据,再用 pandas 标准化。请按所选供应商文档替换端点与字段名。
import os
import requests
import pandas as pd
url = "https://api.example.com/v1/daily"
params = {"symbol": "AAPL", "apikey": os.environ["STOCK_API_KEY"]}
response = requests.get(url, params=params, timeout=20)
response.raise_for_status()
rows = response.json()["data"]
df = pd.DataFrame(rows)
df["date"] = pd.to_datetime(df["date"], utc=True)
df = df.sort_values("date").drop_duplicates("date")
print(df[["date", "open", "high", "low", "close", "volume"]].tail())
| 步骤 | 为什么重要 | 最低检查项 |
|---|---|---|
| 请求 | 超时和 HTTP 错误处理可避免静默失败。 | 状态码与供应商错误信息。 |
| 标准化 | 稳定列名可隔离分析逻辑与供应商格式。 | 类型、UTC 日期、数值列。 |
| 验证 | 错误记录可能生成看似可信的错误图表。 | 顺序、重复、空值、价格边界。 |
对于重复运行的任务,可按主要查询方式把标准化数据写入 market/symbol/year 或 market/date 等分区。同时维护清单,记录供应商、参数、采集时间、字段版本、行数和校验值。每次更新都重新拉取一段近期重叠区间,以确定性规则替换迟到修订的数据。
分析前验证免费股票数据
结合交易时段和预期延迟检查最新时间戳。周末和休市日并不代表数据缺失。
确认收盘价是否针对拆股与分红做过复权,绝不要混用复权与未复权序列。
强制检查必需列,显式转换价格字段,为成交量保留足够宽的整数类型,拦截重复主键,也要防止把 HTML 错误页误当成数据。
检查最高价不低于开盘和收盘、最低价不高于开盘和收盘、成交量非负、时间戳递增;除非有明确变更,同一标的应保持单一币种。
锁定库版本,保存请求参数和原始响应哈希,不要在分析 Notebook 内悄悄刷新历史数据。
用 QVeris 灵活接入不同股票数据提供方
目前没有一个经过核实的 QVeris 结果,可以覆盖所有 Python 股票数据管道。接入时可参考 QVeris Python SDK 文档,并先到 Playground 检查候选能力,再映射到自己的标准字段。
- 发现股票数据能力,并在调用前检查输入参数。
- 让应用代码只关注股票代码、日期与标准化输出。
- 当 Agent 需要当前金融数据时,使用可审计的能力调用。
常见问题
可以。免费 API、公共数据集和 Python 库可提供历史价格、延迟报价、基本面或元数据,但受套餐限制。
用 pandas 清洗分析,用 requests 直接调用 API,或用供应商 SDK 简化接入,最终统一成 DataFrame。
CSV 通用、便于人工查看;Parquet 能保留类型、压缩效率高并支持按列读取,更适合规模较大的重复数据集。
每次运行都刷新最近一段重叠区间,并定期检查供应商修订。更早的分区保持不可变,既节省额度,也便于追踪变化。
参考资料与下一步
Alpha Vantage API 文档
Alpaca 市场数据文档
Twelve Data API 文档
QVeris Python SDK 文档
QVeris Playground
