You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过yfinance获取10秒间隔的历史逐笔股票数据?

如何用yfinance获取高频(10秒间隔)股票数据

首先明确:yfinance本身不提供逐笔(tick)级历史数据,它能获取的最高频历史数据是1分钟级,且该数据的可获取时间范围有限(通常仅能拿到最近几天到几十天的1分钟数据,不同标的略有差异)。针对你的10秒间隔分析需求,有两种可行思路:

1. 用yfinance的1分钟数据聚合为10秒间隔

这是最直接的变通方案,先获取1分钟级数据,再通过重采样生成10秒粒度的数据。示例代码:

import yfinance as yf
import pandas as pd

# 目标标的,以AAPL为例
ticker = yf.Ticker("AAPL")
# 获取最近5天的1分钟级数据,period和interval可按需调整
min_data = ticker.history(period="5d", interval="1m")

# 重采样为10秒间隔,根据分析需求选择聚合规则
ten_sec_data = min_data.resample('10S').agg({
    'Open': 'first',    # 10秒窗口内首个开盘价
    'High': 'max',      # 10秒窗口内最高价
    'Low': 'min',       # 10秒窗口内最低价
    'Close': 'last',    # 10秒窗口内最后收盘价
    'Volume': 'sum'     # 10秒窗口内成交量总和
}).dropna()  # 剔除非交易时间的空数据行

注意:若需要更早期的高频数据,yfinance无法满足,需更换其他数据源。

2. 换用支持逐笔数据的数据源

如果必须基于真实逐笔数据生成10秒间隔分析,yfinance无法实现,可选择以下类型的服务:

  • 经纪商API:比如IBKR的TWS API,可获取实时和历史逐笔数据,适合拥有经纪账户的用户。
  • 第三方数据API:比如Polygon.io、Alpha Vantage,部分服务提供免费额度的逐笔/高频历史数据。
  • 离线数据集:部分金融数据服务商提供历史逐笔数据的离线包,下载后可本地处理为10秒间隔数据。

额外注意事项

  • 高频数据量远大于日度数据,美股一个交易日(6.5小时)的10秒间隔数据就有2340条记录,处理时需注意内存占用和计算效率。
  • 重采样或基于逐笔数据生成10秒窗口时,要注意时间戳对齐(比如按交易时间而非自然时间),以及数据清洗(去重、补全缺失值等)。

内容的提问来源于stack exchange,提问作者quant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 19:00:53