Как разместить процентные заказы с помощью Binance API и Python-CCXT?

Я играю с Binance API, чтобы сделать моего торгового бота на Python 3.6. и библиотека CCXT (здесь вы найдете документы).

Одна очень полезная вещь, которую они имеют на своем сайте - это возможность размещать заказы в процентах от вашего текущего баланса:

например, если я смотрю на BTC/USDT пара криптовалют, и у меня есть 50 USDT на моем счету я могу выбирать между покупкой N количество BTC или используя 100% из моего аккаунта USDT для покупки, следовательно, покупка максимальной суммы BTC Я могу.

Я читаю документы много раз, но не могу найти вариант выполнения этих заказов "процент от баланса" с помощью API: единственное, что я могу сделать, это передать float к функции заказа. Вот как я размещаю заказы сейчас:

amount = 0.001
symbol = "BTC/USDT"

def buyorder(amount, symbol): # this makes a market order taking in the amount I defined before, for the pair defined by "symbol"

    type = 'market'  # or 'limit'
    side = 'buy'     # or 'sell'
    params = {}      # extra params and overrides if needed
    order = exchange.create_order(symbol, type, side, amount, params)

Кто-нибудь знает, есть ли встроенная возможность сделать процентный заказ? Если API не дает возможности сделать это, предложите ли вы какие-нибудь обходные пути?

Я хочу, чтобы API давал процент от моего текущего баланса как amountтак что я всегда могу использовать все это без необходимости обновлять, когда сборы снимаются

2 ответа

 use a function like this

 def get_max_position_available():
    to_use = float(exchange.fetch_balance().get('USDT').get('free'))
    price = float(exchange.fetchTicker('BTC/USDT').get('last'))
    decide_position_to_use = to_use / price
    return decide_position_to_use

Я не знаю ни одной функции API Binance, которая бы это сделала, но вы можете попробовать что-то вроде этого:

      # You ask for the balance
balance= client.get_asset_balance(asset='USDT')

# set the percentage or fraction you want to invest in each order
portion_balance = float(balance['free']) * 0.35

# you assign the created variable in the quantity of your order
sell_market = client.order_market_sell(
    symbol= 'ETHUSDT',
    quantity= portion_balance)

Привет ;)

Другие вопросы по тегам