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]
    high_price = df.High.iloc[-1]
    low_price = df.Low.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 giveing me any signal , please can you change those code :    # 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 ''
to this example algorithm :
If EMA_analyze giveing signal to buy + candle_analyze giveing signal to buy return buy , or If EMA_analyze giveing signal to sell+ candle_analyze giveing signal to sell return sell
else: if EMA_analyze giveing signal to buy + candle_analyze giveing signal to sell return