切換持倉模式
該接口支持切換USDT永續和反向交割的持倉模式。如果處於單向持倉模式下,您只能要麼持有多頭要麼空頭倉位;如果處於雙向持倉模式下,您可以同時持倉多頭和空頭的倉位。
提示
- 配置生效優先級: symbol > coin > 系統默認
- 系統默認: 單向持倉
- 如果請求是按幣種(settleCoin),則所有基於該settleCoin的交易品種沒有持倉和活動單的將被批量切換,並且基於該settleCoin的新上市交易品種將與您設置的模式相同。
示例
系統默認 | coin | symbol | |
---|---|---|---|
初始配置 | 單向持倉 | 未設置過 | 未設置過 |
生效結果 | 所有USDT正向交易對都是單向持倉 | ||
變更 1 | - | - | BTCUSDT 設置為雙向持倉模式 |
生效結果 | 當前交易對BTCUSDT為雙向持倉,其他交易對都是單向持倉(繼承系統默認規則 | ||
新上線交易對 ETHUSDT | 新上線的ETHUSDT為單向持倉 (繼承系統默認規則) | ||
變更 2 | - | USDT 設置為雙向持倉 | - |
生效結果 | 當前所有未持倉未有訂單的交易對都是雙向持倉,有持倉和有委託單的交易對不做調整 | ||
新上線交易對 SOLUSDT | 新上線的SOLUSDT為雙向持倉 (繼承coin規則) | ||
變更 3 | - | - | ASXUSDT 設置為單向持倉模式 |
生效結果 | AXSUSDT為單向持倉模式,其餘交易對不做任何變更(繼承coin規則) | ||
新上線交易對 BITUSDT | 新上線的BITUSDT為雙向持倉 (繼承coin規則) |
當前合約單雙向持倉切換能力
經典帳戶 | 統一帳戶1.0 | 統一帳戶2.0 | |
---|---|---|---|
USDT 永續 | 支持單雙向持倉 | 支持單雙向持倉 | 支持單雙向持倉 |
USDC 永續 | 僅支持單向持倉 | 僅支持單向持倉 | 僅支持單向持倉 |
反向永續 | 僅支持單向持倉 | 僅支持單向持倉 | 僅支持單向持倉 |
反向交割 | 支持單雙向持倉 | 支持單雙向持倉 | 僅支持單向持倉 |
HTTP 请求
POST /v5/position/switch-mode
請求參數
參數 | 是否必需 | 類型 | 說明 |
---|---|---|---|
category | true | string | 產品類型 |
symbol | false | string | 合約名稱. symbol 和coin 必須傳其中一個. symbol 有更高優先級 |
coin | false | string | 結算幣種 |
mode | true | integer | 倉位模式. 0 : 單向持倉. 3 : 雙向持倉 |
響應參數
無
請求示例
- HTTP
- Python
- Java
- Node.js
POST /v5/position/switch-mode HTTP/1.1
Host: api-testnet.bybit.com
X-BAPI-SIGN: XXXXX
X-BAPI-API-KEY: XXXXX
X-BAPI-TIMESTAMP: 1675249072041
X-BAPI-RECV-WINDOW: 5000
Content-Type: application/json
Content-Length: 87
{
"category":"inverse",
"symbol":"BTCUSDH23",
"coin": null,
"mode": 0
}
from pybit.unified_trading import HTTP
session = HTTP(
testnet=True,
api_key="XXXXX",
api_secret="XXXXX",
)
print(session.switch_position_mode(
category="inverse",
symbol="BTCUSDH23",
mode=0,
))
import com.bybit.api.client.domain.*;
import com.bybit.api.client.domain.position.*;
import com.bybit.api.client.domain.position.request.*;
import com.bybit.api.client.service.BybitApiClientFactory;
var client = BybitApiClientFactory.newInstance().newPositionRestClient();
var switchPositionMode = PositionDataRequest.builder().category(CategoryType.LINEAR).symbol("BTCUSDT").positionMode(PositionMode.BOTH_SIDES).build();
System.out.println(client.switchPositionMode(switchPositionMode));
const { RestClientV5 } = require('bybit-api');
const client = new RestClientV5({
testnet: true,
key: 'apikey',
secret: 'apisecret',
});
client
.switchPositionMode({
category: 'inverse',
symbol: 'BTCUSDH23',
mode: 0,
})
.then((response) => {
console.log(response);
})
.catch((error) => {
console.error(error);
});
響應示例
{
"retCode": 0,
"retMsg": "OK",
"result": {},
"retExtInfo": {},
"time": 1675249072814
}