0xhardman

0xhardman

twitter
medium
jike
github

你到底用了什麼 API 下單?Binance USDS-M期貨下單介面和API下單參數對比分析

你到底用了什麼 API 下單?Binance USDS-M 期貨下單介面和 API 下單參數對比分析#

請求參數說明#

參數名類型必填說明
symbolSTRINGYES交易對
sideENUMYES買賣方向 SELL, BUY
positionSideENUMNO持倉方向,單向持倉模式下非必填,默認且僅可填 BOTH; 在雙向持倉模式下必填,且僅可選擇 LONG 或 SHORT
typeENUMYES訂單類型 LIMIT, MARKET, STOP, TAKE_PROFIT, STOP_MARKET, TAKE_PROFIT_MARKET, TRAILING_STOP_MARKET
reduceOnlySTRINGNOtrue, false; 非雙開模式下默認 false;雙開模式下不接受此參數; 使用 closePosition 不支持此參數。
quantityDECIMALNO下單數量,使用 closePosition 不支持此參數。
priceDECIMALNO委託價格
newClientOrderIdSTRINGNO用戶自定義的訂單號,不可以重複出現在掛單中。如空缺系統會自動賦值。必須滿足正則規則 ^[.A-Z:/a-z0-9_-]{1,36}$
stopPriceDECIMALNO觸發價,僅 STOP, STOP_MARKET, TAKE_PROFIT, TAKE_PROFIT_MARKET 需要此參數
closePositionSTRINGNOtrue, false;觸發後全部平倉,僅支持 STOP_MARKET 和 TAKE_PROFIT_MARKET;不與 quantity 合用;自帶只平倉效果,不與 reduceOnly 合用
activationPriceDECIMALNO追蹤止損激活價格,僅 TRAILING_STOP_MARKET 需要此參數,默認為下單當前市場價格 (支持不同 workingType)
callbackRateDECIMALNO追蹤止損回調比例,可取值範圍 [0.1, 10], 其中 1 代表 1% , 僅 TRAILING_STOP_MARKET 需要此參數
timeInForceENUMNO有效方法 GTC/IOC/FOK/GTX/GTD,LIMIT 訂單必填
workingTypeENUMNOstopPrice 觸發類型: MARK_PRICE (標記價格), CONTRACT_PRICE (合約最新價). 默認 CONTRACT_PRICE
priceProtectSTRINGNO條件單觸發保護:"TRUE","FALSE", 默認 "FALSE". 僅 STOP, STOP_MARKET, TAKE_PROFIT, TAKE_PROFIT_MARKET 需要此參數
newOrderRespTypeENUMNO"ACK", "RESULT", 默認 "ACK"
priceMatchENUMNOOPPONENT/ OPPONENT_5/ OPPONENT_10/ OPPONENT_20/QUEUE/ QUEUE_5/ QUEUE_10/ QUEUE_20;不能與 price 同時傳
selfTradePreventionModeENUMNOEXPIRE_TAKER/ EXPIRE_MAKER/ EXPIRE_BOTH; 默認 NONE
goodTillDateLONGNOTIF 為 GTD 時訂單的自動取消時間, 當 timeInforce 為 GTD 時必傳;傳入的時間戳僅保留秒級精度,毫秒級部分會被自動忽略,時間戳需大於當前時間 + 600s 且小於 253402300799000
recvWindowLONGNO
timestampLONGYES

參數選項詳解#

type (訂單類型)#

幣安訂單類型
API 參數幣安中文介面說明
LIMIT限價單需要指定價格,按指定價格或更優價格成交
MARKET市價單立即以當前市場價格成交
STOP限價止盈止損價格達到 stopPrice 時,以指定 price 下限價單
TAKE_PROFIT限價止盈止損價格達到 stopPrice 時,以指定 price 下限價單
STOP_MARKET市價止盈止損價格達到 stopPrice 時,下市價單
TAKE_PROFIT_MARKET市價止盈止損價格達到 stopPrice 時,下市價單
TRAILING_STOP_MARKET跟蹤委託根據價格變動動態調整止損價格

其他幣安介面功能對應:

  • 只做 Maker = timeInForce=GTX
  • 條件委託 = STOP/TAKE_PROFIT 類型訂單
  • 分時委託 = timeInForce=GTD + goodTillDate
  • 分段訂單 = 多個訂單組合,非單一 API 參數

幣安 APP 下單介面的 "止盈 / 止損" 參數:

