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
        # Calculate MACD
    df['EMA12'] = df['Close'].ewm(span=12, adjust=False).mean()
    df['EMA26'] = df['Close'].ewm(span=26, adjust=False).mean()
    df['MACD'] = df['EMA12'] - df['EMA26']
    df['SignalLine'] = df['MACD'].ewm(span=9, adjust=False).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 = []
    macd_analysis = []

    # EMA greatest line strategy - buy signal
    if (
        df.EMA10.iloc[-1] > df.EMA50.iloc[-1] and
        df.EMA50.iloc[-1] > df.EMA100.iloc[-1] and
        df.EMA100.iloc[-1] > df.EMA200.iloc[-1] and
        close_price > max(df['EMA10'].iloc[-2], df['EMA50'].iloc[-2], df['EMA100'].iloc[-2], df['EMA200'].iloc[-2])
    ):
        ema_analysis.append('buy')

    # EMA greatest line strategy - sell signal
    elif (
        df.EMA10.iloc[-1] < df.EMA50.iloc[-1] and
        df.EMA50.iloc[-1] < df.EMA100.iloc[-1] and
        df.EMA100.iloc[-1] < df.EMA200.iloc[-1] and
        close_price < min(df['EMA10'].iloc[-2], df['EMA50'].iloc[-2], df['EMA100'].iloc[-2], df['EMA200'].iloc[-2])
    ):
        ema_analysis.append('sell')

    # Check for bullish candlestick pattern - buy signal
    if (
        open_price < close_price and
        previous_open > previous_close and
        close_price > previous_open and
        open_price <= previous_close
    ):
        candle_analysis.append('buy')

    # Check for bearish candlestick pattern - sell signal
    elif (
        open_price > close_price and
        previous_open < previous_close and
        close_price < previous_open and
        open_price >= previous_close
    ):
        candle_analysis.append('sell')

    # MACD histogram strategy - buy signal
    if df['MACD'].iloc[-1] > df['SignalLine'].iloc[-1] and df['MACD'].iloc[-2] < df['SignalLine'].iloc[-2]:
        macd_analysis.append('buy')

    # MACD histogram strategy - sell signal
    elif df['MACD'].iloc[-1] < df['SignalLine'].iloc[-1] and df['MACD'].iloc[-2] > df['SignalLine'].iloc[-2]:
        macd_analysis.append('sell')

    # Combine all analysis into final signal
    ema_signal = 'buy' if 'buy' in ema_analysis else 'sell' if 'sell' in ema_analysis else ''
    candle_signal = 'buy' if 'buy' in candle_analysis else 'sell' if 'sell' in candle_analysis else ''
    macd_signal = 'buy' if 'buy' in macd_analysis else 'sell' if 'sell' in macd_analysis else ''

    if ema_signal == 'buy' and candle_signal == 'buy' and macd_signal == 'buy':
        return 'buy'
    elif ema_signal == 'sell' and candle_signal == 'sell' and macd_signal == 'sell':
        return 'sell'
    else:
        return ''
Can you please delete MACD code