I'm new to this and keep getting an error that COIN or MSTR have no tradable days despite the dates I set being tradable dates. Does anyone know why I could be getting this error? My ondata function is never even getting called.

from AlgorithmImports import *

class FirstMinuteBreakoutAlgorithm(QCAlgorithm):
    def Initialize(self):
        self.set_start_date(2024, 7, 15)
        self.set_end_date(2024, 7, 15)
        self.set_cash(100000)
        # self.SetBrokerageModel(BrokerageName.InteractiveBrokersBrokerage, AccountType.Margin)
        
        self.tickers = ["COIN", "MSTR"]  # Predefined list of tickers
        self.symbols = [self.AddEquity(ticker, Resolution.Second).Symbol for ticker in self.tickers]
        
        self.first_minute_has_passed = False
        self.reached_over_prev_high = {}
        self.high_over_prev_high = {}
        self.previous_day_highs = {}
        self.daily_lows = {}

        for symbol in self.symbols:
            self.reached_over_prev_high[symbol] = False
            self.daily_lows[symbol] = self.Identity(symbol, Resolution.Daily, Field.Low)
            history = self.History(symbol, 1, Resolution.Daily)
            if not history.empty:
                self.previous_day_highs[symbol] = history.iloc[0]["high"]
        
        self.Debug(self.previous_day_highs)
        
        self.Schedule.On(self.DateRules.EveryDay(), self.TimeRules.Every(timedelta(minutes=1)), self.UpdateMinuteHigh)
        self.Schedule.On(self.DateRules.EveryDay(), self.TimeRules.AfterMarketOpen(self.symbols[0], 1), self.SetFirstMinutePassed)
        self.Schedule.On(self.DateRules.EveryDay(), self.TimeRules.BeforeMarketClose(self.symbols[0], 1), self.ResetDailyData)

        self.Log("Initialize finished")
    
    def UpdateMinuteHigh(self):
        self.Debug("Update minute high started")
        for symbol in self.symbols:
            if self.reached_over_prev_high[symbol]:
                continue

            prev_minute_bar = self.History(symbol, 1, Resolution.Minute).iloc[0]

            if prev_minute_bar["high"] >= self.previous_day_highs[symbol]:
                self.high_over_prev_high[symbol] = prev_minute_bar["high"]
                self.reached_over_prev_high[symbol] = True
        self.Debug("Update minute high ended")

    def SetFirstMinutePassed(self):
        self.Log("set first minute started")
        self.first_minute_has_passed = True 
    
    def OnData(self, data):
        self.Log("ONDATA ACTUALLY RAN")
        if not self.first_minute_has_passed:
            return

        for symbol in self.symbols:
            if self.Portfolio[symbol].Invested or not self.reached_over_prev_high[symbol]: 
                continue

            if symbol in data and data[symbol].Price > self.high_over_prev_high[symbol]:
                quantity = 500 / data[symbol].Price
                self.SetHoldings(symbol, quantity)
                self.Log(f"Bought {quantity} shares of {symbol} at {data[symbol].Price}")
                
                stop_loss_price = self.daily_lows[symbol].Current.Value
                self.Log(f"Stop loss set at ${stop_loss_price}")
                self.StopMarketOrder(symbol, -quantity, stop_loss_price)
    
    def ResetDailyData(self):
        self.first_minute_has_passed = False
        self.reached_over_prev_high.clear()
        self.high_over_prev_high.clear()
        self.previous_day_highs.clear()
        self.daily_lows.clear()