是否有 Binance API 端点来平仓?
Is there a Binance API endpoint to close all positions?
是否有特定的币安期货 API 端点可以自动平仓? GUI 中有这样一个选项。现在我只能想象得到所有头寸的数量而不是卖出那个数量,但是有没有更简单的方法?
我希望能够调用 ccxt 库或 python-binance 库。
Binance API 有一个 DELETE /fapi/v1/allOpenOrders 端点需要配对符号。
ccxt 将此端点包装在 cancel_all_orders() 函数中,该函数也需要一对符号。
所以至少你不必遍历所有位置。但是您需要遍历所有对。或者只是有未结订单的货币对,如果您有此信息。
这取决于持仓方,在币安方面是单向(默认)还是“对冲”:
Afaik,没有任何端点可以在一次通话中平仓您的所有头寸。不过,您可以一一平仓。
为了关闭单个单向头寸(具有 side: "BOTH"
的头寸),您只需使用 reduceOnly
标志下订单,金额等于您的头寸。
因此,如果您有一个大小为 1 的未平仓多头头寸(您买入了 1 份合约),那么要平仓,您需要下相反的订单来卖出 1 份合约。反之亦然,如果您持有规模为 1 的未平仓空头头寸,您可以买入 1 份合约来平仓。
import ccxt
from pprint import pprint
# make sure it's 1.51+
print('CCXT Version:', ccxt.__version__)
exchange = ccxt.binanceusdm({
'apiKey': 'YOUR_API_KEY',
'secret': 'YOUR_SECRET',
})
markets = exchange.load_markets()
# exchange.verbose = True # uncomment for debugging purposes
symbol = 'BTC/USDT'
type = 'market' # market order
side = 'sell' # if your position is long, otherwise 'buy'
amount = THE_SIZE_OF_YOUR_POSITION # in contracts
price = None # required for limit orders
params = {'reduceOnly': 'true'}
try:
closing_order = exchange.create_order(symbol, type, side, amount, price, params)
pprint(closing_order)
except Exception as e:
print(type(e).__name__, str(e))
是否有特定的币安期货 API 端点可以自动平仓? GUI 中有这样一个选项。现在我只能想象得到所有头寸的数量而不是卖出那个数量,但是有没有更简单的方法?
我希望能够调用 ccxt 库或 python-binance 库。
Binance API 有一个 DELETE /fapi/v1/allOpenOrders 端点需要配对符号。
ccxt 将此端点包装在 cancel_all_orders() 函数中,该函数也需要一对符号。
所以至少你不必遍历所有位置。但是您需要遍历所有对。或者只是有未结订单的货币对,如果您有此信息。
这取决于持仓方,在币安方面是单向(默认)还是“对冲”:
Afaik,没有任何端点可以在一次通话中平仓您的所有头寸。不过,您可以一一平仓。
为了关闭单个单向头寸(具有 side: "BOTH"
的头寸),您只需使用 reduceOnly
标志下订单,金额等于您的头寸。
因此,如果您有一个大小为 1 的未平仓多头头寸(您买入了 1 份合约),那么要平仓,您需要下相反的订单来卖出 1 份合约。反之亦然,如果您持有规模为 1 的未平仓空头头寸,您可以买入 1 份合约来平仓。
import ccxt
from pprint import pprint
# make sure it's 1.51+
print('CCXT Version:', ccxt.__version__)
exchange = ccxt.binanceusdm({
'apiKey': 'YOUR_API_KEY',
'secret': 'YOUR_SECRET',
})
markets = exchange.load_markets()
# exchange.verbose = True # uncomment for debugging purposes
symbol = 'BTC/USDT'
type = 'market' # market order
side = 'sell' # if your position is long, otherwise 'buy'
amount = THE_SIZE_OF_YOUR_POSITION # in contracts
price = None # required for limit orders
params = {'reduceOnly': 'true'}
try:
closing_order = exchange.create_order(symbol, type, side, amount, price, params)
pprint(closing_order)
except Exception as e:
print(type(e).__name__, str(e))