| Overall Statistics |
|
Total Trades 0 Average Win 0% Average Loss 0% Compounding Annual Return 0% Drawdown 0% Expectancy 0 Net Profit 0% Sharpe Ratio 0 Sortino Ratio 0 Probabilistic Sharpe Ratio 0% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0 Beta 0 Annual Standard Deviation 0 Annual Variance 0 Information Ratio 0 Tracking Error 0 Treynor Ratio 0 Total Fees $0.00 Estimated Strategy Capacity $0 Lowest Capacity Asset Portfolio Turnover 0% |
from AlgorithmImports import * # Replace with your actual QuantConnect imports
import pandas as pd
# from tickersList import IndustryGroupLists
class InteractiveBrokersBrokerageModelWithShortable(InteractiveBrokersBrokerageModel):
def GetShortableProvider(self, security):
return InteractiveBrokersShortableProvider()
class MyAlgorithm(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2023, 12, 11)
self.SetBrokerageModel(InteractiveBrokersBrokerageModelWithShortable())
self.UniverseSettings.Resolution = Resolution.Daily
# For SPY Stocks
# self.spy = self.AddEquity("SPY").Symbol
# self.AddUniverse(self.Universe.ETF(self.spy, self.UniverseSettings, self.ETFConstituentsFilter))
# For Stocks with Fundamental Data
self.AddUniverseSelection(FineFundamentalUniverseSelectionModel(self.CoarseFilterFunction, self.SelectFine))
# For Any Stocks (not just stocks with Fundamental Data)
# self.AddUniverse(self.CoarseFilterFunction2, self.SelectFine)
self.data_list = []
def ETFConstituentsFilter(self, constituents: List[ETFConstituentData]) -> List[Symbol]:
return [x.Symbol for x in constituents]
def CoarseFilterFunction(self, coarse: List[CoarseFundamental]) -> List[Symbol]:
# sorted_by_dollar_volume = sorted(coarse, key=lambda x: x.DollarVolume, reverse=True)
# return [c.Symbol for c in sorted_by_dollar_volume[:30000]]0
return [c.Symbol for c in coarse if c.HasFundamentalData]
def SelectFine(self, fine):
selected = [x.Symbol for x in fine]
return selected
def OnEndOfDay(self, symbol):
security = self.Securities[symbol]
shortable_quantity = security.TotalShortableQuantity if security.TotalShortableQuantity is not None else 0
try:
new_row = {
'Symbol': symbol,
'SymbolID': symbol.ID,
'SymbolValue': symbol.Value,
'Exchange': security.Fundamentals.CompanyReference.PrimaryExchangeID,
'ShortName': security.Fundamentals.CompanyReference.ShortName,
'PrimarySymbol': security.Fundamentals.CompanyReference.PrimarySymbol,
'CompanyId': security.Fundamentals.CompanyReference.CompanyId,
'StandardName': security.Fundamentals.CompanyReference.StandardName,
'LastPrice': security.Price,
'LastVolume': security.Volume,
'MarketCap': security.Fundamentals.MarketCap,
'SectorCode': security.Fundamentals.AssetClassification.MorningstarSectorCode,
'IndustryGroupCode': security.Fundamentals.AssetClassification.MorningstarIndustryGroupCode,
'IndustryCode': security.Fundamentals.AssetClassification.MorningstarIndustryCode,
'StockType': security.Fundamentals.AssetClassification.StockType,
'StyleBox': security.Fundamentals.AssetClassification.StyleBox,
'StyleScore': security.Fundamentals.AssetClassification.StyleScore,
'SizeScore': security.Fundamentals.AssetClassification.SizeScore,
'FinancialHealthGrade': security.Fundamentals.AssetClassification.FinancialHealthGrade,
'GrowthGrade': security.Fundamentals.AssetClassification.GrowthGrade,
'GrowthScore': security.Fundamentals.AssetClassification.GrowthScore,
'EconomySphereCode': security.Fundamentals.AssetClassification.MorningstarEconomySphereCode,
'ProfitabilityGrade': security.Fundamentals.AssetClassification.ProfitabilityGrade,
'ValueScore': security.Fundamentals.AssetClassification.ValueScore,
'IsShortable': 'Yes' if shortable_quantity > 1 else 'No'
}
self.data_list.append(new_row)
except Exception as e:
self.Debug(f"Couldn't add: {symbol} due to {str(e)}")
def OnEndOfAlgorithm(self):
self.data_df = pd.DataFrame(self.data_list)
csv_content = self.data_df.to_csv(index=False)
save_successful = self.ObjectStore.Save('NewsUniverseFundamental', csv_content)
if save_successful:
self.Debug("Data saved successfully.")
else:
self.Debug("Failed to save data.")
# One-time Debug statement to print the number of symbols in your universe
self.Debug(f"Total symbols processed: {len(self.data_list)}")
self.Debug(f"Number of symbols in universe: {len(self.Securities)}")
#region imports
# from AlgorithmImports import *
#endregion
"""
Filtering Criteria:
1. Average Volume: Must exceed 1 million shares daily, calculated via a 100-day moving average.
2. Share Price: Daily value must fall between $10 and $50.
3. Market Capitalization ABOVE 0
4. Industry Group: Security should be a part of a predefined Morningstar Industry Group.
5. Fundamental Data: Security has fundamental data.
6. Historical Log Returns: We calculate the standard deviation of the 100-day log returns, and within each industry group,
the top 50 securities (within each sector?) with the highest value are selected.
"""
IndustryGroupLists = {
"Agriculture": ['MOS'],
"BuildingMaterials": [],
"Chemicals": ['AVTR', 'HUN', 'UNVR', 'ESI', 'TROX', 'CC', 'LTHM', 'ECVT', 'AXTA', 'BAK'],
"ForestProducts": ['EVA'],
"MetalsAndMining": ['AU', 'GFI', 'WPM', 'NEM', 'SSRM', 'VALE', 'GOLD', 'MP', 'LAC', 'TECK', 'EGO', 'OR', 'FCX', 'PAAS', 'AGI', 'AA'],
"Steel": ['CLF', 'X', 'MT'],
"VehiclesAndParts": ['F', 'BWA', 'GNTX', 'ACVA', 'RIVN', 'STLA', 'MBLY', 'CVNA', 'GM', 'GT', 'PHIN', 'LI', 'SDA', 'QS', 'CWH', 'DAN', 'XPEV', 'HMC', 'CARG', 'HOG', 'NIO'],
"Furnishings": ['TPX', 'MBC'],
"HomebuildingAndConstruction": ['TPH'],
"ManufacturingApparelAndAccessories": ['LEVI', 'VFC', 'ONON', 'GOOS'],
"PackagingAndContainers": ['WRK', 'OI', 'IP', 'SEE', 'GPK'],
"PersonalServices": ['HRB', 'ROL'],
"Restaurants": ['BLMN', 'SG', 'WEN', 'ARCO'],
"RetailCyclical": ['RVLV', 'VSCO', 'EYE', 'CPRI', 'KSS', 'GLBE', 'EBAY', 'M', 'CPNG', 'FL', 'AEO', 'GME', 'TPR', 'MNSO', 'JWN', 'SBH', 'CHWY', 'OSTK', 'JD', 'ANF', 'URBN'],
"TravelAndLeisure": ['MGM', 'MAT', 'TCOM', 'SIX', 'NCLH', 'IGT', 'CCL', 'HTHT', 'MODG', 'DKNG', 'YETI', 'CUK', 'BOWL', 'TRIP', 'PENN', 'MLCO'],
"AssetManagement": ['BK', 'HTGC', 'ARCC', 'CG', 'IVZ', 'BEN', 'BAM', 'JHG', 'TECS', 'FSK', 'OWL', 'PHYS', 'FHI', 'PWM', 'PDI', 'CRBG'],
"Banks": ['KEY', 'WBS', 'ASB', 'DB', 'IBN', 'C', 'HOMB', 'TFC', 'RF', 'RKT', 'UBS', 'FNB', 'FHB', 'FHN', 'ONB', 'CADE', 'COLB', 'CFG', 'HBAN', 'FULT', 'BKU', 'WFC', 'ZION', 'BAC', 'CM', 'FITB', 'OZK', 'USB', 'EBC', 'HSBC', 'CVBF', 'FBP', 'NYCB', 'WAL', 'SNV', 'ING'],
"CapitalMarkets": ['JEF', 'DNB', 'VIRT', 'MARA', 'RIOT', 'XP'],
"Insurance": ['EQH', 'LMND', 'MTG', 'ORI', 'RDN', 'JXN', 'FNF', 'MFC', 'LNC', 'UNM', 'TRUP'],
"DiversifiedFinancialServices": [],
"CreditServices": ['SYF', 'LC', 'NAVI', 'ALLY', 'OBDC', 'SLM', 'WU'],
"RealEstate": ['KW', 'DBRG', 'RDFN', 'EXPI', 'BEKE'],
"REITs": ['SKT', 'COLD', 'APLE', 'RC', 'HIW', 'SBRA', 'VNO', 'PEAK', 'KRC', 'MFA', 'BNL', 'WY', 'KIM', 'ROIC', 'PEB', 'STWD', 'EQC', 'PK', 'CUZ', 'MAC', 'VICI', 'ABR', 'TWO', 'NLY', 'UE', 'CUBE', 'SLG', 'LXP', 'ARI', 'OHI', 'STAG', 'DEI', 'IVR', 'IRT', 'BXMT', 'RLJ', 'VTR', 'SITC', 'DEA', 'UDR', 'OUT', 'JBGS', 'NNN', 'SHO', 'KRG', 'AMH', 'INVH', 'BRX', 'HR', 'AGNC'],
"BeveragesNonAlcoholic": ['KDP'],
"ConsumerPackagedGoods": ['HRL', 'FLO', 'CAG', 'HLF', 'KHC', 'KVUE', 'COTY', 'BYND', 'CPB'],
"Education": ['COUR', 'EDU'],
"RetailDefensive": ['USFD', 'ACI', 'SFM', 'KR'],
"TobaccoProducts": ['BTI', 'MO'],
"Biotechnology": ['VKTX', 'FOLD', 'RCUS', 'KDNY', 'ETNB', 'DICE', 'HALO', 'BTAI', 'BBIO', 'RPRX', 'TGTX', 'AUPH', 'ICPT', 'INSM', 'ROIV', 'ACAD', 'DAWN', 'TVTX', 'IMGN', 'PTGX', 'EXEL', 'ARQT', 'ABCM', 'APGE', 'RVMD', 'RLAY', 'RVNC', 'ARWR', 'FTRE', 'CBAY', 'APLS', 'RNA', 'MRVI', 'RXRX', 'CPRX', 'NTLA', 'IONS'],
"DrugManufacturers": ['OGN', 'ALKS', 'DVAX', 'PFE', 'GSK', 'TAK', 'ELAN', 'IRWD', 'VTRS', 'CTLT', 'PRGO'],
"HealthcarePlans": ['BHG'],
"HealthcareProvidersAndServices": ['PRVA', 'TDOC', 'CERT', 'EVH', 'WBA', 'MDRX', 'OPCH', 'RCM', 'AGL', 'DOCS'],
"MedicalDevicesAndInstruments": ['PHG', 'AZTA', 'ATEC', 'TNDM', 'AHCO', 'XRAY', 'WRBY', 'PACB', 'BAX', 'INMD', 'NVCR', 'NVST', 'NNOX'],
"MedicalDiagnosticsAndResearch": ['NEOG', 'NTRA', 'CDNA', 'SHC', 'TWST', 'NEO', 'GH', 'SYNH'],
"MedicalDistribution": [],
"UtilitiesIndependentPowerProducers": ['VST', 'NRG', 'FLNC'],
"UtilitiesRegulated": ['PCG', 'NFE', 'UGI', 'SBS', 'AES', 'WTRG', 'EXC', 'OGE', 'PPL', 'NI', 'CNP', 'FE'],
"TelecommunicationServices": ['LBTYA', 'T', 'CMCSA', 'FYBR', 'KT', 'LBTYK', 'RADI', 'AMX', 'BCE', 'VZ', 'TU'],
"MediaDiversified": ['MANU', 'EDR', 'TGNA', 'FOXA', 'MGNI', 'FOX', 'CNK', 'NWSA', 'IPG', 'LSXMK', 'LSXMA', 'WMG', 'PLAY'],
"InteractiveMedia": ['RBLX', 'MTCH', 'WB', 'PINS', 'BILI', 'SNAP', 'SKLZ', 'PLTK'],
"OilAndGas": ['CPE', 'GLNG', 'MRO', 'AM', 'YPF', 'PAA', 'MUR', 'HP', 'MGY', 'BP', 'OVV', 'CTRA', 'RRC', 'BKR', 'PTEN', 'SU', 'TRP', 'DK', 'ESTE', 'CVE', 'EC', 'FRO', 'TALO', 'FTI', 'AR', 'CNX', 'PBF', 'CHX', 'WMB', 'PBR.A', 'IEP', 'DO', 'EQNR', 'HAL', 'EPD', 'EURN', 'ET', 'NOG', 'CRK', 'ERF', 'PBR', 'KMI', 'TS', 'EQT', 'ENB', 'SM', 'ENLC', 'LBRT', 'STNG', 'VVV'],
"OtherEnergySources": ['CCJ'],
"AerospaceAndDefense": ['TGI', 'SPR', 'ERJ'],
"BusinessServices": ['HTZ', 'ARMK', 'WSC', 'LZ', 'UPWK'],
"Conglomerates": ['MDU'],
"Construction": ['APG', 'VRRM', 'ARLO', 'FLR', 'AZEK'],
"FarmAndHeavyConstructionMachinery": ['CNHI'],
"IndustrialDistribution": ['CNM'],
"IndustrialProducts": ['BE', 'ENVX', 'GTES', 'PLUG', 'ZWS', 'VRT', 'ATI', 'HAYW', 'TPIC', 'ARNC', 'PCT'],
"Transportation": ['AAL', 'RXO', 'ZIM', 'AZUL', 'LUV', 'DAL', 'JOBY', 'CSX', 'ZTO', 'HA', 'SAVE', 'SBLK'],
"WasteManagement": ['GFL'],
"Software": ['INFY', 'U', 'RELY', 'STNE', 'AI', 'CCCS', 'PD', 'DXC', 'KD', 'HOOD', 'FSLY', 'BMBL', 'CXM', 'WETG', 'YOU', 'IOT', 'FRSH', 'PATH', 'S', 'G', 'FLYW', 'DLO', 'AYX', 'RPD', 'BOX', 'EB', 'GDS', 'PLTR', 'DOCN', 'XRX', 'NCR', 'CFLT', 'ASAN', 'AFRM', 'HCP', 'APPS', 'UBER', 'APP', 'YEXT', 'NTNX', 'AVDX', 'TOST', 'GEN', 'ZI', 'DV', 'SMAR', 'LYFT', 'DBX', 'RNG'],
"Hardware": ['IONQ', 'HPQ', 'HLIT', 'EXTR', 'HPE', 'CIEN', 'VIAV', 'WDC', 'FLEX', 'PSTG', 'JNPR', 'SONO', 'GLW', 'CRDO', 'VNT'],
"Semiconductors": ['SMTC', 'MAXN', 'SPWR', 'RUN', 'ARRY', 'NOVA', 'INTC', 'NXT', 'CSIQ', 'NVTS', 'SHLS'],
}
holidays_list = [
"1998-01-01", "1998-01-19", "1998-02-16", "1998-04-10", "1998-05-25",
"1998-07-03", "1998-09-07", "1998-11-26", "1998-12-25", "1999-01-01",
"1999-01-18", "1999-02-15", "1999-04-02", "1999-05-31", "1999-07-05",
"1999-09-06", "1999-11-25", "1999-12-24", "2000-01-17", "2000-02-21",
"2000-04-21", "2000-05-29", "2000-07-04", "2000-09-04", "2000-11-23",
"2000-12-25", "2001-01-01", "2001-01-15", "2001-02-19", "2001-04-13",
"2001-05-28", "2001-07-04", "2001-09-03", "2001-09-11", "2001-09-12",
"2001-09-13", "2001-09-14", "2001-11-22", "2001-12-25", "2002-01-01",
"2002-01-21", "2002-02-18", "2002-03-29", "2002-05-27", "2002-07-04",
"2002-09-02", "2002-11-28", "2002-12-25", "2003-01-01", "2003-01-20",
"2003-02-17", "2003-04-18", "2003-05-26", "2003-07-04", "2003-09-01",
"2003-11-27", "2003-12-25", "2004-01-01", "2004-01-19", "2004-02-16",
"2004-04-09", "2004-05-31", "2004-06-11", "2004-07-05", "2004-09-06",
"2004-11-25", "2004-12-24", "2005-01-17", "2005-02-21", "2005-03-25",
"2005-05-30", "2005-07-04", "2005-09-05", "2005-11-24", "2005-12-26",
"2006-01-02", "2006-01-16", "2006-02-20", "2006-04-14", "2006-05-29",
"2006-07-04", "2006-09-04", "2006-11-23", "2006-12-25", "2007-01-01",
"2007-01-02", "2007-01-15", "2007-02-19", "2007-04-06", "2007-05-28",
"2007-07-04", "2007-09-03", "2007-11-22", "2007-12-25", "2008-01-01",
"2008-01-21", "2008-02-18", "2008-03-21", "2008-05-26", "2008-07-04",
"2008-09-01", "2008-11-27", "2008-12-25", "2009-01-01", "2009-01-19",
"2009-02-16", "2009-04-10", "2009-05-25", "2009-07-03", "2009-09-07",
"2009-11-26", "2009-12-25", "2010-01-01", "2010-01-18", "2010-02-15",
"2010-04-02", "2010-05-31", "2010-07-05", "2010-09-06", "2010-11-25",
"2010-12-24", "2011-01-01", "2011-01-17", "2011-02-21", "2011-04-22",
"2011-05-30", "2011-07-04", "2011-09-05", "2011-11-24", "2011-12-26",
"2012-01-02", "2012-01-16", "2012-02-20", "2012-04-06", "2012-05-28",
"2012-07-04", "2012-09-03", "2012-10-29", "2012-10-30", "2012-11-22",
"2012-12-25", "2013-01-01", "2013-01-21", "2013-02-18", "2013-03-29",
"2013-05-27", "2013-07-04", "2013-09-02", "2013-11-28", "2013-12-25",
"2014-01-01", "2014-01-20", "2014-02-17", "2014-04-18", "2014-05-26",
"2014-07-04", "2014-09-01", "2014-11-27", "2014-12-25", "2015-01-01",
"2015-01-19", "2015-02-16", "2015-04-03", "2015-05-25", "2015-07-03",
"2015-09-07", "2015-11-26", "2015-12-25", "2016-01-01", "2016-01-18",
"2016-02-15", "2016-03-25", "2016-05-30", "2016-07-04", "2016-09-05",
"2016-11-24", "2016-12-26", "2017-01-02", "2017-01-16", "2017-02-20",
"2017-04-14", "2017-05-29", "2017-07-04", "2017-09-04", "2017-11-23",
"2017-12-25", "2018-01-01", "2018-01-15", "2018-02-19", "2018-03-30",
"2018-05-28", "2018-07-04", "2018-09-03", "2018-11-22", "2018-12-05",
"2018-12-25", "2019-01-01", "2019-01-21", "2019-02-18", "2019-04-19",
"2019-05-27", "2019-07-04", "2019-09-02", "2019-11-28", "2019-12-25",
"2020-01-01", "2020-01-20", "2020-02-17", "2020-04-10", "2020-05-25",
"2020-07-03", "2020-09-07", "2020-11-26", "2020-12-25", "2021-01-01",
"2021-01-18", "2021-02-15", "2021-04-02", "2021-05-31", "2021-07-05",
"2021-09-06", "2021-11-25", "2021-12-24", "2022-01-01", "2022-01-17",
"2022-02-21", "2022-04-15", "2022-05-30", "2022-06-20", "2022-07-04",
"2022-09-05", "2022-11-24", "2022-12-26", "2023-01-02", "2023-01-16",
"2023-02-20", "2023-04-07", "2023-05-29", "2023-06-19", "2023-07-04",
"2023-09-04", "2023-11-23", "2023-12-25", "2024-01-01", "2024-01-15",
"2024-02-19", "2024-03-29", "2024-05-27", "2024-06-19", "2024-07-04",
]
early_close_list = [
"1999-11-26", "2000-07-03", "2000-11-24", "2001-07-03", "2001-11-23",
"2001-12-24", "2002-07-05", "2002-11-29", "2002-12-24", "2003-07-03",
"2003-11-28", "2003-12-24", "2003-12-26", "2004-11-26", "2005-11-25",
"2006-07-03", "2006-11-24", "2007-07-03", "2007-11-23", "2007-12-24",
"2008-07-03", "2008-11-28", "2008-12-24", "2009-11-27", "2009-12-24",
"2010-11-26", "2011-11-25", "2012-07-03", "2012-11-23", "2012-12-24",
"2013-07-03", "2013-11-29", "2013-12-24", "2014-07-03", "2014-11-28",
"2014-12-24", "2015-11-27", "2015-12-24", "2016-11-25", "2017-07-03",
"2017-11-24", "2017-12-24", "2018-07-03", "2018-11-23", "2018-12-24",
"2019-07-03", "2019-11-29", "2019-12-24", "2020-11-27", "2020-12-24",
"2021-11-26", "2022-11-25", "2023-07-03", "2023-11-24", "2024-07-03"
]
etf_dict_Industry = {
"AgriculturalInputs": "MOO",
"BuildingMaterials": "ITB",
"Chemicals": "XLB",
"SpecialtyChemicals": "XLB",
"LumberAndWoodProduction": "WOOD",
"PaperAndPaperProducts": "WOOD",
"Aluminum": "XME",
"Copper": "XME",
"OtherIndustrialMetalsAndMining": "XME",
"Gold": "GLD",
"Silver": "SLV",
"OtherPreciousMetalsAndMining": "XME",
"CokingCoal": "XME",
"Steel": "SLX",
"AutoAndTruckDealerships": "CARZ",
"AutoManufacturers": "CARZ",
"AutoParts": "CARZ",
"RecreationalVehicles": "CARZ",
"Furnishings": "XHB",
"FixturesAndAppliances": "XHB",
"ResidentialConstruction": "ITB",
"TextileManufacturing": "XRT",
"ApparelManufacturing": "XRT",
"FootwearAndAccessories": "XRT",
"PackagingAndContainers": "PKB",
"PersonalServices": "IYC",
"Restaurants": "XLY",
"ApparelRetail": "XRT",
"DepartmentStores": "XRT",
"HomeImprovementRetail": "XHB",
"LuxuryGoods": "XRT",
"InternetRetail": "XRT",
"SpecialtyRetail": "XRT",
"Gambling": "BJK",
"Leisure": "PEJ",
"Lodging": "PEJ",
"ResortsAndCasinos": "BJK",
"TravelServices": "PEJ",
"AssetManagement": "IAI",
"BanksDiversified": "KBE",
"BanksRegional": "KRE",
"MortgageFinance": "MBB",
"CapitalMarkets": "KCE",
"FinancialDataAndStockExchanges": "KCE",
"InsuranceLife": "KIE",
"InsurancePropertyAndCasualty": "KIE",
"InsuranceReinsurance": "KIE",
"InsuranceSpecialty": "KIE",
"InsuranceBrokers": "KIE",
"InsuranceDiversified": "KIE",
"ShellCompanies": "IPO",
"FinancialConglomerates": "IYF",
"CreditServices": "XLF",
"RealEstateDevelopment": "ITB",
"RealEstateServices": "IYR",
"RealEstateDiversified": "IYR",
"REITHealthcareFacilities": "IYR",
"REITHotelAndMotel": "IYR",
"REITIndustrial": "IYR",
"REITOffice": "IYR",
"REITResidential": "IYR",
"REITRetail": "IYR",
"REITMortgage": "MORT",
"REITSpecialty": "IYR",
"REITDiversified": "VNQ",
"BeveragesBrewers": "PBJ",
"BeveragesWineriesAndDistilleries": "PBJ",
"BeveragesNonAlcoholic": "PBJ",
"Confectioners": "PBJ",
"FarmProducts": "MOO",
"HouseholdAndPersonalProducts": "XLP",
"PackagedFoods": "PBJ",
"EducationAndTrainingServices": "EDUT",
"DiscountStores": "XRT",
"FoodDistribution": "RTH",
"GroceryStores": "RTH",
"Tobacco": "TOKE",
"Biotechnology": "IBB",
"DrugManufacturersGeneral": "PJP",
"DrugManufacturersSpecialtyAndGeneric": "PJP",
"HealthcarePlans": "IHF",
"MedicalCareFacilities": "IHF",
"PharmaceuticalRetailers": "IHF",
"HealthInformationServices": "IHF",
"MedicalDevices": "IHI",
"MedicalInstrumentsAndSupplies": "IHI",
"DiagnosticsAndResearch": "IHI",
"MedicalDistribution": "IHI",
"UtilitiesIndependentPowerProducers": "QCLN",
"UtilitiesRenewable": "QCLN",
"UtilitiesRegulatedWater": "PHO",
"UtilitiesRegulatedElectric": "XLU",
"UtilitiesRegulatedGas": "XLU",
"UtilitiesDiversified": "XLU",
"TelecomServices": "XTL",
"AdvertisingAgencies": "XLC",
"Publishing": "XLC",
"Broadcasting": "XLC",
"Entertainment": "XLC",
"InternetContentAndInformation": "PNQI",
"ElectronicGamingAndMultimedia": "GAMR",
"OilAndGasDrilling": "XOP",
"OilAndGasEAndP": "XOP",
"OilAndGasIntegrated": "XLE",
"OilAndGasMidstream": "AMLP",
"OilAndGasRefiningAndMarketing": "CRAK",
"OilAndGasEquipmentAndServices": "XES",
"ThermalCoal": "XME",
"Uranium": "URA",
"AerospaceAndDefense": "ITA",
"SpecialtyBusinessServices": "IYC",
"ConsultingServices": "IYC",
"RentalAndLeasingServices": "IYC",
"SecurityAndProtectionServices": "HACK",
"StaffingAndEmploymentServices": "XLY",
"Conglomerates": "IYJ",
"EngineeringAndConstruction": "PKB",
"InfrastructureOperations": "IGF",
"BuildingProductsAndEquipment": "XHB",
"FarmAndHeavyConstructionMachinery": "XLI",
"IndustrialDistribution": "XLI",
"BusinessEquipmentAndSupplies": "XLI",
"SpecialtyIndustrialMachinery": "XLI",
"MetalFabrication": "XME",
"PollutionAndTreatmentControls": "PHO",
"ToolsAndAccessories": "XLI",
"ElectricalEquipmentAndParts": "XLI",
"AirportsAndAirServices": "IYT",
"Airlines": "JETS",
"Railroads": "IYT",
"MarineShipping": "SEA",
"Trucking": "IYT",
"IntegratedFreightAndLogistics": "IYT",
"WasteManagement": "EVX",
"InformationTechnologyServices": "VGT",
"SoftwareApplication": "IGV",
"SoftwareInfrastructure": "IGV",
"CommunicationEquipment": "XSD",
"ComputerHardware": "VGT",
"ConsumerElectronics": "XSD",
"ElectronicComponents": "XSD",
"ElectronicsAndComputerDistribution": "XSD",
"ScientificAndTechnicalInstruments": "XSD",
"SemiconductorEquipmentAndMaterials": "SMH", # Instead of SOXX
"Semiconductors": "XSD",
"Solar": "TAN"
}
industry_codes = {
10110010: "AgriculturalInputs",
10120010: "BuildingMaterials",
10130010: "Chemicals",
10130020: "SpecialtyChemicals",
10140010: "LumberAndWoodProduction",
10140020: "PaperAndPaperProducts",
10150010: "Aluminum",
10150020: "Copper",
10150030: "OtherIndustrialMetalsAndMining",
10150040: "Gold",
10150050: "Silver",
10150060: "OtherPreciousMetalsAndMining",
10160010: "CokingCoal",
10160020: "Steel",
10200010: "AutoAndTruckDealerships",
10200020: "AutoManufacturers",
10200030: "AutoParts",
10200040: "RecreationalVehicles",
10220010: "Furnishings",
10230010: "ResidentialConstruction",
10240010: "TextileManufacturing",
10240020: "ApparelManufacturing",
10240030: "FootwearAndAccessories",
10250010: "PackagingAndContainers",
10260010: "PersonalServices",
10270010: "Restaurants",
10280010: "ApparelRetail",
10280020: "DepartmentStores",
10280030: "HomeImprovementRetail",
10280040: "LuxuryGoods",
10280050: "InternetRetail",
10280060: "SpecialtyRetail",
10290010: "Gambling",
10290020: "Leisure",
10290030: "Lodging",
10290040: "ResortsAndCasinos",
10290050: "TravelServices",
10310010: "AssetManagement",
10320010: "BanksDiversified",
10320020: "BanksRegional",
10320030: "MortgageFinance",
10330010: "CapitalMarkets",
10330020: "FinancialDataAndStockExchanges",
10340010: "InsuranceLife",
10340020: "InsurancePropertyAndCasualty",
10340030: "InsuranceReinsurance",
10340040: "InsuranceSpecialty",
10340050: "InsuranceBrokers",
10340060: "InsuranceDiversified",
10350010: "ShellCompanies",
10350020: "FinancialConglomerates",
10360010: "CreditServices",
10410010: "RealEstateDevelopment",
10410020: "RealEstateServices",
10410030: "RealEstateDiversified",
10420010: "REITHealthcareFacilities",
10420020: "REITHotelAndMotel",
10420030: "REITIndustrial",
10420040: "REITOffice",
10420050: "REITResidential",
10420060: "REITRetail",
10420070: "REITMortgage",
10420080: "REITSpecialty",
10420090: "REITDiversified",
20510010: "BeveragesBrewers",
20510020: "BeveragesWineriesAndDistilleries",
20520010: "BeveragesNonAlcoholic",
20525010: "Confectioners",
20525020: "FarmProducts",
20525030: "HouseholdAndPersonalProducts",
20525040: "PackagedFoods",
20540010: "EducationAndTrainingServices",
20550010: "DiscountStores",
20550020: "FoodDistribution",
20550030: "GroceryStores",
20560010: "Tobacco",
20610010: "Biotechnology",
20620010: "DrugManufacturersGeneral",
20620020: "DrugManufacturersSpecialtyAndGeneric",
20630010: "HealthcarePlans",
20645010: "MedicalCareFacilities",
20645020: "PharmaceuticalRetailers",
20645030: "HealthInformationServices",
20650010: "MedicalDevices",
20650020: "MedicalInstrumentsAndSupplies",
20660010: "DiagnosticsAndResearch",
20670010: "MedicalDistribution",
20710010: "UtilitiesIndependentPowerProducers",
20710020: "UtilitiesRenewable",
20720010: "UtilitiesRegulatedWater",
20720020: "UtilitiesRegulatedElectric",
20720030: "UtilitiesRegulatedGas",
20720040: "UtilitiesDiversified",
30810010: "TelecomServices",
30820010: "AdvertisingAgencies",
30820020: "Publishing",
30820030: "Broadcasting",
30820040: "Entertainment",
30830010: "InternetContentAndInformation",
30830020: "ElectronicGamingAndMultimedia",
30910010: "OilAndGasDrilling",
30910020: "OilAndGasEAndP",
30910030: "OilAndGasIntegrated",
30910040: "OilAndGasMidstream",
30910050: "OilAndGasRefiningAndMarketing",
30910060: "OilAndGasEquipmentAndServices",
30920010: "ThermalCoal",
30920020: "Uranium",
31010010: "AerospaceAndDefense",
31020010: "SpecialtyBusinessServices",
31020020: "ConsultingServices",
31020030: "RentalAndLeasingServices",
31020040: "SecurityAndProtectionServices",
31020050: "StaffingAndEmploymentServices",
31030010: "Conglomerates",
31040010: "EngineeringAndConstruction",
31040020: "InfrastructureOperations",
31040030: "BuildingProductsAndEquipment",
31050010: "FarmAndHeavyConstructionMachinery",
31060010: "IndustrialDistribution",
31070010: "BusinessEquipmentAndSupplies",
31070020: "SpecialtyIndustrialMachinery",
31070030: "MetalFabrication",
31070040: "PollutionAndTreatmentControls",
31070050: "ToolsAndAccessories",
31070060: "ElectricalEquipmentAndParts",
31080010: "AirportsAndAirServices",
31080020: "Airlines",
31080030: "Railroads",
31080040: "MarineShipping",
31080050: "Trucking",
31080060: "IntegratedFreightAndLogistics",
31090010: "WasteManagement",
31110010: "InformationTechnologyServices",
31110020: "SoftwareApplication",
31110030: "SoftwareInfrastructure",
31120010: "CommunicationEquipment",
31120020: "ComputerHardware",
31120030: "ConsumerElectronics",
31120040: "ElectronicComponents",
31120050: "ElectronicsAndComputerDistribution",
31120060: "ScientificAndTechnicalInstruments",
31130010: "SemiconductorEquipmentAndMaterials",
31130020: "Semiconductors",
31130030: "Solar"
}
industry_group_codes = {
10110: "Agriculture",
10120: "BuildingMaterials",
10130: "Chemicals",
10140: "ForestProducts",
10150: "MetalsAndMining",
10160: "Steel",
10200: "VehiclesAndParts",
10220: ["Furnishings", "FixturesAndAppliances"],
10230: "HomebuildingAndConstruction",
10240: "ManufacturingApparelAndAccessories",
10250: "PackagingAndContainers",
10260: "PersonalServices",
10270: "Restaurants",
10280: "RetailCyclical",
10290: "TravelAndLeisure",
10310: "AssetManagement",
10320: "Banks",
10330: "CapitalMarkets",
10340: "Insurance",
10350: "DiversifiedFinancialServices",
10360: "CreditServices",
10410: "RealEstate",
10420: "REITs",
20510: "BeveragesAlcoholic",
20520: "BeveragesNonAlcoholic",
20525: "ConsumerPackagedGoods",
20540: "Education",
20550: "RetailDefensive",
20560: "TobaccoProducts",
20610: "Biotechnology",
20620: "DrugManufacturers",
20630: "HealthcarePlans",
20645: "HealthcareProvidersAndServices",
20650: "MedicalDevicesAndInstruments",
20660: "MedicalDiagnosticsAndResearch",
20670: "MedicalDistribution",
20710: "UtilitiesIndependentPowerProducers",
20720: "UtilitiesRegulated",
30810: "TelecommunicationServices",
30820: "MediaDiversified",
30830: "InteractiveMedia",
30910: "OilAndGas",
30920: "OtherEnergySources",
31010: "AerospaceAndDefense",
31020: "BusinessServices",
31030: "Conglomerates",
31040: "Construction",
31050: "FarmAndHeavyConstructionMachinery",
31060: "IndustrialDistribution",
31070: "IndustrialProducts",
31080: "Transportation",
31090: "WasteManagement",
31110: "Software",
31120: "Hardware",
31130: "Semiconductors",
}
sector_codes = {
101: "BasicMaterials",
102: "ConsumerCyclical",
103: "FinancialServices",
104: "RealEstate",
205: "ConsumerDefensive",
206: "Healthcare",
207: "Utilities",
308: "CommunicationServices",
309: "Energy",
310: "Industrials",
311: "Technology",
}
stylebox_codes = {
1: "LargeValue",
2: "LargeCore",
3: "LargeGrowth",
4: "MidValue",
5: "MidCore",
6: "MidGrowth",
7: "SmallValue",
8: "SmallCore",
9: "SmallGrowth",
}
sector_ETFs = {"BasicMaterials": "XLB", "ConsumerCyclical": "XLY", "FinancialServices": "XLF", "RealEstate": "XLRE", "ConsumerDefensive": "XLP",
"Healthcare": "XLV", "Utilities": "XLU", "CommunicationServices": "XLC", "Energy": "XLE", "Industrials": "XLI", "Technology": "XLK",}
# sector_ETFs = [ "XLB", # Materials
# "XLC", # Communication Services
# "XLE", # Energy
# "XLF", # Financials
# "XLI", # Industrials
# "XLK", # Technology
# "XLP", # Staples
# "XLRE", # Real Estate
# "XLU", # Utilities
# "XLV", # Health Care
# "XLY"] # Discretionary
# sector_ETFs = {
# "Materials": "XLB",
# "Communication Services": "XLC",
# "Energy": "XLE",
# "Financials": "XLF",
# "Industrials": "XLI",
# "Technology": "XLK",
# "Staples": "XLP",
# "Real Estate": "XLRE",
# "Utilities": "XLU",
# "Health Care": "XLV",
# "Discretionary": "XLY"
# }
sector_dict = {
'Agriculture': 'BasicMaterials',
'BuildingMaterials': 'BasicMaterials',
'Chemicals': 'BasicMaterials',
'ForestProducts': 'BasicMaterials',
'MetalsAndMining': 'BasicMaterials',
'Steel': 'BasicMaterials',
'VehiclesAndParts': 'ConsumerCyclical',
'Furnishings': 'ConsumerCyclical',
'FixturesAndAppliances': 'ConsumerCyclical',
'HomebuildingAndConstruction': 'ConsumerCyclical',
'ManufacturingApparelAndAccessories': 'ConsumerCyclical',
'PackagingAndContainers': 'ConsumerCyclical',
'PersonalServices': 'ConsumerCyclical',
'Restaurants': 'ConsumerCyclical',
'RetailCyclical': 'ConsumerCyclical',
'TravelAndLeisure': 'ConsumerCyclical',
'AssetManagement': 'FinancialServices',
'Banks': 'FinancialServices',
'CapitalMarkets': 'FinancialServices',
'Insurance': 'FinancialServices',
'DiversifiedFinancialServices': 'FinancialServices',
'CreditServices': 'FinancialServices',
'RealEstate': 'RealEstate',
'REITs': 'RealEstate',
'BeveragesAlcoholic': 'ConsumerDefensive',
'BeveragesNonAlcoholic': 'ConsumerDefensive',
'ConsumerPackagedGoods': 'ConsumerDefensive',
'Education': 'ConsumerDefensive',
'RetailDefensive': 'ConsumerDefensive',
'TobaccoProducts': 'ConsumerDefensive',
'Biotechnology': 'Healthcare',
'DrugManufacturers': 'Healthcare',
'HealthcarePlans': 'Healthcare',
'HealthcareProvidersAndServices': 'Healthcare',
'MedicalDevicesAndInstruments': 'Healthcare',
'MedicalDiagnosticsAndResearch': 'Healthcare',
'MedicalDistribution': 'Healthcare',
'UtilitiesIndependentPowerProducers': 'Utilities',
'UtilitiesRegulated': 'Utilities',
'TelecommunicationServices': 'CommunicationServices',
'MediaDiversified': 'CommunicationServices',
'InteractiveMedia': 'CommunicationServices',
'OilAndGas': 'Energy',
'OtherEnergySources': 'Energy',
'AerospaceAndDefense': 'Industrials',
'BusinessServices': 'Industrials',
'Conglomerates': 'Industrials',
'Construction': 'Industrials',
'FarmAndHeavyConstructionMachinery': 'Industrials',
'IndustrialDistribution': 'Industrials',
'IndustrialProducts': 'Industrials',
'Transportation': 'Industrials',
'WasteManagement': 'Industrials',
'Software': 'Technology',
'Hardware': 'Technology',
'Semiconductors': 'Technology',
}
etf_dict = {
"Agriculture": "MOO",
"BuildingMaterials": "ITB",
"Chemicals": "XLB",
"ForestProducts": "WOOD",
"MetalsAndMining": "XME",
"Steel": "SLX",
"VehiclesAndParts": "CARZ",
"Furnishings": "XHB",
"FixturesAndAppliances": "XHB",
"HomebuildingAndConstruction": "ITB",
"ManufacturingApparelAndAccessories": "XRT",
"PackagingAndContainers": "PKG",
"PersonalServices": "IYC",
"Restaurants": "XLY",
"RetailCyclical": "XRT",
"TravelAndLeisure": "PEJ",
"AssetManagement": "IAI",
"Banks": "KBE",
"CapitalMarkets": "KCE",
"Insurance": "KIE",
"DiversifiedFinancialServices": "IYF",
"CreditServices": "XLF",
"RealEstate": "IYR",
"REITs": "VNQ",
"BeveragesAlcoholic": "PBJ",
"BeveragesNonAlcoholic": "PBJ",
"ConsumerPackagedGoods": "KXI",
"Education": "EDUT",
"RetailDefensive": "XLP",
"TobaccoProducts": "TOKE",
"Biotechnology": "IBB",
"DrugManufacturers": "PJP",
"HealthcarePlans": "IHF",
"HealthcareProvidersAndServices": "IHF",
"MedicalDevicesAndInstruments": "IHI",
"MedicalDiagnosticsAndResearch": "IHI",
"MedicalDistribution": "IHI",
"UtilitiesIndependentPowerProducers": "QCLN",
"UtilitiesRegulated": "XLU",
"TelecommunicationServices": "XLC",
"MediaDiversified": "XLC",
"InteractiveMedia": "XLC",
"OilAndGas": "XLE",
"OtherEnergySources": "QCLN",
"AerospaceAndDefense": "ITA",
"BusinessServices": "IYC",
"Conglomerates": "IYJ",
"Construction": "PKB",
"FarmAndHeavyConstructionMachinery": "XLI",
"IndustrialDistribution": "XLI",
"IndustrialProducts": "XLI",
"Transportation": "IYT",
"WasteManagement": "EVX",
"Software": "IGV",
"Hardware": "VGT",
"Semiconductors": "SOXX"
}