Reputation: 1
Trying to build an algorithm for processing stocks. I'm not a dev, so basically my knowledge is limited. I'm retrieving findata with an API. Looks like it's done correctly, sorted ascending. First event is 4 AM. It has events starting with 9:30 AM NYSE time. Somehow, during these checks & conversions here, the first data point gets to be filtered to 10:26 AM and I have no idea how. ChatGPT can't figure it out either. help.
The input date doesn't seem to make a difference. Used for example 2024-08-28.
start_datetime = datetime.strptime(start_date, '%Y-%m-%d')
end_datetime = datetime.strptime(end_date, '%Y-%m-%d') + timedelta(days=1)
current_date = start_datetime
while current_date < end_datetime:
date_str = current_date.strftime('%Y-%m-%d')
market_open = current_date.replace(hour=9, minute=30, second=0, microsecond=0, tzinfo=pytz.timezone('America/New_York'))
market_close = current_date.replace(hour=16, minute=0, second=0, microsecond=0, tzinfo=pytz.timezone('America/New_York'))
for ticker in tickers:
ticker_minute_data = await fetch_minute_data(session, ticker, date_str)
if not ticker_minute_data.empty:
ticker_minute_data = ticker_minute_data[(ticker_minute_data['t'] >= market_open) & (ticker_minute_data['t'] <= market_close)]
Fetch_minute_data works correctly. I checked ticker_minute_data dataframe and the contains are correct. Problem is after ticker_minute_data is evaluated.
market_open = datetime.datetime(2024, 8, 28, 9, 30, tzinfo=<DstTzInfo 'America/New_York' LMT-1 day, 19:04:00 STD>)
market_close = datetime.datetime(2024, 8, 28, 16, 0, tzinfo=<DstTzInfo 'America/New_York' LMT-1 day, 19:04:00 STD>)
ticker_minute_data['t'] format: 2024-08-28 04:00:00-04:00
Upvotes: 0
Views: 57