跳至主要内容

創建委託單

本接口提供幣幣交易,現貨槓桿交易,合約以及期權的訂單創建。

統一帳戶覆蓋範圍: 現貨 / USDT永續 / USDC永續 / USDC交割 / 反向合約 / 期權
經典帳戶覆蓋範圍: 現貨 / USDT永續 / 反向合約

信息
  • 支持的訂單類型 (orderType):
    限價單: orderType=Limit, 需要指定訂單數量和價格.

    市價單: orderType=Market, 以Bybit市場內最優的價格一直執行到成交. 選擇市價單時,price 參數為空。在期貨交易系統,為了保護市價單產生嚴重的滑點,Bybit 交易系統會將市價單轉為限價單進行撮合,如果市場價格轉限價時,超過滑點設置的閾值,該筆市場價格訂單將會被取消。滑點閾值是指訂單價格偏離最新成交價格的百分比,目前閾值設置為:BTC 合約3%,其他合約5%。
  • 支持的timeInForce策略:
    GTC 一直有效至取消
    IOC 立即成交或取消
    FOK 完全成交或取消
    PostOnly: 被動委托類型,如果該訂單在提交時會被立即執行成交,它將被取消. 這樣做的目的是為了保護您的訂單在提交的過程中,如果因為場內的價格變化,而撮合系統無法委託該筆訂單到訂單簿,因此會被取消。針對 PostOnly 訂單類型,單筆訂單可提交的數量比其他類型的訂單更多,請參考該接口中的lotSizeFilter > postOnlyMaxOrderQty參數.

  • 如何創建條件單:
    在提交訂單時,如果設置了triggerPrice,則該訂單會自動轉為條件單。另外條件單不佔用保證金,如果條件單觸發後,保證金不足,則該筆訂單會被取消。

  • 止盈 / 止損: 您可以在下單時設置止盈止損。另外,您可以通過設置止盈止損接口修改持倉時的止盈止損價格。

  • 訂單數量: 訂單數量,只支持正數。

  • 訂單價格: 下限價單,價格字段必傳。若您有倉位, 下單價格需要高於強平價. 對於設置價格的步長,請參閱該接口中的priceFilter > tickSize.

  • 用戶自定義訂單Id: 最大長度不超過36個字符且唯一。您可以自定義設置的订单ID(orderLinkId),我们会为您关联到Bybit系统的唯一订单ID,并把唯一订单ID在活动委托创建成功后一并返回给您(包括Websocket),您可以使用 Bybit 的订单ID 和 orderLinkId 去獲取和取消訂單,如果在參數輸入中同時輸入 orderId 和 orderLinkId,Bybit 會優先以 orderId 為准來處理對應訂單.

  • 訂單持有上限:
    期貨: 單個账户针对合约可持有每个 symbol 最多可同时持有500个普通活动订单。这是针对合约的,因此可以允许出现例如:账户同时持有300个BTCUSD的活动单、280个ETHUSD合约的活动单。針對條件單,單個帳戶針對合約可持有每個 symbol 最多同時持有 10 個條件單
    現貨: 總計支持500個掛單,包括最多持有30個止盈止損委託單和30個條件單委託單
    期權: 最多可持有50個委託單

  • API限頻:
    請參見接口頻率限制表,如需要提高請求頻率,請聯繫您對應的客戶經理或通過點擊這裡提交

  • 風控限制提示:
    Bybit 將針對您的 API 請求進行統計監控,當單日 (UTC 0点 - UTC 24点) 單帳號(母帳號和子帳號整體運算)訂單總数超過一定上限,平台將保留提醒、警告,以及進行必要性限制的權利。 使用API的客戶預設接受本條款並負有配合調整的義務。

提示

對於經典帳戶進行全倉槓桿交易時,您需要先去這裡進行借貸

現貨條件單規則

現貨支持止盈止損單, 條件單, 但是背後的處理邏輯略有不同
經典帳戶: 當止盈止損或者條件單創建後, 您將會得到一個訂單ID. 當它被觸發後, 您將獲取到一個全新的訂單ID
統一帳戶: 當止盈止損或者條件單創建後, 您將會得到一個訂單ID. 當它被觸發後, 訂單ID將會保持不變

HTTP請求

POST /v5/order/create

請求參數

參數是否必需類型說明
categorytruestring產品類型
  • 統一帳戶: spot, linear, inverse, option
  • 經典帳戶: spot, linear, inverse
