Как разместить процентные заказы с помощью 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)
Привет ;)