ETF
https://medium.com/@jpolec_72972/how-to ... bbcde[code]# Local Qlib classes
from qlib.data.data_connector import DataConnector
# Logger
from qlib.data.utils.data_logs import data_logger
logger = data_logger()
async def main():
dc = DataConnector()
# Define tickers and sectors
tickers = ['XLE', 'XLY', 'XLB', 'RSPT', 'XLK', 'XLV', 'RSPS', 'XLRE', 'RSPH', 'RSPU', 'RSPN', 'XLP', 'RSFC', 'RSPD', 'RSPM', 'XLI', 'RSPG', 'XLF', 'XLU', 'XLC', 'RSPF', 'RSPR', 'XME', 'BLOK', 'BUZZ', 'XBI', 'PBW', 'GBTC', 'DRIV', 'XOP', 'FCG']
sectors = ['Energy', 'Consumer Discretionary', 'Materials', 'TechnologyEW', 'Technology', 'Healthcare' ,'Consumer Staples EW', 'Real Estate', 'Healthcare EW', 'Utilities EW', 'Industrial EW', 'Consumer Staples', 'Communication EW', 'Consumer Discretionary EW', 'Materiars EW', 'Industrial', 'Energy EW', 'Financial', 'Utilities', 'Communication', 'Financial EW', 'Real Estate EW', 'Metal & Minings', 'Crypto Related Companies', 'Social Sentiment', 'Biotech', 'Clean Energy', 'Bitcoin Trust', 'Automation & EV', 'Oil & Gas Exploration & Production', 'Natural Gas']
# Fetch data for different tickers
all_data = []
for ticker in tickers:
try:
output = await dc.etfs.get_etf_ohlcv(tickers=[ticker], exchanges=["US"], granularity='1d', period_starts=["2022-06-01"], period_ends=["2024-03-25"])
data = output[0].set_index("datetime")
data['Ticker'] = ticker
all_data.append(data)
logger.info(f"Fetched data for {ticker}")
except Exception as e:
logger.error(f"Error fetching data for {ticker}: {e}")
# Combine data for all tickers
combined_data = pd.concat(all_data, ignore_index=False)
[/code]