From 9fb9d171d49bb0edea489e560fd51f2b65810499 Mon Sep 17 00:00:00 2001 From: zastian-dev Date: Thu, 12 Feb 2026 12:36:25 +0000 Subject: [PATCH] more symbols --- src/config.rs | 43 +++++++++++++++++++++++++++++++++---------- 1 file changed, 33 insertions(+), 10 deletions(-) diff --git a/src/config.rs b/src/config.rs index d9d8e91..a8a97a2 100644 --- a/src/config.rs +++ b/src/config.rs @@ -1,26 +1,39 @@ //! Configuration constants for the trading bot. -// Stock Universe +// Stock Universe (~100 symbols across 14 sectors) pub const MAG7: &[&str] = &["AAPL", "MSFT", "GOOGL", "AMZN", "META", "NVDA", "TSLA"]; -pub const SEMIS: &[&str] = &["AVGO", "AMD", "ASML", "QCOM", "MU"]; -pub const GROWTH_TECH: &[&str] = &["NFLX", "CRM", "NOW", "UBER", "SNOW"]; -pub const HEALTHCARE: &[&str] = &["LLY", "UNH", "ISRG", "VRTX", "ABBV", "MRK", "PFE"]; -pub const FINTECH_VOLATILE: &[&str] = &["V", "MA", "COIN", "PLTR", "MSTR"]; -pub const SP500_FINANCIALS: &[&str] = &["JPM", "GS", "MS", "BLK", "AXP", "C"]; -pub const SP500_INDUSTRIALS: &[&str] = &["CAT", "GE", "HON", "BA", "RTX", "LMT", "DE"]; -pub const SP500_CONSUMER: &[&str] = &["COST", "WMT", "HD", "NKE", "SBUX", "MCD", "DIS"]; -pub const SP500_ENERGY: &[&str] = &["XOM", "CVX", "COP", "SLB", "OXY"]; -/// Get all symbols in the trading universe (50 stocks). +pub const SEMIS: &[&str] = &["AVGO", "AMD", "ASML", "QCOM", "MU", "MRVL", "LRCX", "KLAC", "AMAT"]; +pub const GROWTH_TECH: &[&str] = &["NFLX", "CRM", "NOW", "UBER", "SNOW", "DDOG", "CRWD", "ZS", "WDAY"]; +pub const SOFTWARE: &[&str] = &["ADBE", "INTU", "PANW", "FTNT", "TEAM", "HUBS", "MNDY"]; +pub const HEALTHCARE: &[&str] = &["LLY", "UNH", "ISRG", "VRTX", "ABBV", "MRK", "PFE", "TMO", "ABT", "DHR"]; +pub const BIOTECH: &[&str] = &["GILD", "AMGN", "REGN", "BIIB", "MRNA"]; +pub const FINTECH_VOLATILE: &[&str] = &["V", "MA", "COIN", "PLTR", "MSTR", "SQ", "PYPL"]; +pub const SP500_FINANCIALS: &[&str] = &["JPM", "GS", "MS", "BLK", "AXP", "C", "SCHW", "ICE"]; +pub const SP500_INDUSTRIALS: &[&str] = &["CAT", "GE", "HON", "BA", "RTX", "LMT", "DE", "UNP", "UPS"]; +pub const SP500_CONSUMER: &[&str] = &["COST", "WMT", "HD", "NKE", "SBUX", "MCD", "DIS", "TGT", "LOW", "ABNB", "BKNG"]; +pub const SP500_ENERGY: &[&str] = &["XOM", "CVX", "COP", "SLB", "OXY", "EOG", "MPC"]; +pub const TELECOM_MEDIA: &[&str] = &["T", "VZ", "CMCSA", "TMUS", "NFLX"]; +pub const INTERNATIONAL: &[&str] = &["TSM", "BABA", "JD", "SHOP", "MELI"]; +pub const MATERIALS: &[&str] = &["FCX", "NEM", "LIN", "APD", "SHW"]; +/// Get all symbols in the trading universe (~100 stocks). pub fn get_all_symbols() -> Vec<&'static str> { let mut symbols = Vec::new(); symbols.extend_from_slice(MAG7); symbols.extend_from_slice(SEMIS); symbols.extend_from_slice(GROWTH_TECH); + symbols.extend_from_slice(SOFTWARE); symbols.extend_from_slice(HEALTHCARE); + symbols.extend_from_slice(BIOTECH); symbols.extend_from_slice(FINTECH_VOLATILE); symbols.extend_from_slice(SP500_FINANCIALS); symbols.extend_from_slice(SP500_INDUSTRIALS); symbols.extend_from_slice(SP500_CONSUMER); symbols.extend_from_slice(SP500_ENERGY); + symbols.extend_from_slice(TELECOM_MEDIA); + symbols.extend_from_slice(INTERNATIONAL); + symbols.extend_from_slice(MATERIALS); + // Deduplicate (NFLX appears in both GROWTH_TECH and TELECOM_MEDIA) + symbols.sort(); + symbols.dedup(); symbols } // Strategy Parameters — Regime-Adaptive Dual Signal @@ -96,8 +109,12 @@ pub fn get_sector(symbol: &str) -> &'static str { "semis" } else if GROWTH_TECH.contains(&symbol) { "growth_tech" + } else if SOFTWARE.contains(&symbol) { + "software" } else if HEALTHCARE.contains(&symbol) { "healthcare" + } else if BIOTECH.contains(&symbol) { + "biotech" } else if FINTECH_VOLATILE.contains(&symbol) { "fintech_volatile" } else if SP500_FINANCIALS.contains(&symbol) { @@ -108,6 +125,12 @@ pub fn get_sector(symbol: &str) -> &'static str { "consumer" } else if SP500_ENERGY.contains(&symbol) { "energy" + } else if TELECOM_MEDIA.contains(&symbol) { + "telecom_media" + } else if INTERNATIONAL.contains(&symbol) { + "international" + } else if MATERIALS.contains(&symbol) { + "materials" } else { "unknown" }