如何通过TD Ameritrade API获取SPX等股指的历史价格?
问题解决:TD Ameritrade API获取SPX历史价格返回空数据
问题原因
TD Ameritrade的API中,标普500指数的正确交易代码不是SPX,而是SPX.X。直接使用SPX会导致API无法识别对应的指数标的,返回空数据。个股代码(如AAPL、TSLA)无需后缀,因此可以正常返回数据。
解决方案
将代码中的ticker_list里的SPX替换为SPX.X即可:
ct = str(int(datetime.today().timestamp()) * 1000) # 获取当前时间的毫秒级时间戳 ticker_list = ['AAPL', 'SPX.X'] for ticker in ticker_list: quotes = TDSession.get_price_history( symbol=ticker, period_type='year', period=1, frequency_type='daily', end_date=ct ) ic(quotes) if len(quotes['candles']) == 0: print('未获取到数据,跳过。') else: print(quotes['candles'])
补充说明
如果需要获取其他指数的历史数据,也需要使用TD Ameritrade平台对应的带后缀代码,比如纳斯达克综合指数对应COMP.X,道琼斯工业平均指数对应DJI.X。
内容的提问来源于stack exchange,提问作者Kevin Lee
相关产品推荐
相关产品推荐