幣安訂單類型
  • 止盈價格 = stopPrice(當選擇 TAKE_PROFIT 類型時)
  • 止損價格 = stopPrice(當選擇 STOP 類型時)
  • 止盈止損方式選擇
    • 限價 = TAKE_PROFITSTOP + price參數
    • 市價 = TAKE_PROFIT_MARKETSTOP_MARKET
  • 觸發條件 = workingType(標記價格 / 最新價格)

重要說明:幣安 APP 上同時設置止盈止損 = 多個訂單
當您在 APP 中選擇了止盈止損功能:

  1. 主訂單:開倉訂單(LIMIT 或 MARKET)
  2. 止盈訂單:TAKE_PROFIT 或 TAKE_PROFIT_MARKET 訂單
  3. 止損訂單:STOP 或 STOP_MARKET 訂單

實際上相當於調用了3 次 API,創建了 3 個獨立的訂單。當其中一個止盈止損訂單觸發時,另一個會被自動取消(OCO 機制)。

實際案例:市價單 + 止盈止損
以下是在市價單介面設置止盈止損的真實 API 調用:

// 1. 主訂單:市價買入
{
  "type": "MARKET",
  "side": "BUY", 
  "quantity": "0.014",
  "price": "0"                 // 市價單無價格
}

// 2. 止盈訂單:市價止盈(自動生成)
{
  "type": "TAKE_PROFIT_MARKET",
  "side": "SELL",
  "stopPrice": "3700",         // 關鍵:止盈觸發價格
  "reduceOnly": true,          // 關鍵:只減倉
  "price": "0"                 // 市價執行
}

// 3. 止損訂單:市價止損(自動生成)
{
  "type": "STOP_MARKET",
  "side": "SELL", 
  "stopPrice": "3300",         // 關鍵:止損觸發價格
  "reduceOnly": true,          // 關鍵:只減倉
  "price": "0"                 // 市價執行
}

關鍵特徵:

  • 止盈止損訂單自動設置 reduceOnly=true(只減倉)
  • 三個訂單有相同的數量(0.014)
  • 止盈止損訂單在主訂單成交後自動創建

reduceOnly (只減倉)#

幣安訂單類型
  • true - 只能減少現有持倉,不能增加持倉或開新倉
  • false - 可以增加持倉或開新倉(默認值)
  • 注意:雙向持倉模式下不接受此參數;使用 closePosition 時不支持此參數

使用場景:

  1. 部分平倉:已有多頭持倉,想部分平倉但不想反向開空倉
  2. 風險控制:確保訂單只會減少風險敞口,不會增加
  3. 止盈止損:設置止盈止損訂單時,只想平倉不想反向開倉
  4. 資金管理:在持倉接近強平價時,只允許減倉操作

實際例子:
場景 1 - 程序化交易:

  • 持有 100 個 BTC 多頭合約
  • 程序自動下單賣出 150 個 BTC(可能是基於信號或算法)
  • 設置reduceOnly=true作為安全措施
  • 訂單只會平掉 100 個 BTC,剩餘 50 個被拒絕,避免意外開空倉

場景 2 - 止損單:

  • 持有 50 個 BTC 空頭合約
  • 設置止損單:買入 100 個 BTC,reduceOnly=true
  • 觸發時只會平掉 50 個 BTC 空頭,剩餘 50 個被拒絕
  • 防止止損單變成開多倉

場景 3 - 批量平倉:

  • 同時持有多個合約的持倉
  • 批量下單平倉時,某個合約的持倉可能已經被其他訂單部分平掉
  • reduceOnly=true確保不會過度平倉

核心作用:

  • 主要是安全保護,防止意外的過度交易
  • 特別適用於程序化交易和自動化策略

與普通訂單的區別:

  • 普通訂單:如果賣出數量超過持倉,超出部分會排隊等待
  • reduceOnly=true:超出持倉的部分會直接被拒絕,確保不會意外超賣

限制條件:

  • 單向持倉模式:可以使用
  • 雙向持倉模式:不支持此參數
  • closePosition=true互斥,不能同時使用

closePosition (平倉標誌)#

幣安訂單類型
  • true - 觸發後全部平倉整個持倉
  • false - 不平倉(默認值)
  • 僅支持:STOP_MARKET 和 TAKE_PROFIT_MARKET
  • 不與 quantity 合用;自帶只平倉效果,不與 reduceOnly 合用

