Alpaca返回four_hourly_bars
历史条形数据,格式如下;
data={'AMD': [{ 'close': 63.76,
'high': 63.76,
'low': 62.7,
'open': 62.94,
'symbol': 'AMD',
'timestamp': datetime.datetime(2022, 10, 3, 8, 0, tzinfo=datetime.timezone.utc),
'trade_count': 2344.0,
'volume': 151923.0,
'vwap': 63.328798}, { 'close': 65.655,
'high': 66.3501,
'low': 63.39,
'open': 63.74,
'symbol': 'AMD',
'timestamp': datetime.datetime(2022, 10, 3, 12, 0, tzinfo=datetime.timezone.utc),
'trade_count': 217416.0,
'volume': 42176972.0,
'vwap': 65.356385},...]}
我的主要问题是时间戳字段,我过去使用旧的alpaca_trade_API将其存储为datetime,但现在使用新的alpaca-py库,时间戳有了额外的信息,如上文所示,我使用的代码(在修复新标签后)是:
# Downloading 4H time-frame data (one by one)...
for symbol in tqdm(symbols, desc='Downloading 4H Data'):
request_parameters = StockBarsRequest(symbol_or_symbols=symbol, timeframe=TimeFrame(4, TimeFrameUnit.Hour),
start=datetime.strptime(One_Year_from_Today, '%Y-%m-%d'),
end=None, adjustment='raw')
four_hourly_bars = client.get_stock_bars(request_parameters)
for bar in four_hourly_bars:
stock_id = symbol_dic[symbol]
cursor.execute("""INSERT INTO alpaca_stock_prices_4H (stock_id, date, open, high, low, close, volume) VALUES
(?, ?, ?, ?, ?, ?, ?)""", (stock_id, bar.timestamp.tz_localize(None).isoformat(), bar.open, bar.high,
bar.low, bar.close, bar.volume))
现在我得到这个错误:AttributeError: 'tuple' object has no attribute 'timestamp'
如何从'timestamp': datetime.datetime(2022, 10, 3, 12, 0, tzinfo=datetime.timezone.utc)
中读取日期时间字符串值并将其存储在数据库的sqlite日期列中?
我确实在新的库中将旧的“t”、“o”、“h”、“l”、“c”、“v”更改为相应的新名称,但我仍然无法正确读取日期时间。
1条答案
按热度按时间bsxbgnwa1#
现在我知道了问题的解决方案,因为我在for循环中缺少了[symbol]:'#正在下载4 H时间帧数据(逐个)... tqdm中的符号(symbols,desc =' Downloading 4 H Data '):请求参数=股票条请求(符号或符号=符号,时间帧=时间帧(4,时间帧单位.小时),开始=日期时间.字符串时间(从今天算起一年,“%Y-%m-% d”),结束=无,调整=“原始”)四小时条=客户端.获取股票条(请求参数)
关于
.tz_localize(None).isoformat()
,出现了一个新问题,它产生了错误AttributeError: 'datetime.datetime' object has no attribute 'tz_localize'
......有什么想法如何修复它?