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

usdt_balance = None

for balance in balance_info:
    if balance['asset'] == 'USDT':
        usdt_balance = round(float(balance['balance']), 2)

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:
        print("Error executing long order:")
    return 0

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']:
            try:
                client.new_order(symbol=symbol, side='BUY', type='MARKET', quantity=order_quantity)
                print("Long order executed!")
            except BinanceAPIException as e:
                print("Error executing long order:")
            time.sleep(1)

        if signals == ['sell']:
            try:
                client.new_order(symbol=symbol, side='SELL', type='MARKET', quantity=order_quantity)
                print("Short order executed!")
            except BinanceAPIException as e:
                print("Error executing short order:")
            time.sleep(1)
    except BinanceAPIException as e:
        print("Error, position already open!")

        time.sleep(1)

    time.sleep(1)


But I getting ERROR: The signal time is: 2023-08-23 14:36:03 Price: [188.24] - Signals: ['sell']
Traceback (most recent call last):
  File "c:\Users\Alan\.vscode\jew_bot\jew_bot\jew_bot.py", line 219, 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
    return self.sign_request("POST", url_path, params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  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)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Alan\AppData\Roaming\Python\Python311\site-packages\binance\api.py", line 118, in send_request    
    self._handle_exception(response)
  File "C:\Users\Alan\AppData\Roaming\Python\Python311\site-packages\binance\api.py", line 172, in _handle_exception
    raise ClientError(status_code, err["code"], err["msg"], response.headers)
binance.error.ClientError: (400, -2019, 'Margin is insufficient.', {'Date': 'Wed, 23 Aug 2023 11:36:04 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': '8ms', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS'})