對應交易所介面設置:
當您在幣安 APP 設置止盈止損時:

  • 數量選擇 → 選擇 "全部" 或 "100%"
  • 執行方式 → 選擇 "市價成交"(而不是 "限價成交")
  • 觸發條件 → 選擇 "標記價格" 或 "最新價格"(這是workingType參數)
  • 這時候 API 會自動設置 closePosition=true

實際場景:

  • 持倉:100 個 BTC 多頭
  • 在 APP 中設置止損,數量選擇 "全部",類型選擇 "市價"
  • 對應 API:type=STOP_MARKET, closePosition=true
  • 觸發時:自動平掉全部 100 個 BTC,無需指定具體數量

與手動輸入數量的區別:

  • 手動輸入數量:quantity=100
  • 選擇全部平倉:closePosition=true(更方便,不需要計算具體數量)

priceMatch (價格匹配模式)#

幣安訂單類型

在交易所 APP 裡可能看到一個參數 BBO(Best Bid and Offer,最優買賣價),其實就是設置這個參數

  • OPPONENT - 對手價(最優買一 / 賣一價)
  • OPPONENT_5 - 對手價上浮 5 個 tick
  • OPPONENT_10 - 對手價上浮 10 個 tick
  • OPPONENT_20 - 對手價上浮 20 個 tick
  • QUEUE - 排隊價(買一 / 賣一價)
  • QUEUE_5 - 排隊價上浮 5 個 tick
  • QUEUE_10 - 排隊價上浮 10 個 tick
  • QUEUE_20 - 排隊價上浮 20 個 tick
  • 注意:不能與 price 參數同時使用

什麼是 tick(最小價格單位)?

  • 每個合約都有最小價格變動單位
  • 例如:BTCUSDT 期貨的 tick = 0.1 USDT
  • 上浮 5 個 tick = 價格 + (5 × 0.1) = 價格 + 0.5 USDT

實際例子:
假設當前 BTCUSDT 價格:

  • 買一價:50000.0
  • 賣一價:50000.1
  • tick 大小:0.1

那麼:

  • OPPONENT = 50000.1(賣一價)
  • OPPONENT_5 = 50000.1 + (5×0.1) = 50000.6
  • QUEUE = 50000.0(買一價)
  • QUEUE_5 = 50000.0 + (5×0.1) = 50000.5

selfTradePreventionMode (自成交防護模式)#

  • NONE - 不防護自成交(默認值)
  • EXPIRE_TAKER - 作為 taker 時,取消新訂單
  • EXPIRE_MAKER - 作為 maker 時,取消舊訂單
  • EXPIRE_BOTH - 新舊訂單都取消

Maker 和 Taker 區分:

  • Maker(掛單者):先掛在訂單簿上等待成交的訂單,提供流動性
  • Taker(吃單者):立即與現有訂單簿匹配成交的訂單,消耗流動性
  • 區分標準:基於訂單的執行時機,不是買賣方向
    • 先下的訂單 = Maker
    • 後下的訂單 = Taker
    • 買單 / 賣單都可以是 Maker 或 Taker

具體例子:
假設你有一個交易賬戶,同時在 BTC/USDT 交易對上有以下情況:

  • 你在 50,000 USDT 價格上掛了個賣單(先掛單 = Maker 訂單)
  • 然後你又想在 50,000 USDT 價格上下個買單(後成交 = Taker 訂單)

不同模式的行為:

  1. NONE(默認)

    • 你的買單會直接成交你自己的賣單
    • 結果:自成交發生,你付了手續費但倉位沒變
  2. EXPIRE_TAKER

    • 系統檢測到會發生自成交
    • 新的買單(taker)被取消
    • 原來的賣單(maker)保持不變
  3. EXPIRE_MAKER

    • 系統檢測到會發生自成交
    • 原來的賣單(maker)被取消
    • 新的買單(taker)會尋找其他訂單成交
  4. EXPIRE_BOTH

    • 系統檢測到會發生自成交
    • 新舊訂單都被取消
    • 沒有任何成交發生

實際應用場景:

  • 量化交易機器人經常會遇到這種情況
  • 網格交易策略中特別常見
  • 使用 EXPIRE_TAKER 可以保護已有的掛單策略

timeInForce (訂單有效時間)#

幣安訂單類型
  • GTC - Good Till Cancel,一直有效直到取消
  • IOC - Immediate or Cancel,立即執行,未成交部分取消
  • FOK - Fill or Kill,全部成交或全部取消
  • GTX - Good Till Crossing,被動委託,只做 maker(在幣安 APP 中顯示為 "訂單類型" 為 "只做 Maker")
  • GTD - Good Till Date,到指定時間取消(需配合 goodTillDate 使用)(在幣安 APP 中顯示為 "訂單類型" 為 "分時委託" 即 TWAP)

