I have this code: 
active_signal = None
orderId = None
clientOrderId = None
buy_entry_price = None 
sell_entry_price = None
orderId = None

import binance
 
def calculate_percentage_difference_buy(entry_price, exit_price):
    result = exit_price - entry_price
    price_result = entry_price / 100 
    final_result = result / price_result
    result = final_result * 40
    return result

def calculate_percentage_difference_sell(sell_entry_price, sell_exit_price):
    percentage_difference = sell_entry_price - sell_exit_price
    price_result = sell_entry_price / 100  # price result = 1%
    price_percent_difference = percentage_difference / price_result
    result = price_percent_difference * 40
    return result

while True:
    if df is not None:
        # Get balance function
        balance = client.balance()
        #Get USDT balance function
        for asset in balance:
            if asset['asset'] == 'USDT':
                balance_usdt = float(asset['balance'])
        balance_usdt_futures = balance_usdt * 40

        #Constant
        price_bch = mark_price
        dollars = balance_usdt_futures

        #Counting Balance : BCH price
        bch_amount = dollars / price_bch
        bch_amount_rounded = round(bch_amount, 2)
        quantity = bch_amount_rounded / 2

        signals = signal_generator(df)
        mark_price_data = client.ticker_price(symbol=symbol)
        mark_price = float(mark_price_data['price']) if 'price' in mark_price_data else 0.0
        if signals == ['buy'] or signals == ['sell']:
            print(f"The signal time is: {dt.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}, Price {mark_price} - Signals: {signals}")

            if 'buy' in signals and active_signal != 'buy':
                try:
                    client.cancel_order(symbol=symbol, orderId=orderId, origClientOrderId=clientOrderId)
                    order = client.new_order(symbol=symbol, side='BUY', type='MARKET', quantity=quantity)
                    orderId = latest_trade['orderId']
                    clientOrderId = latest_trade['clientOrderId']
                    active_signal = 'buy'
                    buy_entry_price = mark_price  # Record the Buy entry price
                    print(f"Buy Entry Price: {buy_entry_price}")
                    print(f"Long order executed!")
                except binance.error.ClientError as e:
                    print(f"Error executing long order: ")

                if sell_entry_price is not None and buy_entry_price is not None:
                    sell_exit_price = mark_price
                    difference_sell = calculate_percentage_difference_sell(sell_entry_price, sell_exit_price)
                    profit_sell = difference_sell 
                    total_profit_sell = profit_sell
                    profit_sell_percent = total_profit_sell - 4
                    print(f"sell entry price {sell_entry_price}, sell exit price {sell_exit_price} , Sell P&L: {round(total_profit_sell, 2)}%   with fee {round(profit_sell_percent, 2)}%")
                else:
                    print("Sell Entry price or Buy Entry price is not defined.")

                israel = []

                depth_data = client.depth(symbol=symbol)
                bid_depth = depth_data['bids']
                ask_depth = depth_data['asks']
                buy_price = float(bid_depth[0][0]) if bid_depth else 0.0
                sell_price = float(ask_depth[0][0]) if ask_depth else 0.0
                buy_qty = float(bid_depth[0][1]) if bid_depth else 0.0
                sell_qty = float(ask_depth[0][1]) if ask_depth else 0.0

                executed_orders_buy = 0.0

                for order in bid_depth:
                    if float(order[0]) == mark_price:
                        executed_orders_buy += float(order[1])
                    else:
                        break

                buy_result = buy_qty - executed_orders_buy

                executed_orders_sell = 0.0
                for order in ask_depth:
                    if float(order[0]) == mark_price:
                        executed_orders_sell += float(order[1])
                    else:
                        break

                sell_result = sell_qty - executed_orders_sell

                # Subtract executed order quantity from sell_qty
                buy_qty = float(bid_depth[0][1]) if bid_depth else 0.0
                buy_price = float(bid_depth[0][0]) if bid_depth else 0.0
                sell_price = float(ask_depth[0][0]) if ask_depth else 0.0
                
                if signals == ['buy_exit']:
                        active_signal = None
                        israel.append("Long !!! EXIT !!!")
                        if buy_entry_price is not None and israel is not None:
                            buy_exit_price = mark_price
                            difference_buy = calculate_percentage_difference_buy(buy_entry_price, buy_exit_price)
                            profit_buy = difference_buy 
                            total_profit_buy = profit_buy
                            profit_buy_percent = total_profit_buy - 4
                            try:
                                client.cancel_open_orders(symbol=symbol)
                                client.new_order(symbol=symbol, side='SELL', type='MARKET', quantity=quantity)
                            except binance.error.ClientError as e:
                                print(f"Long position successfully exited! ")
                            print(" !!! EXIT !!! ")
                            print(f"Time was : {dt.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}  buy entry price {buy_entry_price}, buy exit price: {mark_price}, Buy P&L: {round(total_profit_buy, 2)}%   with fee {round(profit_buy_percent, 2)}%")
                            buy_entry_price = None
                            buy_exit_price = None
                        else:
                            print("Buy Entry price or Sell Entry price is not defined.")  # Print israel when condition is met
                else: 
                    israel.append('')

            elif 'sell' in signals and active_signal != 'sell':
                try:
                    active_signal = 'sell'
                    sell_entry_price = mark_price  # Record the sell entry price
                    print(f"Sell Entry Price: {sell_entry_price}")
                    client.new_order(symbol=symbol, side='SELL', type='MARKET', quantity=quantity)
                    client.new_order(symbol=symbol, side='SELL', type='MARKET', quantity=quantity)
                    print("Short order executed!")
                except binance.error.ClientError as e:
                    print(f"Error executing short order: ")
                if buy_entry_price is not None and sell_entry_price is not None:
                    buy_exit_price = mark_price
                    difference_buy = calculate_percentage_difference_buy(buy_entry_price, buy_exit_price)
                    profit_buy = difference_buy 
                    total_profit_buy = profit_buy
                    profit_buy_percent = total_profit_buy - 4
                    print(f"buy entry price {buy_entry_price}, buy exit price: {sell_entry_price}, Buy P&L: {round(total_profit_buy, 2)}%   with fee {round(profit_buy_percent, 2)}%")
                else:
                    print("Buy Entry price or Sell Entry price is not defined.")

            
                jerusalem = []

                depth_data = client.depth(symbol=symbol)
                bid_depth = depth_data['bids']
                ask_depth = depth_data['asks']
                buy_price = float(bid_depth[0][0]) if bid_depth else 0.0
                sell_price = float(ask_depth[0][0]) if ask_depth else 0.0
                buy_qty = float(bid_depth[0][1]) if bid_depth else 0.0
                sell_qty = float(ask_depth[0][1]) if ask_depth else 0.0

                executed_orders_buy = 0.0

                for order in bid_depth:
                    if float(order[0]) == mark_price:
                        executed_orders_buy += float(order[1])
                    else:
                        break

                buy_result = buy_qty - executed_orders_buy

                executed_orders_sell = 0.0
                for order in ask_depth:
                    if float(order[0]) == mark_price:
                        executed_orders_sell += float(order[1])
                    else:
                        break

                sell_result = sell_qty - executed_orders_sell

                # Subtract executed order quantity from sell_qty
                sell_qty = float(ask_depth[0][1]) if ask_depth else 0.0
                sell_price = float(ask_depth[0][0]) if ask_depth else 0.0
                buy_price = float(bid_depth[0][0]) if bid_depth else 0.0

                
                if signals == ['sell_exit']:
                        active_signal = None
                        jerusalem.append("Short !!! EXIT !!!")
                        if sell_entry_price is not None and jerusalem is not None:
                            sell_exit_price = mark_price
                            difference_sell = calculate_percentage_difference_buy(sell_entry_price, sell_exit_price)
                            profit_sell = difference_sell 
                            total_profit_sell = profit_sell
                            profit_sell_percent = total_profit_sell - 4
                            try:
                                client.new_order(symbol=symbol, side='BUY', type='MARKET', quantity=quantity)
                            except binance.error.ClientError as e:
                                print(f"Short position successfully exited!")
                            print(" !!! EXIT !!! ")
                            print(f"Time was : {dt.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}  sell entry price {sell_entry_price}, sell exit price: {mark_price}, Sell P&L: {round(total_profit_sell, 2)}%   with fee {round(profit_sell_percent, 2)}%")
                            sell_entry_price = None
                            sell_exit_price = None
                        else:
                            print("Buy Entry price or Sell Entry price is not defined.")  # Print israel when condition is met
                else: 
                    jerusalem.append('')

    time.sleep(1)