如何使用yfinance获取指定时间区间的1分钟黄金价格数据
解决方案
yfinance的download方法实际支持start和end参数指定日期范围,不需要仅使用period参数。但要注意:1分钟粒度的数据仅保留最近30天的记录,你示例中2021年的1分钟数据无法通过yfinance获取,仅能查询近30天内的分钟级数据。
具体实现逻辑如下:
- 第一步:通过
start和end参数拉取目标日期覆盖的全部1分钟数据,示例代码:
import yfinance as yf import pandas as pd # 拉取2021-10-18当日全部1分钟黄金数据 gold_1min = yf.download( tickers="GC=F", start="2021-10-18", end="2021-10-19", interval="1m" )
- 第二步:对返回的带datetime索引的DataFrame做精确时间区间过滤,即可得到指定时分区间的1分钟数据:
# 定义目标时间区间 start_dt = pd.to_datetime("2021-10-18 09:30:00") end_dt = pd.to_datetime("2021-10-18 10:30:00") # 按索引筛选符合时间要求的记录 target_data = gold_1min[(gold_1min.index >= start_dt) & (gold_1min.index <= end_dt)]
如果需要获取30天之前的历史1分钟黄金数据,可以更换为支持长周期分钟数据的数据源接口,拉取全量分钟数据后使用相同的过滤逻辑处理即可。
内容的提问来源于stack exchange,提问作者muhamad
相关产品推荐
相关产品推荐

