I used your code: balance_info = client.balance()

usdt_balance = None

for balance in balance_info:
    if balance['asset'] == 'USDT':
        usdt_balance = balance['balance'] 

def get_quantity(symbol, usdt_balance):
    try:
        mark_price_data = client.ticker_price(symbol=symbol)
        mark_price = float(mark_price_data['price']) if 'price' in mark_price_data else 0.0

        token_price = mark_price
        margin = 50
        quantity = round(float(usdt_balance) * margin / token_price, 2)
        return quantity
    except BinanceAPIException as e:
        if e.code == -2019:
            # Handle the “Margin is insufficient” error
            print("Insufficient margin to place the order.")
        else:
            # Handle other BinanceAPIException errors
            print("Error executing order:",  "-")

print(get_quantity(symbol, usdt_balance))

while True:
    lookback = 10080
    interval ='1m'
    df = get_klines(symbol, interval, lookback)

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

    try:
        if signals == ['buy']:
                client.new_order(symbol=symbol, side='BUY', type='MARKET', quantity=order_quantity)
                print("Long order executed!")
        elif signals == ['sell']:
                client.new_order(symbol=symbol, side='SELL', type='MARKET', quantity=order_quantity)
                print("Short order executed!")
    except BinanceAPIException as e:
        if e.code == -2019:
            # Handle the “Margin is insufficient” error
            print("Insufficient margin to place the order.")
        else:
            # Handle other BinanceAPIException errors
            print("Error executing order:", "-")

    time.sleep(1)


But I getting ERROR : Traceback (most recent call last):
  File "c:\Users\Alan\.vscode\jew_bot\jew_bot\jew_bot.py", line 217, in <module>
    client.new_order(symbol=symbol, side='SELL', type='MARKET', quantity=order_quantity)
  File "C:\Users\Alan\AppData\Roaming\Python\Python311\site-packages\binance\um_futures\account.py", line 113, in new_order, line 113, in new_order
    return self.sign_request("POST", url_path, params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                             ign_request
  File "C:\Users\Alan\AppData\Roaming\Python\Python311\site-packages\binance\api.py", line 83, in sign_request
    return self.send_request(http_method, url_path, payload, special)                              send_request
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Alan\AppData\Roaming\Python\Python311\site-packages\binance\api.py", line 118, in _handle_exception
send_request
    self._handle_exception(response)                                                               :05 GMT', 'Content-Type': 'application/json', 'Content-Length': '46', 'Connection': 'keep-alive', 'Server': 'Tengine', 'x-mbx-used-weight-1m': '-1', 'x-mbx-order-
  File "C:\Users\Alan\AppData\Roaming\Python\Python311\site-packages\binance\api.py", line 172, in n': '*', 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS'})
_handle_exception
    raise ClientError(status_code, err["code"], err["msg"], response.headers)
binance.error.ClientError: (400, -2019, 'Margin is insufficient.', {'Date': 'Tue, 22 Aug 2023 18:15:05 GMT', 'Content-Type': 'application/json', 'Content-Length': '46', 'Connection': 'keep-alive', 'Server': 'Tengine', 'x-mbx-used-weight-1m': '-1', 'x-mbx-order-count-10s': '1', 'x-mbx-order-count-1m': '1', 'x-response-time': '6ms', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS'})