適用訂單類型:

  • LIMIT - 必填,支持所有 timeInForce 選項
  • STOP - 可選,默認 GTC,支持所有 timeInForce 選項
  • TAKE_PROFIT - 可選,默認 GTC,支持所有 timeInForce 選項

不支持 timeInForce:

  • MARKET - 不支持,市價單立即執行
  • STOP_MARKET - 不支持,觸發後立即執行市價單
  • TAKE_PROFIT_MARKET - 不支持,觸發後立即執行市價單
  • TRAILING_STOP_MARKET - 不支持,跟蹤止損觸發後立即執行

workingType (條件價格類型)#

幣安訂單類型
  • CONTRACT_PRICE - 合約最新價(默認值)
  • MARK_PRICE - 標記價格

"條件價格類型" 的含義:

  • 這裡的 "條件" 指的是觸發條件,不是普通的買賣價格
  • 僅適用於條件單:STOP、STOP_MARKET、TAKE_PROFIT、TAKE_PROFIT_MARKET
  • 決定用什麼價格來判斷是否達到了stopPrice觸發條件

兩種價格的區別:

CONTRACT_PRICE(合約最新價):

  • 實際成交的最新價格,基於真實買賣訂單
  • 可能被大單快速拉升或砸盤影響
  • 波動較大,更容易被操縱

MARK_PRICE(標記價格):

  • 交易所計算的 "公允價格"
  • 通常基於現貨價格 + 資金費率等因素計算
  • 更穩定,不容易被操縱,用於計算未實現盈虧和強平價格

實際例子:
設置止損單:stopPrice = 49,000

  • CONTRACT_PRICE 模式:當合約最新成交價跌破 49,000 時觸發(可能被瞬間插針觸發)
  • MARK_PRICE 模式:當標記價格跌破 49,000 時觸發(更穩定,不容易被操縱)

使用建議:

  • CONTRACT_PRICE:適合短線交易,對價格敏感
  • MARK_PRICE:適合避免被瞬間插針觸發,更穩定可靠

priceProtect (價格保護)#

幣安訂單類型
  • TRUE - 開啟價格保護,防止價格偏離過大 (超過 5%)
  • FALSE - 關閉價格保護(默認值)
  • 僅適用於:STOP, STOP_MARKET, TAKE_PROFIT, TAKE_PROFIT_MARKET

priceProtect (價格保護) 的理解:

核心作用:

  • 防止條件單在極端市場情況下以過於偏離市場的價格成交
  • 在訂單已經被觸發後,檢查當前市場價格是否合理

工作機制:

  1. 觸發判斷:根據workingType判斷是否達到stopPrice
  2. 訂單觸發:條件滿足,準備下單
  3. 價格保護:如果開啟priceProtect=TRUE,檢查當前市場價格
  4. 執行決策:價格合理則執行,不合理則拒絕

具體場景:
假設你設置了止損單:stopPrice = 49,000type = STOP_MARKET

不開啟價格保護(FALSE):

  • 價格跌破 49,000 時,立即下市價單
  • 可能以 48,000、47,000 甚至更低價格成交(如果市場流動性差)

開啟價格保護(TRUE):

  • 價格跌破 49,000 時,系統檢查當前市場價格
  • 如果當前價格是 48,500(偏離不大),正常成交
  • 如果當前價格是 45,000(偏離過大),訂單被拒絕

保護目標:

  • 防止在市場崩盤時以極端價格成交
  • 避免因流動性不足造成巨大滑點損失
  • 給用戶一個 "重新考慮" 的機會

適用場景:

  • 特別適用於大額訂單
  • 市場波動劇烈時期
  • 流動性較差的交易對

注意事項:

  • 開啟後可能導致止損單無法執行,需要平衡保護和執行效率
  • workingType參數獨立,可以任意組合使用

positionSide (持倉方向)#

  • BOTH - 單向持倉模式下默認值
  • LONG - 雙向持倉模式下做多
  • SHORT - 雙向持倉模式下做空

持倉模式說明:

單向持倉模式(默認):

  • 同一個交易對只能持有一個方向的淨倉位
  • 買入操作:如果有空倉先平倉,剩餘部分開多倉
  • 賣出操作:如果有多倉先平倉,剩餘部分開空倉
  • 簡單直觀,適合新手使用
  • API 參數:positionSide=BOTH

