python - 是否有一个 Binance API 端点来关闭所有头寸?

是否有特定的 binance futures API 端点可以自动平仓? GUI 中有这样一个选项。现在我只能想象得到所有头寸的数量而不是卖出那个数量,但是有没有更简单的方法?

我希望能够调用 ccxt 库或 python-binance 库。

最佳答案

这取决于持仓方,在币安方面是单向“(默认)还是“对冲”:

  • https://binance-docs.github.io/apidocs/futures/en/#change-position-mode-trade

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

https://stackoverflow.com/questions/67904100/

相关文章:

javascript - 如何从标称字符串中删除 0,但不从 javascript 中的小数中删除

c++ - 如何删除结构 vector 的重复项 C++

r - 将数据帧的每一行乘以它的向量 R

bash - 在组合前面的数据的同时在多行中添加值

java - 如何在 Java 数组上设置新的属性或方法?

docker - docker compose up 后后端到 redis 连接被拒绝

python - 如何找到 pandas 数据框字符串列中的最大单词数?

r - 从单个表中查找多列

javascript - onClick 从类更改为函数

android - 臭名昭著的高度 :100% issue on chrome for androi