database-automation/ohlc/backfill_ohlc.py

31 lines
1.1 KiB
Python

import pandas as pd
from database.ohlc import insert
from datetime import datetime#, date, timedelta
from iqfeed import get_daily_data, get_historical_data, minutes
symbols_and_timeframes = []
start_date = datetime(2023, 12, 1)
# yesterday = date.today() - timedelta(days=1)
for symbol, timeframe in symbols_and_timeframes:
if timeframe == '1d':
data = get_daily_data(symbol,
start_date = datetime.combine(start_date, datetime.min.time()),
end_date = datetime.combine(start_date, datetime.max.time()))
else: # Assuming minutes for now.
data = get_historical_data(symbol, minutes(int(timeframe[:-1])),
start_date = datetime.combine(start_date, datetime.min.time()),
end_date = datetime.combine(start_date, datetime.max.time()))
data['Symbol'] = symbol
data['Timeframe'] = timeframe
data['Timestamp'] = pd.to_datetime(data['Date'])
data['Date'] = data['Timestamp'].dt.date
data = data.rename(columns={
'Period Volume': 'Volume'
})
data = data[['Symbol', 'Date', 'Timeframe', 'Timestamp', 'Open', 'High', 'Low', 'Close', 'Volume']]
insert(data)