雙向持倉模式:

  • 同一個交易對可以同時持有多倉和空倉
  • 需要明確指定是開多還是開空
  • 可以進行更複雜的對沖策略
  • 風險管理更複雜,需要分別管理多空倉位
  • API 參數:positionSide=LONGpositionSide=SHORT

在幣安 APP 中切換持倉模式:

  1. 合約交易頁面右上角點擊三個小點
  2. 找到 "倉位模式" 選項
  3. 從 "單向持倉" 切換到 "雙向持倉"
  4. 注意:切換前需要先平掉所有持倉
幣安訂單類型 幣安訂單類型

介面顯示差異:

  • 單向持倉:只顯示 "買入 / 賣出" 按鈕
  • 雙向持倉:顯示 "做多 / 做空" 選擇,或 "開多 / 開空 / 平多 / 平空" 按鈕

注意事項:

  • 雙向持倉模式下不支持reduceOnly參數
  • 雙向持倉模式下必須指定positionSide參數
  • 單向持倉模式下positionSide參數可選,默認為BOTH

newOrderRespType (響應類型)#

  • ACK - 確認信息,返回基本訂單信息(默認值)
  • RESULT - 訂單結果,返回詳細訂單信息和成交信息

響應示例:

ACK 響應(基本信息):

{
  "orderId": 28,
  "symbol": "BTCUSDT",
  "status": "NEW",
  "clientOrderId": "6gCrw2kRUAF9CvJDGP16IP",
  "price": "0.1",
  "avgPrice": "0.00000",
  "origQty": "10",
  "executedQty": "0",
  "cumQty": "0",
  "timeInForce": "GTC",
  "type": "LIMIT",
  "reduceOnly": false,
  "closePosition": false,
  "side": "SELL",
  "positionSide": "SHORT",
  "stopPrice": "0",
  "workingType": "CONTRACT_PRICE",
  "priceProtect": false,
  "origType": "LIMIT",
  "time": 1499827319559,
  "updateTime": 1499827319559
}

RESULT 響應(詳細信息):

{
  "orderId": 28,
  "symbol": "BTCUSDT",
  "status": "FILLED",
  "clientOrderId": "6gCrw2kRUAF9CvJDGP16IP",
  "price": "0.1",
  "avgPrice": "0.10000",
  "origQty": "10",
  "executedQty": "10",
  "cumQty": "10",
  "timeInForce": "GTC",
  "type": "LIMIT",
  "reduceOnly": false,
  "closePosition": false,
  "side": "SELL",
  "positionSide": "SHORT",
  "stopPrice": "0",
  "workingType": "CONTRACT_PRICE",
  "priceProtect": false,
  "origType": "LIMIT",
  "time": 1499827319559,
  "updateTime": 1499827319559,
  "fills": [
    {
      "price": "0.10000000",
      "qty": "5.00000000",
      "commission": "0.00000500",
      "commissionAsset": "USDT",
      "tradeId": 56
    },
    {
      "price": "0.10000000", 
      "qty": "5.00000000",
      "commission": "0.00000500",
      "commissionAsset": "USDT",
      "tradeId": 57
    }
  ]
}

主要區別:

  • ACK:只返回訂單基本狀態,不包含成交明細
  • RESULT:包含詳細的成交信息(fills數組)和手續費詳情
  • 性能:ACK 響應更快,RESULT 響應更詳細但稍慢

各類型訂單參數詳解#

1. 限價單#

在幣安 APP 中選擇 "限價單" 時對應的 API 參數:

完整參數示例:

{
  "symbol": "ETHUSDT",           // 必需:交易對
  "side": "BUY",                // 必需:買賣方向
  "type": "LIMIT",              // 必需:訂單類型 - 關鍵參數
  "timeInForce": "GTC",         // 必需:有效時間 - 關鍵參數
  "quantity": "0.1",            // 必需:委託數量
  "price": "3450.00",           // 必需:委託價格 - 關鍵參數
  
  // 可選參數
  "positionSide": "BOTH",       // 持倉方向(單向持倉默認BOTH)
  "reduceOnly": false,          // 是否只減倉
  "newClientOrderId": "my_order_001", // 自定義訂單ID
  "newOrderRespType": "ACK"     // 響應類型
}

2. 市價單#

在幣安 APP 中選擇 "市價單" 時對應的 API 參數:

完整參數示例:

