跳到主要内容

下单

接口描述

创建并提交一个新订单。

HTTP请求

POST /fapi/v1/order (HMAC SHA256)

请求权重

0 (下单接口不消耗通用权重,但受下单频率限制)

请求参数

名称类型是否必需描述
symbolSTRINGYES交易对
sideENUMYES买卖方向: BUY, SELL
positionSideENUMNO持仓方向: BOTH, LONG, SHORT(当前仅支持 BOTH —— ZTDX 仅支持单向持仓模式)
typeENUMYES订单类型: LIMIT, MARKET, STOP, TAKE_PROFIT, STOP_MARKET, TAKE_PROFIT_MARKET, TRAILING_STOP_MARKETSTOP_LIMITTAKE_PROFIT_LIMIT 接受为 STOPTAKE_PROFIT 的别名。
reduceOnlyBOOL 或 STRINGNOtrue / false / "true" / "false"reduceOnly 单在 admission 时按对侧持仓数量上限收口;如果该单本应开仓或反向,将被拒。reduceOnly=true 订单豁免 MIN_NOTIONAL 过滤器,确保 < 10 USD 的残余仓位也能平掉;LOT_SIZEMAX_NOTIONAL 仍然适用。
quantityDECIMALNO下单数量。会向下对齐到 symbol 的 lot size;产生的名义额必须满足 symbol 的最小/最大边界,否则返回 -1013。错误消息以 Filter failure: <FILTER>. 开头,<FILTER>LOT_SIZE / MIN_NOTIONAL / MAX_NOTIONAL 之一,客户端可据此 switch。
priceDECIMALNO委托价格
newClientOrderIdSTRINGNO用户自定义 ID。会持久化,query-order / all-orders 会原样返回。
stopPriceDECIMALNO触发价格。提交时若触发条件已被满足,直接返回 -2021 拒绝。
activationPriceDECIMALNO激活价格 (仅限跟踪止损单)
callbackRateDECIMALNO回调幅度 (仅限跟踪止损单)
timeInForceENUMNO有效方式: GTC, IOC, FOK, GTXGTX 是 post-only —— 与对手价交叉的 GTX 单返回 -2010IOC / FOK 语义在引擎层严格执行。
workingTypeENUMNO触发类型: MARK_PRICE, CONTRACT_PRICE
recvWindowLONGNO详见 接口鉴权
timestampLONGYES时间戳

在市价入场单上挂止盈 / 止损

需要在开仓的同时挂止盈和/或止损时,先单独下市价入场单,再用一两笔 反向 reduceOnly 触发单挂在对应触发价上:

订单typesidestopPricereduceOnly
入场MARKET你的开仓方向 (BUY / SELL)false
止盈TAKE_PROFIT_MARKET与入场相反止盈触发价true
止损STOP_MARKET与入场相反止损触发价true

触发单的 stopPriceworkingTypeMARK_PRICECONTRACT_PRICE)被命中时按市价执行。如果你以其他方式手动平仓, 请通过 DELETE /fapi/v1/order 显式撤销这些触发单 —— 它们与入场单 之间没有联动关系。

响应示例

{
"clientOrderId": "testOrder1",
"cumQty": "0",
"cumQuote": "0",
"executedQty": "0",
"orderId": 2254222045,
"avgPrice": "0.00000",
"origQty": "10",
"price": "0",
"reduceOnly": false,
"side": "SELL",
"positionSide": "BOTH",
"status": "NEW",
"stopPrice": "0",
"closePosition": false,
"symbol": "BTCUSDT",
"timeInForce": "GTC",
"type": "TRAILING_STOP_MARKET",
"origType": "TRAILING_STOP_MARKET",
"activatePrice": "9020",
"priceRate": "0.3",
"updateTime": 1566818724722,
"workingType": "CONTRACT_PRICE",
"priceProtect": false
}

代码示例

cURL

API_KEY="your_api_key"
API_SECRET="your_api_secret"
TIMESTAMP=$(date +%s%3N)
QUERY_STRING="symbol=BTCUSDT&side=BUY&type=LIMIT&timeInForce=GTC&quantity=0.01&price=60000&timestamp=${TIMESTAMP}"
SIGNATURE=$(echo -n "${QUERY_STRING}" | openssl dgst -sha256 -hmac "${API_SECRET}" | awk '{print $2}')

curl -s -X POST \
-H "X-MBX-APIKEY: ${API_KEY}" \
"https://api-sepolia.ztdx.io/fapi/v1/order?${QUERY_STRING}&signature=${SIGNATURE}"

Python

import time, hmac, hashlib, requests, json

API_KEY = "your_api_key"
API_SECRET = "your_api_secret"
BASE_URL = "https://api.ztdx.io"

def sign(msg: str) -> str:
return hmac.new(API_SECRET.encode(), msg.encode(), hashlib.sha256).hexdigest()

def signed_post(path, body={}):
ts = int(time.time() * 1000)
qs = f"timestamp={ts}"
body_str = json.dumps(body, separators=(',', ':'))
sig = sign(qs + body_str)
return requests.post(
f"{BASE_URL}{path}?timestamp={ts}&signature={sig}",
data=body_str,
headers={"X-MBX-APIKEY": API_KEY, "Content-Type": "application/json"},
)

# Place a LIMIT BUY order for BTCUSDT
resp = signed_post("/fapi/v1/order", body={
"symbol": "BTCUSDT",
"side": "BUY",
"type": "LIMIT",
"timeInForce": "GTC",
"quantity": "0.01",
"price": "60000",
})
print(resp.json())