7

我正在使用 Binance API 来使用 Python 3.6 制作我的交易机器人。和CCXT 库(在这里你可以找到文档)。

他们在他们的网站上拥有的一件非常有用的事情是能够以您当前余额的百分比下订单:

例如,如果我正在查看BTC/USDT加密货币对,并且我50 USDT的账户上有,我可以选择购买N数量BTC或使用100%我的账户USDT进行购买,从而购买BTC我可以购买的最大数量。

我多次阅读文档,但我找不到以任何方式使用 API 执行这些“余额百分比”订单的选项:我唯一能做的就是将 a 传递float给 order 函数。这就是我现在下订单的方式:

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,因此我可以随时使用全部余额,而无需在费用减少时进行更新

4

2 回答 2

5

使用这样的自定义函数:

 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
于 2020-04-14T07:51:23.743 回答
3

我不知道有任何 Binance API 函数可以做到这一点,但你可以尝试这样的事情:

# 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)

问候 ;)

于 2021-01-03T20:31:26.097 回答