{
  "symbol": "ETHUSDT",           // 必需:交易對
  "side": "BUY",                // 必需:買賣方向
  "type": "MARKET",             // 必需:訂單類型 - 關鍵參數
  "quantity": "0.1",            // 必需:委託數量
  
  // 可選參數
  "positionSide": "BOTH",       // 持倉方向(單向持倉默認BOTH)
  "reduceOnly": false,          // 是否只減倉
  "newClientOrderId": "my_order_002", // 自定義訂單ID
  "newOrderRespType": "ACK"     // 響應類型
  
  // 注意:市價單無需price參數 - 關鍵特徵
}

3. 限價止盈止損#

在幣安 APP 中選擇止盈 / 止損,執行方式選擇 "限價" 時對應的 API 參數:

止損單完整參數示例:

{
  "symbol": "ETHUSDT",           // 必需:交易對
  "side": "SELL",               // 必需:買賣方向
  "type": "STOP",               // 必需:訂單類型 - 關鍵參數
  "quantity": "0.1",            // 必需:委託數量
  "price": "3400.00",           // 必需:觸發後執行價格 - 關鍵參數
  "stopPrice": "3420.00",       // 必需:觸發價格 - 關鍵參數
  
  // 可選參數
  "timeInForce": "GTC",         // 有效時間(默認GTC)
  "workingType": "MARK_PRICE",  // 觸發條件:標記價格/合約最新價 - 關鍵參數
  "priceProtect": false,        // 價格保護
  "positionSide": "BOTH",       // 持倉方向
  "reduceOnly": false,          // 是否只減倉
  "newClientOrderId": "my_stop_001", // 自定義訂單ID
  "newOrderRespType": "ACK"     // 響應類型
}

止盈單完整參數示例:

{
  "symbol": "ETHUSDT",           // 必需:交易對
  "side": "SELL",               // 必需:買賣方向
  "type": "TAKE_PROFIT",        // 必需:訂單類型 - 關鍵參數
  "quantity": "0.1",            // 必需:委託數量
  "price": "3600.00",           // 必需:觸發後執行價格 - 關鍵參數
  "stopPrice": "3580.00",       // 必需:觸發價格 - 關鍵參數
  
  // 可選參數
  "timeInForce": "GTC",         // 有效時間(默認GTC)
  "workingType": "MARK_PRICE",  // 觸發條件:標記價格/合約最新價 - 關鍵參數
  "priceProtect": false,        // 價格保護
  "positionSide": "BOTH",       // 持倉方向
  "reduceOnly": false,          // 是否只減倉
  "newClientOrderId": "my_tp_001", // 自定義訂單ID
  "newOrderRespType": "ACK"     // 響應類型
}

4. 市價止盈止損#

在幣安 APP 中選擇止盈 / 止損,執行方式選擇 "市價" 時對應的 API 參數:

止損單完整參數示例:

{
  "symbol": "ETHUSDT",           // 必需:交易對
  "side": "SELL",               // 必需:買賣方向
  "type": "STOP_MARKET",        // 必需:訂單類型 - 關鍵參數
  "stopPrice": "3420.00",       // 必需:觸發價格 - 關鍵參數
  
  // 數量參數(二選一)
  "quantity": "0.1",            // 指定數量
  // "closePosition": true,      // 或全部平倉 - 關鍵參數
  
  // 可選參數
  "workingType": "MARK_PRICE",  // 觸發條件:標記價格/合約最新價 - 關鍵參數
  "priceProtect": false,        // 價格保護
  "positionSide": "BOTH",       // 持倉方向
  "newClientOrderId": "my_stop_market_001", // 自定義訂單ID
  "newOrderRespType": "ACK"     // 響應類型
  
  // 注意:市價止損無需price參數,觸發後以市價執行 - 關鍵特徵
}

止盈單完整參數示例:

{
  "symbol": "ETHUSDT",           // 必需:交易對
  "side": "SELL",               // 必需:買賣方向
  "type": "TAKE_PROFIT_MARKET", // 必需:訂單類型 - 關鍵參數
  "stopPrice": "3580.00",       // 必需:觸發價格 - 關鍵參數
  
  // 數量參數(二選一)
  "quantity": "0.1",            // 指定數量
  // "closePosition": true,      // 或全部平倉 - 關鍵參數
  
  // 可選參數
  "workingType": "MARK_PRICE",  // 觸發條件:標記價格/合約最新價 - 關鍵參數
  "priceProtect": false,        // 價格保護
  "positionSide": "BOTH",       // 持倉方向
  "newClientOrderId": "my_tp_market_001", // 自定義訂單ID
  "newOrderRespType": "ACK"     // 響應類型
  
  // 注意:市價止盈無需price參數,觸發後以市價執行 - 關鍵特徵
}

