如何使用 Binance API 和 Python-CCXT 下达百分比订单?
Posted
技术标签:
【中文标题】如何使用 Binance API 和 Python-CCXT 下达百分比订单?【英文标题】:How to place percentage orders with Binance API and Python-CCXT? 【发布时间】:2019-12-08 10:34:27 【问题描述】:我正在使用 Binance API 来使用 Python 3.6 制作我的交易机器人。和CCXT library(在这里你可以找到docs)。
他们在他们的网站上拥有的一个非常有用的功能是能够以您当前余额的百分比下订单:
例如,如果我正在查看BTC/USDT
加密货币对,并且我的帐户中有50 USDT
,我可以选择购买N
数量的BTC
或使用我帐户@ 的100%
987654328@购买,因此我可以购买最大数量的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 无法做到这一点,您会建议一些解决方法吗?
我希望能够将我当前余额的百分比作为amount
提供给 API,这样我就可以随时使用全部余额,而无需在费用减少时更新
【问题讨论】:
您能否添加一个指向 API 文档的链接以及您遇到问题的一些代码,以便让我们更好地了解这里发生的情况以及您需要帮助的确切内容?跨度> 好像API不允许百分比下单,你可以在脚本中自己计算,下单前获取免费余额 【参考方案1】:使用这样的自定义函数:
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
【讨论】:
请添加上下文以防止机器人删除答案。【参考方案2】:我不知道有任何 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)
您好 ;)
【讨论】:
以上是关于如何使用 Binance API 和 Python-CCXT 下达百分比订单?的主要内容,如果未能解决你的问题,请参考以下文章
Python 通过 requests 调用 Binance API