I used this signal generator code: def signal_generator(df):
    # Calculate EMA and MA lines
    df['EMA5'] = df['Close'].ewm(span=5, adjust=False).mean()
    df['EMA10'] = df['Close'].ewm(span=10, adjust=False).mean()
    df['EMA20'] = df['Close'].ewm(span=20, adjust=False).mean()
    df['EMA50'] = df['Close'].ewm(span=50, adjust=False).mean()
    df['EMA100'] = df['Close'].ewm(span=100, adjust=False).mean()
    df['EMA200'] = df['Close'].ewm(span=200, adjust=False).mean()
    df['MA10'] = df['Close'].rolling(window=10).mean()
    df['MA20'] = df['Close'].rolling(window=20).mean()
    df['MA50'] = df['Close'].rolling(window=50).mean()
    df['MA100'] = df['Close'].rolling(window=100).mean()
    # Extract necessary prices from df
    open_price = df.Open.iloc[-1]
    close_price = df.Close.iloc[-1]

    previous_open = df.Open.iloc[-2]
    previous_close = df.Close.iloc[-2]

    # Calculate the last candlestick
    last_candle = df.iloc[-1]
    current_price = df.Close.iloc[-1]

    # Initialize analysis variables
    ema_analysis = ''
    candle_analysis = ''

    # EMA crossover - buy signal
    if df.EMA10.iloc[-1] > df.EMA50.iloc[-1] and current_price > last_candle[['EMA10', 'EMA50']].iloc[-1].min():
        ema_analysis = 'buy'

    # EMA crossover - sell signal
    elif df.EMA10.iloc[-1] < df.EMA50.iloc[-1] and current_price < last_candle[['EMA10', 'EMA50']].iloc[-1].max():
        ema_analysis = 'sell'

    # EMA crossover - buy signal
    if df.EMA20.iloc[-1] > df.EMA200.iloc[-1] and current_price > last_candle[['EMA20', 'EMA200']].iloc[-1].min():
        ema_analysis = 'buy'

    # EMA crossover - sell signal
    elif df.EMA20.iloc[-1] < df.EMA200.iloc[-1] and current_price < last_candle[['EMA20', 'EMA200']].iloc[-1].max():
        ema_analysis = 'sell'

    # Check for bullish trends
    elif current_price > last_candle[['EMA5', 'EMA20', 'EMA50', 'EMA100', 'EMA200']].iloc[-1].max():
        ema_analysis = 'buy'

    # Check for bearish trends
    elif current_price < last_candle[['EMA5', 'EMA20', 'EMA50', 'EMA100', 'EMA200']].iloc[-1].min():
        ema_analysis = 'sell'

    # Check for bullish candlestick patterns
    elif last_candle['Close'] > last_candle['Open'] and last_candle.Low > last_candle[['Open', 'Close']].min():
        candle_analysis = 'buy'

    # Check for bearish candlestick patterns
    elif last_candle['Close'] < last_candle['Open'] and last_candle.High < last_candle[['Open', 'Close']].max():
        candle_analysis = 'sell'

    # Combine all analysis into final signal
    if ema_analysis == 'buy' and candle_analysis == 'buy':
        return 'buy'
    elif ema_analysis == 'sell' and candle_analysis == 'sell':
        return 'sell'
    else:
        return ''
But it doesn't work , please can you change those lines :     # Check for bullish candlestick patterns
    elif last_candle['Close'] > last_candle['Open'] and last_candle.Low > last_candle[['Open', 'Close']].min():
        candle_analysis = 'buy'

    # Check for bearish candlestick patterns
    elif last_candle['Close'] < last_candle['Open'] and last_candle.High < last_candle[['Open', 'Close']].max():
        candle_analysis = 'sell'
to:
    open = df.open.iloc[-1]
    close = df.close.iloc[-1]
    previous_open = df.open.iloc[-2]
    previous_close = df.close.iloc[-2]

        #Bearish pattern
    if (open>close and 
    previous_open<previous_close and
    close<previous_open and 
    open>=previous_close):
        return 'sell'

        #Bullish pattern
    elif (open<close and
    previous_open>previous_close and
    close>previous_open and
    open<=previous_close):
        return 'buy'
        
        #No clear pattern
    else:
        return ''