5. 跟蹤委託#

在幣安 APP 中選擇 "跟蹤委託" 時對應的 API 參數:

完整參數示例:

{
  "symbol": "ETHUSDT",           // 必需:交易對
  "side": "SELL",               // 必需:買賣方向
  "type": "TRAILING_STOP_MARKET", // 必需:訂單類型 - 關鍵參數
  "quantity": "0.1",            // 必需:委託數量
  "activationPrice": "3500.00", // 必需:激活價格 - 關鍵參數
  "callbackRate": "1.0",        // 必需:回調比例(1.0=1%)- 關鍵參數
  
  // 可選參數
  "workingType": "CONTRACT_PRICE", // 價格類型:標記價格/合約最新價
  "positionSide": "BOTH",       // 持倉方向
  "newClientOrderId": "my_trailing_001", // 自定義訂單ID
  "newOrderRespType": "ACK"     // 響應類型
  
  // 注意:跟蹤委託無需price和stopPrice參數 - 關鍵特徵
  // 激活條件:賣單的activationPrice必須大於當前價格
}

6. 只做 Maker#

在幣安 APP 中選擇 "只做 Maker" 時對應的 API 參數:

完整參數示例:

{
  "symbol": "ETHUSDT",           // 必需:交易對
  "side": "BUY",                // 必需:買賣方向
  "type": "LIMIT",              // 必需:訂單類型
  "timeInForce": "GTX",         // 必需:有效時間 - 關鍵參數(必須為GTX)
  "quantity": "0.1",            // 必需:委託數量
  "price": "3450.00",           // 必需:委託價格
  
  // 可選參數
  "positionSide": "BOTH",       // 持倉方向(單向持倉默認BOTH)
  "reduceOnly": false,          // 是否只減倉
  "newClientOrderId": "my_gtx_001", // 自定義訂單ID
  "newOrderRespType": "ACK"     // 響應類型
  
  // 關鍵特徵:如果訂單會立即成交(成為taker),系統會拒絕訂單
  // 確保只做流動性提供者,享受Maker手續費
}

7. 條件委託#

條件委託是 STOP、TAKE_PROFIT 類型訂單的通用稱呼,詳細參數請參考 "限價止盈止損" 和 "市價止盈止損" 章節。

條件委託的關鍵特徵:

  • 包含:STOP、TAKE_PROFIT、STOP_MARKET、TAKE_PROFIT_MARKET
  • 都有stopPrice觸發價格 - 關鍵參數
  • 可選擇限價或市價執行
  • 支持workingType(觸發條件)和priceProtect(價格保護)參數
  • 只有達到觸發條件時才會激活訂單

8. 分時委託(TWAP)#

在幣安 APP 中選擇 "分時委託" 時對應的 API 參數:

完整參數示例:

{
  "symbol": "ETHUSDT",           // 必需:交易對
  "side": "BUY",                // 必需:買賣方向
  "type": "LIMIT",              // 必需:訂單類型
  "timeInForce": "GTD",         // 必需:有效時間 - 關鍵參數(必須為GTD)
  "quantity": "0.1",            // 必需:委託數量
  "price": "3450.00",           // 必需:委託價格
  "goodTillDate": 1640995200000, // 必需:到期時間戳 - 關鍵參數
  
  // 可選參數
  "positionSide": "BOTH",       // 持倉方向(單向持倉默認BOTH)
  "reduceOnly": false,          // 是否只減倉
  "newClientOrderId": "my_twap_001", // 自定義訂單ID
  "newOrderRespType": "ACK"     // 響應類型
  
  // 關鍵特徵:系統會將大訂單拆分成多個小的市價單
  // 在指定時間段內分批執行,實現時間加權平均價格
}

9. 分段訂單#

分段訂單不是單一 API 參數,而是多個訂單的組合:

實現方式:

  • 將大訂單拆分成多個小訂單
  • 每個小訂單獨立下單
  • 可以是不同價格的限價單組合
  • 或者是分時間執行的訂單序列

完整參數示例(多個獨立訂單):

