使用Alpaca Trade API获取历史数据时遇endpoint not found错误
解决alpaca_trade_api获取外汇历史数据时的"endpoint not found"错误
错误原因
出现APIError: endpoint not found的核心原因是:你调用了用于股票/ETF的get_bars方法来获取外汇(USD/JPY)数据,但Alpaca为外汇资产提供了专属的数据接口,直接使用get_bars会找不到对应端点。
修复方案
1. 替换为外汇专属数据获取方法
将get_bars替换为get_fx_bars,这是Alpaca专门设计用于获取外汇K线数据的方法。
2. 确认API初始化参数
保持数据API的api_version为"v2",该版本支持外汇数据的查询。
修复后的完整代码
import alpaca_trade_api as tradeapi import pandas as pd # keys KEY = "XXX" SECRET = "XXX" # parameters short_sma_period = 50 long_sma_period = 200 start_date = "2023-01-01" end_date = "2023-05-01" timeframe = '1D' # time frame for historical data asset = "USD/JPY" # urls data_url = "https://data.alpaca.markets" paper_trade_url = "https://paper-api.alpaca.markets" # initialize apis data_api = tradeapi.REST(key_id=KEY,secret_key=SECRET,base_url=data_url, api_version="v2") trade_api = tradeapi.REST(key_id=KEY,secret_key=SECRET,base_url=paper_trade_url) # 获取外汇历史数据,使用get_fx_bars替代get_bars historical_data = data_api.get_fx_bars(asset, timeframe, start=start_date, end=end_date) # 可选:转换为DataFrame方便后续处理 df = historical_data.df print(df.head())
额外注意事项
- 确保你的Alpaca API密钥已开通外汇数据访问权限,若未开通需在Alpaca后台操作。
- 查询的时间范围需符合Alpaca外汇数据的历史区间限制,避免超出可查询范围。
内容的提问来源于stack exchange,提问作者Joseph38
相关产品推荐
相关产品推荐

