Binance Api — функции покупки и продажи — python

#binance #binance-api-client

Вопрос:

Кто — нибудь создал правильные рабочие функции для покупки и продажи пары, такой как «DOGEUSDT» или любой другой пары (маржинальная торговля), я старался изо всех сил, но в итоге получаю различные ошибки, такие как ошибка размера лота, Недостаточность средств или наиболее известные ошибки ценового фильтра этого API

функции, которые я придумал, приведены ниже, может кто-нибудь сказать мне, чего мне не хватает

  1. Эта функция предназначена для выбора покупки/короткого количества, и она работает довольно справедливо
      def buy_quantity(symbol,asset):
         a = 0
         while a < 3:
             try:
                 bal = pd.DataFrame(client.get_margin_account()['userAssets'])
                 bal = bal[bal['asset']==asset]
                 bal = float(bal['free']) * 0.90
                 break
            except:
                 print("can't extract asset value..retrying")
                 a =1
         price = float(client.get_recent_trades(symbol=symbol)[0]['price'])    
         stepSize = float(client.get_symbol_info(symbol)['filters'][2]['stepSize'])
         precision = int(round(-math.log(stepSize, 10), 0)) 
         quantity = (bal / price)*0.9995 # Trading fee taken in consideration 
         quantity = round(quantity,precision)
         return quantity
     
  2. Эта функция предназначена для покрытия дефицита, она в основном пытается предоставить вам заемное количество
     def sell_quantity1(asset):
         a = 0
         while a < 3:
             try:
                 order = pd.DataFrame(client.get_margin_account()['userAssets'])
                 order = order[order['asset']==asset]
                 order = float(order['borrowed'])
                 break
             except:
                 print("can't extract borrowed order book...retrying")
                 a =1
         order = round(order,5)
         return order
     
  3. Эта функция предназначена для продажи длинной позиции
      def sell_quantity2(asset):
         a = 0
         while a < 3:
             try:
                 order = pd.DataFrame(client.get_margin_account()['userAssets'])
                 order = order[order['asset']==asset]
                 order = float(order['free'])
                 break
             except:
                 print("can't extract order book...retrying")
                 a =1
         order = round(order,5)
         return order
     

Я думаю, что функции 2 и 3 должны работать должным образом, как функция 1, но они этого не делают, появляется та или иная ошибка
Сбой размера лота, Нехватка средств или что-то еще, чего мне здесь не хватает, может кто-нибудь, пожалуйста, помогите мне, я борюсь в течение нескольких дней

Заранее спасибо

Ответ №1:

 def order(side, quoteOrderQty, symbol, order_type=ORDER_TYPE_MARKET):
    try:
        order = client.create_order(symbol=symbol, side=side, type=order_type, quoteOrderQty=quoteOrderQty)
        print(order)
    except Exception as e:
        print("exception - {}".format(e))