// 訂單1 - 較高價格
{
  "symbol": "ETHUSDT",           // 必需:交易對
  "side": "BUY",                // 必需:買賣方向
  "type": "LIMIT",              // 必需:訂單類型
  "timeInForce": "GTC",         // 必需:有效時間
  "quantity": "0.05",           // 必需:委託數量
  "price": "3450.00",           // 必需:委託價格 - 關鍵參數
  "newClientOrderId": "batch_001_1" // 自定義訂單ID
}

// 訂單2 - 較低價格
{
  "symbol": "ETHUSDT",           // 必需:交易對
  "side": "BUY",                // 必需:買賣方向
  "type": "LIMIT",              // 必需:訂單類型
  "timeInForce": "GTC",         // 必需:有效時間
  "quantity": "0.05",           // 必需:委託數量
  "price": "3440.00",           // 必需:委託價格 - 關鍵參數
  "newClientOrderId": "batch_001_2" // 自定義訂單ID
}

// 關鍵特徵:通過多個不同價格的訂單實現分層買入/賣出策略

參數依賴關係總結#

價格相關參數#

  • LIMIT類型:必須提供 price
  • MARKET類型:不需要價格參數
  • STOP/TAKE_PROFIT類型:需要 pricestopPrice
  • STOP_MARKET/TAKE_PROFIT_MARKET類型:只需要 stopPrice
  • TRAILING_STOP_MARKET類型:需要 activationPricecallbackRate

數量相關參數#

  • 大部分訂單類型需要 quantity
  • STOP_MARKET/TAKE_PROFIT_MARKET 可以使用 closePosition=true 替代
  • TRAILING_STOP_MARKET 不需要顯式指定數量

時間有效性參數#

  • LIMIT訂單:必須指定 timeInForce
  • STOP/TAKE_PROFIT訂單:可選 timeInForce,默認 GTC
  • 其他訂單類型:通常不需要此參數

注意事項#

Maker 和 Taker 的判斷規則#

很多人誤以為訂單類型決定了 Maker/Taker 角色,實際上:

關鍵判斷標準:

  • 訂單是否立即成交現有的訂單簿,而不是訂單類型本身

市價單:

  • 通常是 Taker:因為市價單會立即以當前最優價格成交
  • 極少數例外:在極端流動性不足的情況下,市價單可能部分成為 Maker

限價單:

  • 可能是 Maker:如果限價單價格不能立即成交,會掛在訂單簿上等待
  • 也可能是 Taker:如果限價單價格能立即與現有訂單匹配成交

具體例子:

限價單作為 Taker:

  • 當前賣一價:50,000 USDT
  • 你下限價買單:50,000 USDT(立即成交)
  • 結果:你的限價單是 Taker

限價單作為 Maker:

  • 當前賣一價:50,000 USDT
  • 你下限價買單:49,950 USDT(無法立即成交)
  • 結果:你的限價單掛在訂單簿上,成為 Maker

市價單作為 Taker(常見):

  • 你下市價買單
  • 立即以當前最優賣價成交
  • 結果:你是 Taker

對 selfTradePreventionMode 的影響:

  • 系統會根據實際的 Maker/Taker 角色來應用防護規則
  • 不是根據訂單類型,而是根據最終的成交角色

如何確保做 Maker#

由於 Maker 享受更低手續費,很多交易者希望確保自己的訂單成為 Maker:

1. 使用 timeInForce=GTX

  • GTX(Good Till Crossing):被動委託,只做 maker
  • 如果訂單會立即成交(變成 taker),系統會直接拒絕訂單
  • 這是最直接和最安全的方法

2. 價格策略

  • 買單:設置價格低於當前買一價
  • 賣單:設置價格高於當前賣一價
  • 這樣訂單會掛在訂單簿上等待成交

3. 使用 priceMatch 的排隊價

  • QUEUE:排隊價(買一 / 賣一價)
  • QUEUE_5/10/20:排隊價基礎上稍微優化
  • 雖然不是 100% 保證,但大概率成為 maker

實際例子:
假設當前 BTCUSDT:買一價 49,950,賣一價 50,000

確保做 maker 的下單:

// 買單做maker
{
  "side": "BUY",
  "price": "49,940",  // 低於買一價
  "timeInForce": "GTX"
}

// 賣單做maker  
{
  "side": "SELL",
  "price": "50,010",  // 高於賣一價
  "timeInForce": "GTX"
}

最安全的組合:
使用 timeInForce=GTX + 合適的價格策略,這樣即使價格判斷錯誤,系統也會拒絕訂單而不是讓你意外成為 taker。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。