如何通过forex-python获取小时级外汇汇率?
问题分析与解决方案
为什么forex_python返回的小时级汇率一致?
forex_python默认依赖欧洲央行(ECB)的公开汇率数据,而ECB仅发布日度历史汇率——也就是说,不管你传入当天的哪个小时、分钟参数,底层都会取该日期的单日汇率值,所以不同时间点返回结果完全相同。
如何获取小时级历史外汇汇率?
必须更换提供高频(小时/分钟级)历史数据的API,以下是几种可行选择:
- OANDA:支持分钟、小时级的历史汇率查询,覆盖绝大多数主流货币对,需要注册开发者账号获取API密钥,有免费试用额度,超出后需付费。
- Alpha Vantage:部分货币对提供小时级 intraday 数据,免费版有调用次数限制(比如5次/分钟,500次/天),适合个人开发者小量使用。
- 彭博/路透终端:专业级金融数据服务,提供极细粒度的高频汇率数据,但成本较高,适合机构用户。
示例代码(Alpha Vantage小时级查询)
import requests # 替换为你的Alpha Vantage API密钥 API_KEY = "YOUR_PERSONAL_API_KEY" base = "USD" target = "TRY" interval = "60min" # 指定小时级间隔 # 构造请求 response = requests.get( f"https://www.alphavantage.co/query?function=FX_INTRADAY&from_symbol={base}&to_symbol={target}&interval={interval}&apikey={API_KEY}" ) data = response.json() # 提取小时级汇率数据 if f"Time Series FX ({interval})" in data: hourly_rates = data[f"Time Series FX ({interval})"] # 打印某一具体时间点的汇率(比如2022-07-18 09:00:00) print(hourly_rates.get("2022-07-18 09:00:00", "该时间点无数据")) else: print("请求失败或无对应数据")
注意事项
- 免费高频API普遍有调用频率/额度限制,使用前需仔细查看官方文档的限制规则。
- 部分API可能仅提供近期(比如过去30天)的高频历史数据,如需更久的历史数据,可能需要付费订阅。
内容的提问来源于stack exchange,提问作者Zaur
相关产品推荐
相关产品推荐

