微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否有 Binance API 端点来关闭所有头寸?

如何解决是否有 Binance API 端点来关闭所有头寸?

是否有特定的币安期货 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))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。