symboltruestring合約名稱
isLeveragefalseinteger是否借貸. 僅統一帳戶的現貨交易有效. 0(default): 否,則是幣幣訂單, 1: 是,則是槓桿訂單
sidetruestringBuy, Sell
orderTypetruestring訂單類型. Market, Limit
qtytruestring訂單數量
  • 統一帳戶
    • 現貨: 可以通過設置marketUnit來表示市價單qty的單位, 市價買單默認是quoteCoin, 市價賣單默認是baseCoin
    • 期貨和期權: 總是以base coin作為qty的單位
  • 經典帳戶
    • 現貨: 市價買單的qty總是以quote coin為單位, 其他情況下, qty都是以base coin為單位
    • 期貨: qty總是以base coin為單位
  • 期貨: 如果傳入qty="0"以及reduceOnly="true", 則可以平掉對應合約可達單個訂單允許的最大qty的倉位, 參照查詢可交易產品的規格信息接口裡的字段maxMktOrderQty或者maxOrderQty
marketUnitfalsestring統一帳戶現貨交易創建市價單時給入參qty指定的單位. 当前不支持止盈/止损和条件单
  • baseCoin: 比如, 買BTCUSDT, 則"qty"的單位是BTC
  • quoteCoin: 比如, 賣BTCUSDT, 則"qty"的單位是USDT
  • pricefalsestring訂單價格.
    • 市價單將會忽視該字段
    • 請通過該接口確認最低價格和精度要求
    • 如果有持倉, 確保價格優於強平價格
    triggerDirectionfalseinteger條件單參數. 用於辨別期望的方向.
    • 1: 當市場價上漲到了triggerPrice時觸發條件單
    • 2: 當市場價下跌到了triggerPrice時觸發條件單
    linearinverse有效
    orderFilterfalsestring指定訂單品種. Order: 普通單,tpslOrder: 止盈止損單,StopOrder: 條件單. 若不傳, 默認Order
    僅對現貨有效
    triggerPricefalsestring
    • 對於期貨, 是條件單觸發價格參數. 若您希望市場價是要上升後觸發, 確保:
      triggerPrice > 市場價格
      否則, triggerPrice < 市場價格
    • 對於現貨, 這是下止盈止損單或者條件單的觸發價格參數
    triggerByfalsestring條件單參數. 觸發價格類型. LastPrice, IndexPrice, MarkPrice
    僅對linearinverse有效
    orderIvfalsestring隱含波動率. 僅option有效. 按照實際值傳入, e.g., 對於10%, 則傳入0.1. orderIvprice有更高的優先級
    timeInForcefalsestring訂單執行策略
    • 市價單,系統直接使用IOC
    • 若不傳,默認使用GTC
    positionIdxfalseinteger倉位標識, 用戶不同倉位模式. 該字段對於雙向持倉模式(僅USDT永續和反向期貨有雙向模式)是必傳:
    • 0: 單向持倉
    • 1: 買側雙向持倉
    • 2: 賣側雙向持倉
    僅對linearinverse有效
    orderLinkIdfalsestring用戶自定義訂單Id. category=option時,該參數必傳
    takeProfitfalsestring止盈價格
  • linear & inverse: 支援統一帳戶和經典帳戶
  • spot: 僅支持統一帳戶, 創建限價單時, 可以附帶市價止盈止損和限價止盈止損
  • stopLossfalsestring止損價格
  • linear & inverse: 支援統一帳戶和經典帳戶
  • spot: 僅支持統一帳戶, 創建限價單時, 可以附帶市價止盈止損和限價止盈止損
  • tpTriggerByfalsestring觸發止盈的價格類型. MarkPrice, IndexPrice, 默認:LastPrice
    僅對linearinverse有效
    slTriggerByfalsestring觸發止損的價格類型. MarkPrice, IndexPrice, 默認:LastPrice
    僅對linearinverse有效
    reduceOnlyfalseboolean什麼是只減倉? true 將這筆訂單設為只減倉
    • 當減倉時, reduceOnly=true必傳
    • 只減倉單的止盈止損不生效
    linear, inverseoption有效
    closeOnTriggerfalseboolean什麼是觸發後平倉委託?此選項可以確保您的止損單被用於減倉(平倉)而非加倉,並且在可用保證金不足的情況下,取消其他委託,騰出保證金以確保平倉委託的執行.
    僅對linearinverse有效
    smpTypefalsestringSmp執行類型. 什麼是SMP?
    mmpfalseboolean做市商保護. 僅option有效. true 表示該訂單是做市商保護訂單. 什麼是做市商保護?
    tpslModefalsestring止盈止損模式
    • Full: 全部倉位止盈止損. 此時, tpOrderType或者slOrderType必須傳Market
    • Partial: 部分倉位止盈止損(下單時沒有size選項, 實際上創建tpsl訂單時, 是按照實際成交的數量來生成止盈止損). 支持創建限價止盈止損. 注意: 創建限價止盈止損時, tpslMode必傳且為Partial
    僅對linearinverse有效
    tpLimitPricefalsestring觸發止盈後轉換為限價單的價格
    • linear & inverse: 僅作用於當tpslMode=Partial以及tpOrderType=Limit時
    • spot(UTA): 參數必傳當創建訂單時帶了takeProfittpOrderType=Limit
    slLimitPricefalsestring觸發止損後轉換為限價單的價格
    • linear & inverse: 僅作用於當tpslMode=Partial以及slOrderType=Limit時
    • spot(UTA): 參數必傳當創建訂單時帶了stopLossslOrderType=Limit
    tpOrderTypefalsestring止盈觸發後的訂單類型
    • linear & inverse: Market(默認), Limit. 對於tpslMode=Full, 僅支持tpOrderType=Market
    • spot(UTA):
      Market: 當帶了參數"takeProfit",
      Limit: 當帶了參數"takeProfit" 和 "tpLimitPrice"
    slOrderTypefalsestring止損觸發後的訂單類型
    • linear & inverse: Market(默認), Limit. 對於tpslMode=Full, 僅支持slOrderType=Market
    • spot(UTA):
      Market: 當帶了參數"stopLoss",
      Limit: 當帶了參數"stopLoss" 和 "slLimitPrice"

    響應參數

    參數類型說明
    orderIdstring訂單ID
    orderLinkIdstring用戶自定義訂單ID
    信息

    ack僅表示請求被成功接受. 請使用websocket-order推送來確認訂單狀態


    請求示例

    POST /v5/order/create HTTP/1.1
    Host: api-testnet.bybit.com
    X-BAPI-SIGN: XXXXX
    X-BAPI-API-KEY: XXXXX
    X-BAPI-TIMESTAMP: 1672211928338
    X-BAPI-RECV-WINDOW: 5000
    Content-Type: application/json

    // 現貨下僅maker單
    {"category":"spot","symbol":"BTCUSDT","side":"Buy","orderType":"Limit","qty":"0.1","price":"15600","timeInForce":"PostOnly","orderLinkId":"spot-test-01","isLeverage":0,"orderFilter":"Order"}

    // 現貨止盈止損單
    {"category":"spot","symbol":"BTCUSDT","side":"Buy","orderType":"Limit","qty":"0.1","price":"15600","triggerPrice": "15000", "timeInForce":"Limit","orderLinkId":"spot-test-02","isLeverage":0,"orderFilter":"tpslOrder"}

    // 槓桿交易單 (統一帳戶)
    {"category":"spot","symbol":"BTCUSDT","side":"Buy","orderType":"Limit","qty":"0.1","price":"15600","timeInForce":"Limit","orderLinkId":"spot-test-limit","isLeverage":1,"orderFilter":"Order"}

    // 現貨市價單, qty為報價幣種金額
    {"category":"spot","symbol":"BTCUSDT","side":"Buy","orderType":"Market","qty":"200","timeInForce":"IOC","orderLinkId":"spot-test-04","isLeverage":0,"orderFilter":"Order"}


    // USDT永續開多倉訂單 (單向持倉)
    {"category":"linear","symbol":"BTCUSDT","side":"Buy","orderType":"Limit","qty":"1","price":"25000","timeInForce":"GTC","positionIdx":0,"orderLinkId":"usdt-test-01","reduceOnly":false,"takeProfit":"28000","stopLoss":"20000","tpslMode":"Partial","tpOrderType":"Limit","slOrderType":"Limit","tpLimitPrice":"27500","slLimitPrice":"20500"}

    // USDT永續平多倉訂單 (單向持倉)
    {"category": "linear", "symbol": "BTCUSDT", "side": "Sell", "orderType": "Limit", "qty": "1", "price": "30000", "timeInForce": "GTC", "positionIdx": 0, "orderLinkId": "usdt-test-02", "reduceOnly": true}

    響應示例

    {
    "retCode": 0,
    "retMsg": "OK",
    "result": {
    "orderId": "1321003749386327552",
    "orderLinkId": "spot-test-postonly"
    },
    "retExtInfo": {},
    "time": 1672211918471
    }